基于TMS320C6713及AM29LV800B的上電自舉設(shè)計(jì)
4.2 C6713對Flash的操作
對Flash的操作有復(fù)位、數(shù)據(jù)讀、擦除、燒寫。Flash的復(fù)位操作相對簡單,只要向Flash任意地址單元寫入數(shù)據(jù)“0xF0”便可實(shí)現(xiàn)其復(fù)位操作。數(shù)據(jù)讀與一般的RAM存儲器相同,但Flash的擦除和燒寫操作卻有其自身特點(diǎn)。
4.2.1 Flash的擦除
由于Flash的燒寫操作只能將其內(nèi)部存儲單元由“1”改寫為“0”,反之不行,所以必須先將Flash內(nèi)部存儲單元擦除后才能寫操作。也就是說,擦除操作是將Flash內(nèi)部存儲單元全部寫為“1”。
由Flash擦除命令字看出,F(xiàn)lash的擦除分為片擦除和扇區(qū)擦除,采用片擦除,需要向2個地址寫入不同數(shù),從而擦除整個器件。其擦除子程序代碼如下:本文引用地址:http://www.ex-cimer.com/article/188692.htm
擦除操作完成后,可通過CCS查看0x90000000開始的單元,如均改寫成“0xFFFFFFFFF”則表明擦除成功。
4.2.2 Flash的燒寫
通常燒寫有兩種方式,一種是在燒寫器上對器件燒寫后再插到PCB板上,待調(diào)試完成再將其焊接固定。但目前多采用貼片式元器件,所以方案采用第二種燒寫方法,即在線燒寫法。利用仿真器通過JTAG仿真口按照一定的時序和要求對Flash燒寫。燒寫部分程序代碼如下:
在A行中,0x555左移1位后加到Flash的起始地址,這是因?yàn)閷慒lash要求向0x555地址寫入數(shù)據(jù)“Oxaa”,該地址為Hash的地址,即要求Flash地址線AO~A18上出現(xiàn)0x555數(shù)據(jù),由于DSP的第l位地址線EA2與Flash的AO相連,32位DSP對指向“short”型數(shù)據(jù)的指針操作時會自動將地址左移1位,以滿足對偶地址操作的要求,所以應(yīng)像A、B行中手動將0x555,0x2aa地址左移l位,再加上DSP自動左移1位,就使地址0x555的第1位出現(xiàn)在EA2上,即AO~A18得到數(shù)據(jù)0x555,而DSP實(shí)際輸出地址為Ox90000AAA。D行的操作是將32位DSP內(nèi)部RAM中的n個16位二進(jìn)制數(shù)搬移到16位Flash中,指針變量“flash_addr,source”均為指向“short”型數(shù)據(jù)的指針變量(16位),所以Flash會使用全部的16位數(shù)據(jù)線,而DSP只使用32位數(shù)據(jù)線的低16位用于傳輸數(shù)據(jù)。
4.3 鏈接命令文件(*.cmd文件)
鏈接命令文件是DSP開發(fā)過程中生成可執(zhí)行文件(.out)必不可少的一個文件。其作用是對DSP固有段和由用戶自定義的段在使用仿真器load程序時定位,將各段程序分配到存儲器的指定地址。這樣用戶就可以知道引導(dǎo)程序、中斷向量表和主程序在DSP內(nèi)存空間的準(zhǔn)確地址。
由于待燒寫的引導(dǎo)程序、中斷向量表和主程序需定位在DSP內(nèi)存Ox00000000~0x00003FFF的地址空間中。燒寫程序需定位在Ox00004000~0x000141FF的地址空間。鏈接命令文件部分程序代碼如下:
5 結(jié)語
以C6713為例,介紹了DSP的上電自舉過程及實(shí)現(xiàn)方法,詳細(xì)說明了其中關(guān)鍵問題及技術(shù)難點(diǎn),并應(yīng)用程序?qū)嵗涂驁D加深讀者的理解。對于讀者開發(fā)TI公司的其他產(chǎn)品也有一定的借鑒作用,特別對于從事DSP設(shè)計(jì)的入門級人員會有很大的幫助。所涉及的內(nèi)容均經(jīng)過實(shí)踐證明,運(yùn)行穩(wěn)定可靠。
評論