国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

分頁(yè)燒寫(xiě)Flash的多頁(yè)程序并行自舉方法

發(fā)布時(shí)間:2010-7-11 20:07    發(fā)布者:zealot
TI公司的DSP芯片TMS320Vc5410(簡(jiǎn)稱(chēng)5410)是性能卓越的低功耗定點(diǎn)DSP,在嵌入式系統(tǒng)中有著廣泛的應(yīng)用。5410沒(méi)有自帶的片上非易失性存儲(chǔ)器,因此需要外部的非易失性存儲(chǔ)介質(zhì),如EPROM或FLASH,來(lái)存儲(chǔ)程序和數(shù)據(jù)。5410片內(nèi)有64 K字RAM,由于在片內(nèi)RAM運(yùn)行程序比片外運(yùn)行有高速度低功耗等顯著優(yōu)點(diǎn),通常上電后都需要從片外EPROM或Flash上加載程序到片內(nèi)RAM,但是芯片自帶的自舉程序(簡(jiǎn)稱(chēng)BootLoader)只支持32 K字以內(nèi)的外部程序加載,因此程序設(shè)計(jì)往往局限于32 K字空間內(nèi),限制了編程的靈活性,不能充分發(fā)揮5410的性能。當(dāng)程序空問(wèn)大于32 K字時(shí),就需要自己編寫(xiě)程序來(lái)實(shí)現(xiàn)自舉。下面首先介紹使用5410對(duì)Am29LV200BFlash存儲(chǔ)器進(jìn)行程序分頁(yè)燒寫(xiě)的方法,然后重點(diǎn)介紹利用Bootloader來(lái)編程實(shí)現(xiàn)多頁(yè)并行自舉引導(dǎo)的方法。

1 Am29LV200B Flash 存儲(chǔ)器的分頁(yè)燒寫(xiě)

1.1 FIash 存儲(chǔ)器簡(jiǎn)介

Am29LV200B(簡(jiǎn)稱(chēng)Flash)是AMD公司生產(chǎn)的Flash存儲(chǔ)器,主要特點(diǎn)有:3 V單電源供電,可內(nèi)部產(chǎn)生高電壓進(jìn)行編程和擦除操作;支持JEDEC單電源Flash存儲(chǔ)器標(biāo)準(zhǔn);只需向其命令寄存器寫(xiě)人標(biāo)準(zhǔn)的微處理器指令,具體編程、擦除操作由內(nèi)部嵌入的算法實(shí)現(xiàn),并且可以通過(guò)查詢特定的引腳或數(shù)據(jù)線監(jiān)控操作是否完成;可以對(duì)任一扇區(qū)進(jìn)行讀、寫(xiě)或擦除操作,而不影響其他部分的數(shù)據(jù)。文中128K×16位Am29LV200B  Flash映射為5410的片外數(shù)據(jù)存儲(chǔ)空間,地址為:0x8000~0xFFFF,數(shù)據(jù)總線16位,用于16位方式的并行引導(dǎo)裝載。128K的Flash被分為7頁(yè)進(jìn)行訪問(wèn)。本文通過(guò)DSP的I/O端口向FPGA寫(xiě)控制字,由FPGA控制Flash的換頁(yè)引腳對(duì)各個(gè)分頁(yè)進(jìn)行訪問(wèn);以燒寫(xiě)2個(gè)頁(yè)面為例,使用Flash的第1、2頁(yè),初始化時(shí)選中第l頁(yè)。

1.2 Flash 存儲(chǔ)器的分頁(yè)燒寫(xiě)   

Flash的頁(yè)面分配和相應(yīng)的引腳控制如表1所列。關(guān)于Am29LV200B的擦除、寫(xiě)、校驗(yàn)等詳細(xì)操作。


從表1可以看到,通過(guò)對(duì)A16、A15等地址引腳的控制,可以實(shí)現(xiàn)Flash的頁(yè)面切換。在燒寫(xiě)過(guò)程中,只要在指定頁(yè)面燒寫(xiě)完預(yù)定空間后就對(duì)Flash進(jìn)行換頁(yè),然后將燒寫(xiě)指針指向新的一頁(yè)的首地址,就可以繼續(xù)進(jìn)行燒寫(xiě),當(dāng)程序燒寫(xiě)完成后需要將頁(yè)面換回到第1頁(yè),在第1頁(yè)的FFFFH地址寫(xiě)入8000H,這樣Bootloader可以從這一頁(yè)開(kāi)始自舉。整個(gè)燒寫(xiě)程序流程如圖1所示。


