1 引言
在DSP系統(tǒng)的設(shè)計中,經(jīng)常要使用片外存儲器擴(kuò)充系統(tǒng)存儲空間。特別是當(dāng)DSP的片內(nèi)數(shù)據(jù)存儲器和程序存儲器容量比較小時, 必須把一部分?jǐn)?shù)據(jù),如常量、原始數(shù)據(jù)庫等存儲到片外的存儲器中,從而節(jié)省DSP芯片內(nèi)部的存儲器資源。在實(shí)際應(yīng)用中,片外存儲器通常選擇RAM或FLASH MEMORY。RAM數(shù)據(jù)掉電即丟失,不適合長期保存數(shù)據(jù)。對于一些無需頻繁讀寫但需要長期保存的數(shù)據(jù),如字模數(shù)據(jù)、端口地址等時,通常選擇片外FLASH作偽擴(kuò)展的數(shù)據(jù)存儲器。使用片外 FLASH必須要解決對其擦寫的問題。
在實(shí)際應(yīng)用中,對片外FLASH的擦寫有兩種方式:一是使用通用編程器對FLASH芯片進(jìn)行擦寫;二是直接由DSP對FLASH進(jìn)行擦寫。對于需要修改或已安裝在電路板上的FLASH芯片無法使用第一種方式,只能采用第二種方式,且便于調(diào)試。本文介紹一種利用存儲器映射技術(shù)實(shí)現(xiàn)對DSP片外FLASH擦寫的方法。
DSP56F805芯片是Motorola公司在DSP56800 的基礎(chǔ)上開發(fā)的系列DSP芯片之一。該芯片采用先進(jìn)的修正哈佛結(jié)構(gòu),三個內(nèi)部地址總線和四個內(nèi)部數(shù)據(jù)總線支持?jǐn)?shù)據(jù)傳輸;采用MCU形式的指令集,尋址方式靈活;具有較強(qiáng)的片外存儲空間擴(kuò)展能力;功耗小,高度并行。但是該芯片的片內(nèi)數(shù)據(jù)存儲器空間最大為64k,程序存儲空間尋址范圍是64k,內(nèi)部模式(Mode0A和Mode0B)下只有31.5k。對于一些需要復(fù)雜中文圖形用戶界面的 DSP系統(tǒng)來說芯片存儲資源顯得不夠,必須對芯片存儲空間進(jìn)行擴(kuò)展。考慮到具體要求,本文使用片外FLASH來擴(kuò)展系統(tǒng)數(shù)據(jù)存儲空間,將DSP系統(tǒng)的中文圖形用戶界面中用到的所有字模數(shù)據(jù)和頁面內(nèi)容數(shù)據(jù)存放到片外FLASH中,大大節(jié)省了片內(nèi)的數(shù)據(jù)存儲器空間。
CodeWarrior IDE是由Metrowerks公司專為Motorola的DSP56800系列設(shè)計的開發(fā)平臺。該平臺具有簡單明了的圖形用戶界面和豐富的軟件開發(fā)工具,適合于開發(fā)基于DSP56800系列的應(yīng)用程序、插件程序等各種程序代碼。在CodeWarrior環(huán)境中,用戶可以通過修改.cmd文件來配置存儲器分配方式,還可以通過修改startup文件夾中的初始化程序來控制系統(tǒng)的初始化操作。用戶編譯并鏈接后,將生成.elf文件,在文件中可以看到存儲器的詳細(xì)分配情況。當(dāng)用戶將程序下載到DSP芯片后,可以使用CodeWarrior的調(diào)試器對程序進(jìn)行全面的調(diào)試,如設(shè)置斷點(diǎn)、單步執(zhí)行等;也可以使用 Watch Memory指令來檢查存儲器中的各地址段的值,還可以使用Save/Load Memory指令來保存或是載入某段存儲器的值。
2 方法介紹
首先利用GPIOD0口生成合適的片外FLASH和片內(nèi)XRAM片選信號,實(shí)現(xiàn)片內(nèi)XRAM和片外FLASH的訪問切換。例如當(dāng)GPIOD0 =0時,0x8000~0xFFFF映射到片內(nèi)XRAM,此時對于整個0x0000~0xFFFF地址范圍的讀寫操作就是對于片內(nèi) XRAM的操作;當(dāng)GPIOD0=1時,0x8000~0xFFFF地址范圍映射到數(shù)據(jù)FLASH,則對0x8000~0xFFFF 地址范圍的讀寫操作就是對于片外FLASH的操作;對0x0000~0x7FFF地址范圍的讀寫仍是針對片內(nèi) XRAM的操作,從而將數(shù)據(jù)存儲空間擴(kuò)展了32k。
再將映射方式設(shè)置為片內(nèi),將需要寫到FLASH中的數(shù)據(jù)文件載入片內(nèi)XRAM。最后根據(jù)需要設(shè)置GPIO端口值,切換地址映射的存儲器。這樣通過地址映射的方法,便可實(shí)現(xiàn)將XRAM中數(shù)據(jù)寫入片外FLASH的操作,而對于DSP芯片來說只是進(jìn)行了其XRAM尋址空間內(nèi)部的數(shù)據(jù)搬移操作。
假設(shè)要將一組二維數(shù)組character[180][32]形式的字模數(shù)據(jù)保存入片外數(shù)據(jù)FLASH的0x8000~0xA000地址段中,先做以下準(zhǔn)備工作:
①用一個GPIO端口,擴(kuò)展系統(tǒng)的可尋址數(shù)據(jù)存儲器空間;②編寫FLASH擦寫程序,程序流程如圖1所示。
#define N 100 /* 由于FLASH與RAM的讀寫速度不同,所以需要在每項操作后加入若干個延遲以保證正確性,延遲的具體長短可以根據(jù)具體情況作調(diào)整 */
Lua RTOS 是一個實(shí)時操作系統(tǒng),設(shè)計在嵌入式系統(tǒng)上運(yùn)行,對 FLASH 和 RAM 內(nèi)存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平臺,并可以輕松移植到其他32位...
關(guān)鍵字: Lua RTOS 操作系統(tǒng) 嵌入式系統(tǒng)通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UATR,是一種串行、異步、全雙工的收發(fā)器。全雙工的UART支持同時雙向通信,是嵌入式系統(tǒng)必不可少的d...
關(guān)鍵字: 異步收發(fā) 傳輸器 嵌入式系統(tǒng)Flash Memory 是一種非易失性的存儲器。在嵌入式系統(tǒng)中通常用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等。在 PC 系統(tǒng)中,則主要用在固態(tài)硬盤以及主板 BIOS 中。
關(guān)鍵字: Flash 存儲器 嵌入式系統(tǒng)摘要:主要介紹了應(yīng)用DSP的電能質(zhì)量檢測系統(tǒng)的硬件電路及軟件開發(fā)工具,對采集來的某電鐵電流信號進(jìn)行了電能質(zhì)量檢測,并開展了實(shí)際實(shí)驗(yàn)嘗試。實(shí)驗(yàn)結(jié)果顯示,實(shí)際信號含有大量諧波,但通過應(yīng)用DSP的電能質(zhì)量檢測系統(tǒng)成功檢測到了它...
關(guān)鍵字: 電能質(zhì)量檢測 Matlab仿真 DSP近年來,隨著計算機(jī)技術(shù)及集成電路技術(shù)的發(fā)展,嵌入式技術(shù)日漸普及,在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)無疑成為當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。?嵌入式系統(tǒng)一般由嵌入式微處理器、外...
關(guān)鍵字: 嵌入式 嵌入式系統(tǒng) 計算機(jī)(全球TMT2022年9月9日訊)2022中國智能科技展覽會及論壇9月6日在吉隆坡開幕。聲智科技作為新興的科技智能公司,受邀參與本次展會及論壇。聲智在馬來西亞成立的子公司SoundAl Technology (M) S...
關(guān)鍵字: API SOUND TECHNOLOGY 映射深圳2022年8月26日 /美通社/ -- 8月17日 – 深圳,AMD Xilinx舉辦為期一天的線下技術(shù)日活動,在AMD Xilinx主辦下宜鼎國際作為合作伙伴的身份被邀...
關(guān)鍵字: AMD Xilinx AGENT 嵌入式系統(tǒng)單向散列算法,又稱hash哈希函數(shù),Hash函數(shù)(也稱雜湊算法)就是把任意長的輸入消息串變化成固定長的輸出串的一種函數(shù),該過程是不可逆的。Hash函數(shù)可用于數(shù)字簽名、消息的完整性檢測、消息起源的認(rèn)證檢測等。較為常用的方法...
關(guān)鍵字: 嵌入式算法 嵌入式系統(tǒng)