色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于DSP的嵌入式系統實現擦寫片外FLASH器件

電子設計 ? 來源:半導體技術 ? 作者:張偉,張太鎰,陳 ? 2020-09-18 16:49 ? 次閱讀

作者:張偉,張太鎰,陳志剛,呂娜

1 引言

DSP系統的設計中,經常要使用片外存儲器擴充系統存儲空間。特別是當DSP的片內數據存儲器和程序存儲器容量比較小時, 必須把一部分數據,如常量、原始數據庫等存儲到片外的存儲器中,從而節省DSP芯片內部的存儲器資源。在實際應用中,片外存儲器通常選擇RAM或FLASH MEMORY。RAM數據掉電即丟失,不適合長期保存數據。對于一些無需頻繁讀寫但需要長期保存的數據,如字模數據、端口地址等時,通常選擇片外FLASH作偽擴展的數據存儲器。使用片外 FLASH必須要解決對其擦寫的問題。

在實際應用中,對片外FLASH的擦寫有兩種方式:一是使用通用編程器對FLASH芯片進行擦寫;二是直接由DSP對FLASH進行擦寫。對于需要修改或已安裝在電路板上的FLASH芯片無法使用第一種方式,只能采用第二種方式,且便于調試。本文介紹一種利用存儲器映射技術實現對DSP片外FLASH擦寫的方法。

DSP56F805芯片是Motorola公司在DSP56800 的基礎上開發的系列DSP芯片之一。該芯片采用先進的修正哈佛結構,三個內部地址總線和四個內部數據總線支持數據傳輸;采用MCU形式的指令集,尋址方式靈活;具有較強的片外存儲空間擴展能力;功耗小,高度并行。但是該芯片的片內數據存儲器空間最大為64k,程序存儲空間尋址范圍是64k,內部模式(Mode0A和Mode0B)下只有31.5k。對于一些需要復雜中文圖形用戶界面的 DSP系統來說芯片存儲資源顯得不夠,必須對芯片存儲空間進行擴展。考慮到具體要求,本文使用片外FLASH來擴展系統數據存儲空間,將DSP系統的中文圖形用戶界面中用到的所有字模數據和頁面內容數據存放到片外FLASH中,大大節省了片內的數據存儲器空間。

CodeWarrior IDE是由Metrowerks公司專為Motorola的DSP56800系列設計的開發平臺。該平臺具有簡單明了的圖形用戶界面和豐富的軟件開發工具,適合于開發基于DSP56800系列的應用程序、插件程序等各種程序代碼。在CodeWarrior環境中,用戶可以通過修改.cmd文件來配置存儲器分配方式,還可以通過修改startup文件夾中的初始化程序來控制系統的初始化操作。用戶編譯并鏈接后,將生成.elf文件,在文件中可以看到存儲器的詳細分配情況。當用戶將程序下載到DSP芯片后,可以使用CodeWarrior的調試器對程序進行全面的調試,如設置斷點、單步執行等;也可以使用 Watch Memory指令來檢查存儲器中的各地址段的值,還可以使用Save/Load Memory指令來保存或是載入某段存儲器的值。

2 方法介紹

首先利用GPIOD0口生成合適的片外FLASH和片內XRAM片選信號,實現片內XRAM和片外FLASH的訪問切換。例如當GPIOD0 =0時,0x8000~0xFFFF映射到片內XRAM,此時對于整個0x0000~0xFFFF地址范圍的讀寫操作就是對于片內 XRAM的操作;當GPIOD0=1時,0x8000~0xFFFF地址范圍映射到數據FLASH,則對0x8000~0xFFFF 地址范圍的讀寫操作就是對于片外FLASH的操作;對0x0000~0x7FFF地址范圍的讀寫仍是針對片內 XRAM的操作,從而將數據存儲空間擴展了32k。

再將映射方式設置為片內,將需要寫到FLASH中的數據文件載入片內XRAM。最后根據需要設置GPIO端口值,切換地址映射的存儲器。這樣通過地址映射的方法,便可實現將XRAM中數據寫入片外FLASH的操作,而對于DSP芯片來說只是進行了其XRAM尋址空間內部的數據搬移操作。

假設要將一組二維數組character[180][32]形式的字模數據保存入片外數據FLASH的0x8000~0xA000地址段中,先做以下準備工作:

①用一個GPIO端口,擴展系統的可尋址數據存儲器空間;②編寫FLASH擦寫程序,程序流程如圖1所示。

#define N 100 /* 由于FLASH與RAM的讀寫速度不同,所以需要在每項操作后加入若干個延遲以保證正確性,延遲的具體長短可以根據具體情況作調整 */

基于DSP的嵌入式系統實現擦寫片外FLASH器件

void main()