這里會(huì)出現(xiàn)一個(gè)問(wèn)題:程序燒寫(xiě)好后,雖然Bootloader可以自動(dòng)加載程序,但是Bootloader怎樣在加載過(guò)程中自動(dòng)換頁(yè)?下面詳細(xì)介紹利用片上Bootloader編程實(shí)現(xiàn)多頁(yè)程序并行加載的方法。

2 多頁(yè)并行加載的實(shí)現(xiàn)

實(shí)現(xiàn)多頁(yè)加載,關(guān)鍵問(wèn)題是要讓Bootloader知道什么時(shí)候可以換頁(yè);但是Bootloader是固化在5410片上ROM內(nèi)的,無(wú)法對(duì)其進(jìn)行編程。解決的方法是通過(guò)自己編寫(xiě)一段“前導(dǎo)”加載程序(簡(jiǎn)稱(chēng)Loader)來(lái)實(shí)現(xiàn)加載中的換頁(yè):首先將Loader和用戶程序都燒寫(xiě)到Flash中,當(dāng)系統(tǒng)上電后,Bootloader將Loader加載到片上并運(yùn)行,然后Loader將Flash中的用戶程序加載到目標(biāo)RAM空間。這個(gè)加載過(guò)程是用戶編程可控的,因此在需要換頁(yè)時(shí),可以控制Flash進(jìn)行換頁(yè),加載完成后,Loader跳轉(zhuǎn)到用戶程序的人口地址處運(yùn)行用戶程序。
  
2.1 BootLoader的并行自舉表結(jié)構(gòu)和編程后的自舉表結(jié)構(gòu)   

5410的并行加載過(guò)程以及生成并行自舉表的詳細(xì)方法請(qǐng)見(jiàn)參考文獻(xiàn)[1]、[3]。Bootloader使用圖2所示的并行自舉表來(lái)加載程序。Bootloader從表頭開(kāi)始依次讀取自舉表,然后將相應(yīng)的程序段加載到目標(biāo)RAM,最后以程序段大小為0來(lái)結(jié)束自舉表的讀取,跳轉(zhuǎn)到用戶程序入口地址執(zhí)行用戶程序。從圖2可以看到,Bootloader是以自舉表中的程序長(zhǎng)度為0來(lái)結(jié)束自舉的,于是就可以利用這個(gè)特性,給Bootloader制造一個(gè)“假象”,讓Bootloader在加載完Loader程序后,認(rèn)為程序已經(jīng)加載完畢,然后開(kāi)始運(yùn)行Loader程序,繼續(xù)加載用戶程序。按照這個(gè)思路,可以建立圖3所示的自舉表。

圖3中的黑體字部分,是嵌入了Loader程序的自舉表,有了圖3這樣形式的并行自舉表,系統(tǒng)就可以實(shí)現(xiàn)多頁(yè)程序的并行自舉。建立這樣的自舉表很簡(jiǎn)單,只需要將hex500格式轉(zhuǎn)換工具生成的Loader的并行自舉表和用戶程序的并行自舉表按圖3給定的格式,通過(guò)簡(jiǎn)單的文件操作合并在一起就可以了。注意:Loader程序要占用一部分RAM空間,用戶程序空間不能和Loader的RAM空間重疊在一起。


2.2 Loader程序的具體實(shí)現(xiàn)


下面以分布在2個(gè)FLASH頁(yè)面的程序?yàn)槔o出5410并行自舉的示例程序。程序中,當(dāng)I/O端口5寫(xiě)人數(shù)據(jù)O時(shí),選中Flash第1頁(yè);寫(xiě)1時(shí)選中第2頁(yè)。程序里用黑體字標(biāo)出的注釋部分,是Loader程序設(shè)計(jì)的重點(diǎn)或難點(diǎn)。

示例程序中,DSP上電后,Bootloader將Loader程序加載到RAM中,然后執(zhí)行Loader程序:Loadelr程序從Flash第1頁(yè)的8080H開(kāi)始讀取用戶程序自舉表,當(dāng)Flash讀取計(jì)數(shù)值超過(guò)31 K時(shí),將Flash切換到頁(yè)面2,繼續(xù)加載,自舉完成后,跳轉(zhuǎn)到用戶程序入口地址執(zhí)行用戶程序。在編寫(xiě)自舉程序過(guò)程中,有這樣幾個(gè)問(wèn)題需要注意:   

①在換頁(yè)時(shí),一般情況下程序段都會(huì)跨越兩個(gè)頁(yè)面,因此在確定需要換頁(yè)時(shí)要計(jì)算出第1頁(yè)和第2頁(yè)分別要加載的段長(zhǎng)度。   

