基于 DSP的嵌入式系統通過(guò)地址映射方式實(shí)現片外FLASH擦寫(xiě)
擦寫(xiě)步驟如下:
① 將character[180][32]設置為全局變量。
② 將程序編譯下載到DSP芯片中,打開(kāi)工程目錄中output文件夾中的.elf文件,找到character 數組在XRAM中存放的起始地址和長(cháng)度。用戶(hù)可以使用Watch Memory命令察看該段地址的數據值。
③ 使用Save Memory命令將XRAM中對應于character數組的地址段的數據以二進(jìn)制形式保存在計算機上。通過(guò)UltraEdit將其打開(kāi),檢看數據保存是否正確。
④ 打開(kāi)FLASH擦寫(xiě)程序,修改數據在片內XRAM中存儲的起始地址和FLASH的擦寫(xiě)起始地址與數據長(cháng)度。編譯下載后,單步執行,執行到擦除完FLASH,并將地址映射方式置為映射到片內XRAM處,使用Load Memory指令將char數據文件載入到片內XRAM的相應存儲地址段中,再接著(zhù)全速運行程序,幾十秒之后程序執行完畢,數據便寫(xiě)到片外FLASH的相應地址中。
⑤ 再次打開(kāi)FLASH擦寫(xiě)程序,單步執行到映射方式置為片外FLASH處停止,使用Save Memory命令保存FLASH中剛寫(xiě)入的地址段的數據值。接著(zhù)使用UltraEdit的比較文件命令比較前兩次保存的數據,如完全相同就表明character字模數組已經(jīng)正確的寫(xiě)到片外FLASH中。
將數據擦寫(xiě)入片外數據FLASH后,就可以在用戶(hù)程序中對該數據加以調用。在調用的時(shí)候要先將映射方式設置為映射到片外FLASH,然后再取數據。如下所示,取出FLASH中0x6000地址上存儲的數據:
#define FLASH_ADD (unsigned int *)0x6000
*GPIO_D_DR=0x0002; /*映射方式設置為映射到片外FLASH*/
data = *(FLASH_ADD);
3 結論
本文介紹了一種通過(guò)地址映射方式,在基于 DSP的嵌入式系統中,通過(guò)DSP擦寫(xiě)片外FLASH的方法。該方法可適用于多種場(chǎng)合,針對多個(gè) FLASH芯片可使用多個(gè)GPIO端口進(jìn)行地址的擴展,并可通過(guò)DSP實(shí)現對其擦寫(xiě)操作;若將部分程序放置到片外FLASH中并作相應設置,即可實(shí)現系統的自舉運行等。本文引用地址:http://dyxdggzs.com/article/151235.htm linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論