- 相關(guān)推薦
TMS320C5410燒寫Flash實現(xiàn)并行自舉引導(dǎo)
摘要:介紹在TMS320C5410環(huán)境下對Am29LV200B Flash存儲器進行程序燒寫,并且實現(xiàn)了TMS320C5410上電后用戶程序并行自舉引導(dǎo)。Flash是一種可在線進行電擦寫,掉電后信息不丟失的存儲器。它具有低功耗、大容量、擦寫速度快等特點,并且內(nèi)部嵌入算法完成對芯片的操作,因而在數(shù)字信號處理系統(tǒng)中得到了廣泛的應(yīng)用。本文通過一個完整的實例,介紹Am29LV200B Flash存儲器的燒寫方法,實現(xiàn)TMS320C5410(以下簡稱C5410)上電后用戶程序的并行自舉引導(dǎo)。
1 Am29LV200B Flash存儲器
1.1 Flash存儲器簡介
Am29LV200B是AMD公司生產(chǎn)的Flash存儲器,其主要特點有:3 V單電源供電,可使內(nèi)部產(chǎn)生高電壓進行編程和擦除操作;支持JEDEC單電源Flash存儲器標(biāo)準(zhǔn);只需向其命令寄存器寫入標(biāo)準(zhǔn)的微處理器指令,具體編程、擦除操作由內(nèi)部嵌入的算法實現(xiàn),并且可以通過查詢特定的引腳或數(shù)據(jù)線監(jiān)控操作是否完成;可以對任一扇區(qū)進行讀、寫或擦除操作,而不影響其它部分的數(shù)據(jù)。本文中128K×16位Am29LV200B Flash 映射為C5410的片外數(shù)據(jù)存儲空間,地址為:0x8000~0xFFFF,數(shù)據(jù)總線16位,用于16位方式的并行引導(dǎo)裝載。128K的Flash ROM用32K地址分四頁進行訪問,上電加載程序時使用Flash ROM的第3頁。
1.2 Flash存儲器的操作命令
向Flash存儲器的特定寄存器寫入地址和數(shù)據(jù)命令,就可對Flash存儲器編程,但要按一定的順序操作,否則就會導(dǎo)致Flash存儲器復(fù)位。由于編程指令不能使"0"寫為"1",只能使"1"變?yōu)?0",而擦除命令可使"0"變?yōu)?1",所以正確順序是先擦除,后編程。下面就介紹幾個常用的操作命令:編程命令、擦除命令、讀數(shù)據(jù)命令、復(fù)位命令。
、 編程命令。該命令向Flash的指定地址中寫入數(shù)據(jù),需要四個總線周期,前兩個是解鎖周期,第三個是建立編程命令,最后一個周期完成向編程地址中寫入編程數(shù)據(jù),如表1所列。
表1 編程命令
由于向每個編程地址寫入數(shù)據(jù)都需要四個周期,所以在循環(huán)寫Flash時使用宏比較簡單。Flash ROM的首地址為0x8000,故偏移地址0x555對應(yīng)物理地址就為0x8555。編程程序如下:
_WRITECOMMAND .macro pa,pd ;單一周期編程的寫命
;令宏,pa是編程地址,pd是編程數(shù)據(jù)
PSHM AR1
STM pa,AR1 ;AR1指向編程地址
LD pd,A
STL A,*AR1 ;把編程數(shù)據(jù)放入AR1的編程地址中
RPT #12
NOP
POPM AR1
.endm
_WRITEFlash .macro par,pdr ;編程宏,par是編程地址寄存
;器,pdr是存放編程數(shù)據(jù)的寄存器
_WRITECOMMAND #8555H,#0AAH ; 周期1(解鎖)
_WRITECOMMAND #82AAH,#055H ; 周期2(解鎖)
_WRITECOMMAND #8555H, #0A0H ; 周期3(建立)
LD pdr, A ; 周期4(編程)
STL A, par ; 把pdr寄存器中數(shù)據(jù)放入par
;寄存器的地址中
RPT #12
NOP
_JUDGE par, pdr ;檢測編程是否正確,見Flash
;的操作檢測
.endm
_WRITECOMMAND是實現(xiàn)一個周期編程的寫命令宏,而_WRITEFlash是完成對指定地址編程的四個完整周期。
表2 擦除命令
② 擦除命令。該命令有片擦除和扇區(qū)擦除兩種,都需要6個總線周期,前兩個解鎖周期,第三個建立周期,四、五兩個解鎖周期,最后是片擦除或扇區(qū)擦除周期,如表2所列。一旦執(zhí)行編程或擦除命令后,就啟動Flash的內(nèi)部編程或擦除算法,自動完成編程或擦除操作。擦除程序如下:
_ERASEFlash .macro ;擦除宏
_WRITECOMMAND #8555H,#0AAH ; 周期1(解鎖)
_WRITECOMMAND #82AAH,#055H ; 周期2(解鎖)
_WRITECOMMAND #8555H,#080H ; 周期3(建立)
_WRITECOMMAND #8555H,#0AAH ; 周期4(解鎖)
_WRITECOMMAND #82AAH,#055H ; 周期5(解鎖)
_WRITECOMMAND #8555H,#010H ; 周期6(片擦除)
STM #8555H,AR3
LD #010H ,A
【TMS320C5410燒寫Flash實現(xiàn)并行自舉引導(dǎo)】相關(guān)文章:
TMS320VC5416并行自舉的巧妙實現(xiàn)03-18
TMS320C6x DSP的FLASH引導(dǎo)方法研究與實現(xiàn)03-18
HPI自舉在TMS320VC5402芯片上的實現(xiàn)03-18
利用Flash實現(xiàn)DSP對多個程序有選擇的加載03-19
大容量Flash存儲設(shè)備在水文遙測系統(tǒng)中的實現(xiàn)03-07