<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è) > 嵌入式系統 > 設計應用 > 基于TMS320DM642的

基于TMS320DM642的

——
作者:胡嘉凱 蔣建國 齊美彬 時(shí)間:2006-06-03 來(lái)源:電子產(chǎn)品世界 收藏

摘  要:DSP系統在獨立運行時(shí)需要把用戶(hù)代碼從外部Flash中加載到系統RAM運行,包括了Flash的編程及上電加載兩項技術(shù),是DSP系統開(kāi)發(fā)中的重點(diǎn)和難點(diǎn)。本文采用一種在系統編程方法對Flash編程,巧妙地利用JTAG仿真器實(shí)現系統在線(xiàn)調試及編程,無(wú)需進(jìn)行COFF到HEX的數據格式轉換。

關(guān)鍵詞:在系統編程;DSP;加載器

引言
 
  一個(gè)完整的系統必須要有一個(gè)合適的存儲器存放用戶(hù)代碼。Flash是一種非易失性存儲器,而且具有電可擦寫(xiě)、容量大、價(jià)格便宜等特點(diǎn),通??捎糜谠贒SP系統中存放用戶(hù)代碼。
Flash在正常使用前要進(jìn)行編程,即將用戶(hù)代碼寫(xiě)入Flash。在系統編程方法不需要其它編程設備和編程電源,只借助于仿真器,可直接通過(guò)DSP燒寫(xiě)程序對Flash進(jìn)行編程。本文所使用的編程方法就屬于在系統編程。
本文首先介紹常見(jiàn)的Flash編程方法,然后詳細介紹本文方法的原理,以及DSP系統上電加載原理,最后給出整個(gè)實(shí)現過(guò)程并分析了Flash編程時(shí)需要注意的一些問(wèn)題。

        
圖1 系統上電的工作步驟           

圖2  程序流程

Flash編程方法

常見(jiàn)的Flash編程方式

  Flash在正常使用前必須寫(xiě)入用戶(hù)程序,傳統上有3種編程方法:由供應商出貨前把程序代碼寫(xiě)入Flash、編程器編程和在系統編程。

  第1種方法不能滿(mǎn)足用戶(hù)更改代碼的需求,所以在開(kāi)發(fā)階段不宜采用。當使用編程器編程時(shí),要求Flash固定在PCB板前必須把用戶(hù)程序寫(xiě)入片內。因此,現在一般都優(yōu)先考慮在系統編程方法,首先應確定所選的DSP是否直持在系統編程?,F行的在系統編程的方法一般是先把待加載程序(用戶(hù)程序)的.out文件(COFF格式)轉成HEX格式,然后去掉HEX格式文件的文件頭,再通過(guò)燒寫(xiě)程序寫(xiě)到Flash里去。也可以不進(jìn)行COFF格式到HEX格式的轉換這一步,把COFF文件作為源文件,去除文件頭信息后將其寫(xiě)入Flash。

本文方法的編程原理

  本文的實(shí)現方法比較簡(jiǎn)單,首先把用戶(hù)程序映射到系統RAM,再把用戶(hù)程序作為數據直接從RAM搬入Flash中。

  首先在CCS上完成用戶(hù)程序,生成可執行的.out文件,將該文件設為文件1進(jìn)行加載;然后加載燒寫(xiě)程序的.out文件,將其設為文件2;最后運行文件2,通過(guò)它把文件1燒入Flash。

  操作步驟非常簡(jiǎn)單,這里要說(shuō)明幾點(diǎn)。首先,2個(gè).out文件各自獨立,文件2加載后,文件1成為數據,CCS在運行時(shí),運行的是最新加載的程序,也即文件2。其次,文件2與文件1映射到RAM中的物理空間各自獨立,也就是文件2不能映射到文件1已映射的地方,如果發(fā)生重疊,文件2的內容就會(huì )覆蓋原先文件1映射到該地址空間的內容,寫(xiě)入Flash的內容就會(huì )發(fā)生錯誤。再次,用戶(hù)程序里包括了二次加載程序,以在自舉時(shí)把用戶(hù)程序從Flash還原到RAM中。

 

 

 

 

 

 

總線(xiàn)周期

 

 

 

 

 

命令

1

 

2

 

3

 

4

 

5

 

6

 

序列

 地址

 數據

 地址

 數據

 地址

 數據

 地址

 數據

 地址

 數據

 地址

 數據

軟件復位

 XXX

 F0

 

 

 

 

 

 

 

 

 

 

芯片擦除

 XXX

 AA

 XXX

 55

 XXX

 80

 XXX

 AA

 XXX

 55

 XXX

 10

扇區擦除

 XXX

 AA

 XXX

 55

 XXX

 80

 XXX

 AA

 XXX

 55

 SA

 30

字節寫(xiě)

 XXX

 AA

 XXX

 55

 XXX

 A0

 PA

 PD

 

 

 

 

表1  Am29LV033C內存指令表

二次加載和Bootloader

  要保證用戶(hù)程序的正確運行,僅把程序寫(xiě)入Flash是不夠的,必須保證上電后,程序能夠從Flash中正確恢復到RAM。系統上電工作步驟如圖1所示。
DSP首先自檢,得到程序的加載模式。在C6000中主要有2種模式,一種是主機加載模式,也即DSP從0x0000 0000開(kāi)始執行程序;另一種是ROM加載模式,該模式又有8位、16位、32位幾種,不同的DSP略有不同,這里選用8位ROM模式。工作時(shí),DSP先從地址0x9000 0000開(kāi)始,把0x9000 0000~0x9000 0400這1K(在C62xx中是64K)的數據搬到0x0000 0000~0x0000 0400,然后再從0x0000 0000開(kāi)始執行程序。這一次加載由DSP自行完成,但是1K的程序作為用戶(hù)程序顯然不夠,因此,這1K的程序要做成加載器,也就是手工寫(xiě)的Bootloader,利用它把用戶(hù)程序從Flash搬入RAM。加載器搬運用戶(hù)程序又是一次加載,因此把這個(gè)過(guò)程統稱(chēng)為二次加載。

  Bootloader要完成兩項功能,第一,把其它程序搬到指定的地址;第二,跳轉到用戶(hù)程序入口,這里要先修改ISP,再跳轉到復位中斷,因此在Bootloader的最后總是一條跳轉指令。由于Bootloader在Flash中的位置是0x9000 0000~0x9000 0400,而B(niǎo)ootloader又是放在用戶(hù)程序里的,因此,為了方便燒寫(xiě)程序把Bootloader寫(xiě)到該位置,這里在用戶(hù)程序的.cmd文件中把bootloader定位在程序段的起始位置。

編程方法實(shí)現

系統配置和參數設置

  TMS320DM642是TI公司的一款視頻圖像DSP,工作時(shí)鐘最高可達到600MHz。程序存儲器最大可調至272M



關(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>