②整個(gè)用戶程序段開(kāi)始時(shí)有2個(gè)字的入口信息,每一個(gè)程序段都有3個(gè)字的段信息,因此需要在Flash讀取計(jì)數(shù)時(shí)給予修正,才能正確加載數(shù)據(jù)。   

③在確定需要換頁(yè)時(shí)要將換頁(yè)標(biāo)志置為1,換頁(yè)后要將換頁(yè)標(biāo)志置為0,而且換頁(yè)后要將數(shù)據(jù)讀取指針指向第2頁(yè)的開(kāi)頭地址。   

如果要使用本文的示例程序,一定要將Loader程序燒寫(xiě)到Flash第1頁(yè)8000H的位置,用戶程序段燒寫(xiě)到8080H以后的位置。再次提醒,Loader程序加載到RAM中的地址,不能和用戶程序段加載到RAM中的地址重疊。例如Loader使用了RAM中的7F80H~8000H這段空間,則用戶程序不能使用這段空間,否則會(huì)出現(xiàn)錯(cuò)誤。Loader的自舉流程如圖4所示。


3  總 結(jié)

要實(shí)現(xiàn)5410的多頁(yè)程序并行自舉,有如下幾個(gè)步驟:   

①根據(jù)用戶程序的需求以及實(shí)際使用Flash的分頁(yè)設(shè)置,參考第2部分提供的思路和例子編寫(xiě)Loader程序;   

②使用hex500代碼轉(zhuǎn)化工具分別生成Loader程序和用戶程序的自舉表;   

③將兩個(gè)自舉表按圖2的格式生成一個(gè)新的自舉表,再使用第1部分介紹的方法將新的自舉表分頁(yè)燒寫(xiě)到Flash上。   

使用本文介紹的方法,通過(guò)多次試驗(yàn),系統(tǒng)上電后,能夠很好地實(shí)現(xiàn)2個(gè)頁(yè)面程序的并行自舉。雖然是以2個(gè)頁(yè)面為例介紹FLASH燒寫(xiě)和并行自舉的方法,但是對(duì)于2頁(yè)以上的程序燒寫(xiě)和并行自舉同樣適用,只需要進(jìn)行一些細(xì)微的改動(dòng)即可。本文提供的方法以不到128字的RAM空間代價(jià),在5410上實(shí)現(xiàn)了將大于32 K字的程序并行自舉到片上RAM,大大提高了編程的自由度和程序的運(yùn)行速度,降低了系統(tǒng)功耗。這個(gè)方法有很強(qiáng)的通用性,可以在很多存在類(lèi)似問(wèn)題的DSP芯片(5409、5416等)上進(jìn)行應(yīng)用,具有較高的實(shí)用價(jià)值。
本文地址:http://m.qingdxww.cn/thread-14970-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
mrsh123 發(fā)表于 2010-7-12 15:04:58
很好的建議
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 更佳設(shè)計(jì)的解決方案——Microchip模擬開(kāi)發(fā)生態(tài)系統(tǒng)
  • 你仿真過(guò)嗎?使用免費(fèi)的MPLAB Mindi模擬仿真器降低設(shè)計(jì)風(fēng)險(xiǎn)
  • 深度體驗(yàn)Microchip自動(dòng)輔助駕駛應(yīng)用方案——2025巡展開(kāi)啟報(bào)名!
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91免费在线视频 | 在线视频一区二区三区在线播放 | 国产手机精品视频 | 午夜视频在线观看一区二区 | 四虎2020| 国产手机在线看片 | www.91香蕉视频 | 国产手机视频在线观看 | 奇米精品一区二区三区四区 | 四虎影永久在线观看网址 | 99久久精品费精品国产一区二 | 亚洲国产高清在线观看视频 | 免费视频精品一区二区三区 | 欧美高清观看免费全部完 | 中文字幕一区在线播放 | 久久综合久久鬼色 | 日本韩国欧美一区 | 色欧美亚洲| 麻豆国产精品免费视频 | 欧美在线播放成人免费 | yy6080韩国日本三理论免费 | eeuss第一页 eeuss草民免费 | 日本免费在线看 | 国产一区二区三区不卡在线观看 | 日韩欧美精品综合一区二区三区 | 上海一级片| 美女在线网站视频免费观看 | 国产精品嫩草影院在线看 | 亚洲国产精品一区二区三区 | 中文日韩字幕一区在线观看 | 激情九月婷婷 | 日韩成人毛片高清视频免费看 | 中文字幕在线日韩 | 色婷婷在线观看视频 | 91亚洲精品丁香在线观看 | 9久热精品免费观看视频 | 亚洲欧美日韩中文高清一 | 国产一级在线 | 青青青青在线成人视99 | 亚洲欧美中文日韩在线 | 欧美三级在线观看不卡视频 |