<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > TMS320VC55x系列DSP的Flash引導方法研究

TMS320VC55x系列DSP的Flash引導方法研究

作者: 時(shí)間:2007-06-29 來(lái)源:網(wǎng)絡(luò ) 收藏
1 引言

隨著(zhù)數字信號處理技術(shù)的快速發(fā)展,DSP(數字信號處理器)越來(lái)越廣泛地應用于各種數字信號處理系統中。最終開(kāi)發(fā)的系統要想脫離器運行,必須將程序存儲在非易失性存儲器中。Flash存儲器以其大和可在線(xiàn)等特點(diǎn)已成為DSP系統的一個(gè)基本配置。如何將程序燒寫(xiě)進(jìn)Flash,并在上電時(shí)加載到DSP內部的RAM是Flash在DSP系統中應用的兩個(gè)基本技術(shù)問(wèn)題。本文以基于TI公司的TMS320VC5509A和Atmel公司的AT49LV1024 Flash開(kāi)發(fā)的系統為背景,詳細介紹了系統引導相關(guān)的硬件設計、燒寫(xiě)軟件設計以及自舉引導和二次引導等實(shí)現方法。

2 TMS320VC5509A的自舉引導

2.1 TMS320VC5509A的自舉模式配置

TMS320VC5509A每次上電復位后,在執行完一系列初始化(配置堆棧寄存器、關(guān)閉中斷、程序臨時(shí)入口、符號擴展、兼容性配置)工作后,根據預先配置的自舉模式,通過(guò)固化在ROM內的Bootloader程序進(jìn)行程序引導。VC5509A的引導模式選擇是通過(guò)4個(gè)模式選擇引腳BOOTM[0:3]配置完成的。 BOOTM0~3引腳分別與GPIO1、2、3、0相連。在本系統設計中,采用EMIF(外部存儲接口)并行引導模式(16位數據寬度),只需將BOOTM[3:0]設置成1011即可。

EMIF為外部存儲接口,通過(guò)EMIF接口可以靈活地和各種同步或異步存儲器件無(wú)縫連接。通過(guò)EMIF可以將VC5509A的存儲空間擴展到128 Mbit(SDRAM),存儲空間共被分為CE0~CE3四個(gè)段,每段占用不同的地址。在EMIF的并行引導模式中,ROM固化的Bootloader程序是以0x200000為首地址開(kāi)始加載程序。0x200000即為CE1空間的首地址,所以Flash必須接在DSP的CE1空間上。在加載時(shí)。EMIF的CE1空間已經(jīng)默認配置成異步靜態(tài)隨機存儲器(SRAM)接口,并且在時(shí)序上采用了最差情況設置(即最慢訪(fǎng)問(wèn)速度),充分保證了時(shí)間裕量,使得程序順利地加載到DSP的內存中。

2.2 TMS320VC5509A的引導表

Bootloader在引導程序時(shí),程序是以引導表格形式加載的。TMS320VC55x的引導表結構中包括了用戶(hù)程序的代碼段和數據段以及相應段在內存中的指定存儲位置,此外還包括了程序人口地址、部分寄存器的配置值、可延時(shí)時(shí)間等信息。TMS320VC55x系列DSP的引導表結構如表1所示。

其中,程序入口地址是引導表加載結束后,用戶(hù)程序開(kāi)始執行的地址;寄存器配置數目決定了后面有多少個(gè)寄存器需要配置;只有當延時(shí)標志為0xFFFF時(shí),延時(shí)才被執行;延時(shí)長(cháng)度決定了在寄存器配置后延時(shí)多少個(gè)CPU周期才進(jìn)行下一個(gè)動(dòng)作;段長(cháng)度、段起始地址和數據則為用戶(hù)程序中定義的各個(gè)段的內容,并且可以重復添加;最后以0x00000000(32個(gè)0)作為引導表的結束標志。

若要生成引導表,可用CCS最終編譯生成的,out文件通過(guò)CCS自帶的hex55.exe轉換程序得到。將hex55.exe、.out文件、.0cmd文件放在同一個(gè)文件夾中,通過(guò)DOS命令調用hex55.exe。即可完成.out文件到hex格式的引導表文件的轉化。.CMD文件用于提供引導表的相關(guān)配置信息,以下為一個(gè).CMD文件的實(shí)例:

3 Flash的燒寫(xiě)和自舉的實(shí)現

3.1 TMS320VC5509A和AT49LV1024的硬件沒(méi)計