{

unsigned int i,code;

unsigned int *code_addr;

unsigned int *flash_addr;

*GPIO_D_DR=0x0002; /*映射方式設置為映射到片外數據FLASH*/

delay(N);

GPIOD_setup(); /*GPIOD設置*/

delay(N);

erase_flash(); /*如FLASH上原有數據無需保留,則全部擦除,如部分據需保留,也可部分擦除*/

*GPIO_D_DR=0x0000; /*映射方式設置為映射到片內XRAM*/ delay(N);

flash_addr=(unsigned int *) FLASH_ADDR;

code_addr=(unsigned int *)CODE_ADDR; /*設置XRAM的存儲起始地址和數據FLASH擦寫起始地址*/

/*循環擦寫*/

for(i=0;i{

*GPIO_D_DR=0x0000;

delay(N);

code=*(code_addr++); /*保存XRAM中數據到變量code*/

delay(N);

*GPIO_D_DR=0x0002;

delay(N);

pre_write_flash(); /* 寫FLASH前的預處理,向FLASH內寫入相應命令字,根據所選用 FLASH的不同預處理操作也有所不同*/

delay(N);

*(flash_addr++)=code; /*寫數據到FLASH中*/

delay(N);

}

}

擦寫步驟如下:

① 將character[180][32]設置為全局變量。

② 將程序編譯下載到DSP芯片中,打開工程目錄中output文件夾中的.elf文件,找到character 數組在XRAM中存放的起始地址和長度。用戶可以使用Watch Memory命令察看該段地址的數據值。

③ 使用Save Memory命令將XRAM中對應于character數組的地址段的數據以二進制形式保存在計算機上。通過UltraEdit將其打開,檢看數據保存是否正確。

④ 打開FLASH擦寫程序,修改數據在片內XRAM中存儲的起始地址和FLASH的擦寫起始地址與數據長度。編譯下載后,單步執行,執行到擦除完FLASH,并將地址映射方式置為映射到片內XRAM處,使用Load Memory指令將char數據文件載入到片內XRAM的相應存儲地址段中,再接著全速運行程序,幾十秒之后程序執行完畢,數據便寫到片外FLASH的相應地址中。

⑤ 再次打開FLASH擦寫程序,單步執行到映射方式置為片外FLASH處停止,使用Save Memory命令保存FLASH中剛寫入的地址段的數據值。接著使用UltraEdit的比較文件命令比較前兩次保存的數據,如完全相同就表明character字模數組已經正確的寫到片外FLASH中。

將數據擦寫入片外數據FLASH后,就可以在用戶程序中對該數據加以調用。在調用的時候要先將映射方式設置為映射到片外FLASH,然后再取數據。如下所示,取出FLASH中0x6000地址上存儲的數據:

#define FLASH_ADD (unsigned int *)0x6000

*GPIO_D_DR=0x0002; /*映射方式設置為映射到片外FLASH*/

data = *(FLASH_ADD);

3 結論

本文介紹了一種通過地址映射方式,在基于 DSP的嵌入式系統中,通過DSP擦寫片外FLASH的方法。該方法可適用于多種場合,針對多個 FLASH芯片可使用多個GPIO端口進行地址的擴展,并可通過DSP實現對其擦寫操作;若將部分程序放置到片外FLASH中并作相應設置,即可實現系統的自舉運行等。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dsp
    dsp
    +關注

    關注

    553

    文章

    8011

    瀏覽量

    349127
  • 嵌入式
    +關注

    關注

    5085

    文章

    19138

    瀏覽量

    305693
  • FlaSh
    +關注

    關注

    10

    文章

    1637

    瀏覽量

    148116
收藏 人收藏

    評論

    相關推薦

    采用nios和μClinux實現嵌入式系統設計

    外設接口。 基于sopc的嵌入式系統主要由1核心芯片sopc和器件,以及一些相關的接口設備
    發表于 04-18 07:00

    如何設計嵌入式FIFO數據傳輸系統

    C6727B,由于其內集成dMAX模塊,使得實現嵌入式FIFO成為可能。其實現嵌入式FIFO的本質就是將
    發表于 08-08 07:03

    嵌入式手持移動終端中文件系統實現

    而廣泛應用于便攜電子產品中。在Flash存儲器中使用文件系統,可將存儲空間當作直觀的名稱空間,不用在每次應用開發中都從頭使用存儲器,還可方便地利用標準接口同主系統通信。本文中,我們將以嵌入式
    發表于 01-05 07:29

    如何用存儲器映射的方法實現FLASH擦寫

    請問如何用存儲器映射的方法實現FLASH擦寫
    發表于 04-20 06:13

    有什么方法可以實現FLASH擦寫嗎?

    請問大神有什么方法可以實現FLASH擦寫嗎?
    發表于 04-26 06:26

    嵌入式系統中的Flash文件系統

    介紹嵌入式系統中的 Flash文件系統。對 FFS需求,Flash存儲器特性,FFS要求和實現
    發表于 04-07 09:40 ?15次下載

    微處理器與DSP器件相結合的嵌入式系統結構設計

    微處理器和DSP器件共同組成的嵌入式系統,不僅具有嵌入式系統的全部技術優勢,還提供了快速數據處理
    發表于 05-09 10:48 ?20次下載

    DSP嵌入式系統人機接口設計

    DSP嵌入式系統人機接口設計  1 引言   人機接口是嵌入式控制系統的重要組成部分,用于人機之間實時交換控制
    發表于 12-24 16:34 ?976次閱讀
    <b class='flag-5'>DSP</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>人機接口設計

    基于SBC+DSP嵌入式系統設計與應用

    基于SBC+DSP嵌入式系統設計與應用 1 引言   嵌入式系統是以應用為中心、以計算機技術為基礎、軟硬件可裁剪、適應應用
    發表于 02-25 11:06 ?1115次閱讀
    基于SBC+<b class='flag-5'>DSP</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>設計與應用

    基于 DSP嵌入式系統通過地址映射方式實現FLASH

    1 引言 在DSP系統的設計中,經常要使用外存儲器擴充系統存儲空間。特別是當DSP內數據存
    發表于 07-02 18:21 ?1293次閱讀
    基于 <b class='flag-5'>DSP</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>通過地址映射方式<b class='flag-5'>實現</b><b class='flag-5'>片</b><b class='flag-5'>外</b><b class='flag-5'>FLASH</b>擦

    CCS的DSPFlash直接燒寫設計

    CCS的DSPFlash直接燒寫設計
    發表于 10-20 08:29 ?3次下載
    CCS的<b class='flag-5'>DSP</b><b class='flag-5'>片</b><b class='flag-5'>外</b><b class='flag-5'>Flash</b>直接燒寫設計

    基于DSP嵌入式圖像識別系統設計與實現總結

    基于DSP嵌入式圖像識別系統設計與實現總結(基于linux的嵌入式開發環境的搭建過程)-該文檔為基于D
    發表于 07-30 11:37 ?25次下載
    基于<b class='flag-5'>DSP</b>的<b class='flag-5'>嵌入式</b>圖像識別<b class='flag-5'>系統</b>設計與<b class='flag-5'>實現</b>總結

    DSP嵌入式系統設計與應用(精)

    DSP嵌入式系統設計與應用(精)(arm嵌入式開發視頻)-該文檔為DSP嵌入式
    發表于 08-04 09:49 ?11次下載
    <b class='flag-5'>DSP</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>設計與應用(精)

    基于Flash嵌入式交互系統的設計與實現

    電子發燒友網站提供《基于Flash嵌入式交互系統的設計與實現.pdf》資料免費下載
    發表于 10-08 10:48 ?0次下載
    基于<b class='flag-5'>Flash</b>的<b class='flag-5'>嵌入式</b>交互<b class='flag-5'>系統</b>的設計與<b class='flag-5'>實現</b>

    什么是可重復擦寫Flash型)語音芯片?

    什么是可重復擦寫Flash型)語音芯片?可重復擦寫Flash型)語音芯片是一種嵌入式語音存儲解決方案,采用了
    的頭像 發表于 12-14 10:08 ?625次閱讀
    什么是可重復<b class='flag-5'>擦寫</b>(<b class='flag-5'>Flash</b>型)語音芯片?
    主站蜘蛛池模板: 久久精品小视频| 久久99国产精品自在自在| 亚洲天堂久久久| 无人在线观看免费高清视频播放 | 老熟人老女人国产老太| 国产在线视频在线观看| 国产精品乱人无码伦AV在线A| 憋尿调教绝望之岛| vagaa哇嘎黄短片| JIZZ幻女大全| hd性欧美俱乐部中文| 99久久99久久免费精品蜜桃| 最新男同鸭子ktv| 中文字幕中文字幕永久免费| 中国人泡妞xxxxxxxx19| 又黄又粗又爽免费观看| 一级做a爰片久久毛片潮喷动漫 | 成人麻豆日韩在无码视频| 成年人视频在线免费| 成电影人免费网站| 成人无码精品1区2区3区免费看| www.久久精品视频| 成人伦理影院| 国产精品1卡二卡三卡四卡乱码| 国产精品爽爽久久久久久蜜桃网站| 国产精品你懂得| 黑吊大战白xxxxxx| 久久久精品免费免费直播 | 亚洲AV噜噜88| 亚洲免费视频日本一区二区| 亚洲欧美成人在线| 在线黑人抽搐潮喷| 99精品免费观看| 菲律宾毛片| 国产日韩欧美有码在线视频| 精品国产自在自线官方| 快播电影网站大全| 琪琪电影午夜理论片77网| 色欲精品久久人妻AV中文字幕| 羞羞影院男女爽爽影院尤物 | 久久99国产亚洲高清观着|