AT49LV1024是Atmel公司一款3 V供電系統的Flash存儲器,16位位寬,為64 KB(16條地址線(xiàn))。VC5509A(PGE封裝)只有14條地址線(xiàn),只能尋址16 KB的SRAM空間。要想尋址64 KB地址空間的話(huà),Flash地址線(xiàn)的高兩位則需要通過(guò)其他I/O線(xiàn)控制。在本系統中通過(guò)GPIO4和GPIO6與Flash的高兩位地址相連實(shí)現,其連接示意圖如圖1所示。但是在Bootloader自舉引導程序時(shí),并不能控制GPIO引腳,也就是只能引導最大16 KB的程序。對于大于16 KB的程序,則需要進(jìn)行二次引導。

3.2 二次引導技術(shù)

所謂二次引導,就是通過(guò)DSP內部ROM固化的Bootloader引導用戶(hù)自行編寫(xiě)一個(gè)引導程序,其功能和ROM固化的Bootloader相同,再通過(guò)此引導程序加載系統最終運行的程序代碼,并在加載結束后,把PC值置為新的程序入口地址。在用戶(hù)編寫(xiě)的引導程序中控制GIPO4和GPIO6,即可實(shí)現64 KB地址空間尋址。具體實(shí)現框圖如圖2所示。

3.3 數據燒寫(xiě)程序設計

Flash的數據可直接讀取,但對Flash的和擦除操作則需要通過(guò)一系列命令才能進(jìn)行。AT49LV1024的寫(xiě)操作只能將1變成0,而0變成1必須通過(guò)擦除操作進(jìn)行。所以每次寫(xiě)Flash之前必須進(jìn)行片擦除,使存儲單元值變成0xFFFF,才能進(jìn)行編程。

擦除命令需要6個(gè)周期,操作命令如表2所示。

編程命令需要4個(gè)周期,操作命令如表3所示。

編程和擦除操作都需要一定周期的時(shí)間(AT49LV1024的單字編程時(shí)間是20μ8,整片擦除時(shí)間是10 s),用戶(hù)可以通過(guò)查詢(xún)標志數據線(xiàn)DQ6和DQ7確定編程或擦除是否完畢。當器件正處于編程或擦除狀態(tài)時(shí),連續讀任意單元的值,DQ6的值將一直在0、1之間交替變化,當編程或擦除結束時(shí),讀DQ6則得到一個(gè)恒定值。本文即通過(guò)此方法判斷操作是否結束。

根據Flash的編程和擦除命令,編寫(xiě)了相應的C語(yǔ)言程序,其中SetGPIO46Addr(Addr)子程序的作用是根據所傳遞的Addr值配置相應的GPIO4和GPIO6即高兩位地址的值。

3.3.1 片擦除程序



3.3.2 單字編程程序

3.3.3 編程和擦除結束確認程序



3.4 程序的燒寫(xiě)實(shí)現

本系統在CCS環(huán)境下對Flash進(jìn)行在線(xiàn)編程。先建立一個(gè)Flash的燒寫(xiě)工程,并在工程中將要燒寫(xiě)進(jìn)Flash的引導表文件通過(guò)CCS的LOADDATA功能直接加載進(jìn)DSP的內存,根據加載的首地址和數據長(cháng)度,在環(huán)境下燒進(jìn)Flash中。值得注意的是,程序加載的內存空間不能與Flash的燒寫(xiě)程序重疊,否則燒寫(xiě)失敗。

需要補充的是,經(jīng)hex55.exe文件轉化后的hex格式的引導表文件是不能直接導入CCS中的。CCS只支持將特別規定的DAT格式文件通過(guò)LOADDATA導入內存,所以在導入之前必須先將引導表轉化成DAT格式文件,這個(gè)工作可以由VC編寫(xiě)一個(gè)簡(jiǎn)單的C語(yǔ)言轉化程序實(shí)現。

4 結束語(yǔ)

本文闡述了一種針對TMS320VC55x系列DSP簡(jiǎn)單有效的Flash燒寫(xiě)方法,并提出了程序自舉引導的實(shí)現方法,包括大程序二次引導的實(shí)現方法。本文討論的引導方法包括硬件設計及相關(guān)程序,已在筆者的實(shí)際開(kāi)發(fā)CMOS圖像采集項目中使用并成功運行。



關(guān)鍵詞: 仿真 代碼 容量 編程

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>