為了解決TMS320VC55X 系列DSP 系統(tǒng)程序代碼的保存問題,設(shè)計(jì)了一種利用JTAG 接口,在線燒寫Flash 并實(shí)現(xiàn)自舉啟動(dòng)的方法。這種在線編程的方法利用并行外部存儲(chǔ)器加載(EMIF)接口將TMS320VC5509 和Flash 芯片相連接, 通過搬移程序?qū)?yīng)用程序的已初始化段按照C55X 系列DSP 引導(dǎo)表格式燒寫進(jìn)外部擴(kuò)展的Flash 功率電感存儲(chǔ)器中,從而實(shí)現(xiàn)自舉啟動(dòng)。該方法為DSP 系統(tǒng)的軟件維護(hù)和升級(jí)帶來了方便,具有實(shí)際的應(yīng)用價(jià)值。
引言
Flash 是一種可在線進(jìn)行電擦寫而掉電后信息又不丟失的存儲(chǔ)器, 它具有功耗低、容量大、擦寫速度快等特點(diǎn)。如何將程序燒寫進(jìn)Flash , 并在上電時(shí)加載到DSP 內(nèi)部的RAM 中, 是Flash 在DSP 系統(tǒng)應(yīng)用中的兩個(gè)基本問題。本文基于TI 公司的TMS320VC5509A 和AMD 公司的AM29LV800 開發(fā)系統(tǒng), 詳細(xì)闡述了在線燒寫Flash 并實(shí)現(xiàn)自舉啟動(dòng)的方法。
1 硬件電路設(shè)計(jì)
圖1 為TMS320VC5509A 與AM29LV800 的連接示意圖,F(xiàn)lash 擴(kuò)展在CE1 空間, 起始地址為200000。由于TMS320VC5509A 只有14 根地址線A0~A13, 又因?yàn)镕lash作為數(shù)據(jù)存儲(chǔ)空間使用時(shí)的地址編碼采用字尋址方式,則DSP 的A0 信號(hào)無效, 所以AM29LV800 芯片的低13位地址線A0 ~A12 連接TMS320VC5509A 的地址線A1 ~A13, 高6 位地址線A13 ~A18 由緩沖串口來擴(kuò)展。
插件電感
圖1 TMS320VC5509A 與AM29LV800 的連接示意圖
AM29LV800 是低功耗Flash , 工作在2.7 V~3.6 V 電壓下, 一般存儲(chǔ)數(shù)據(jù)可以保存100 年以上, 可以重復(fù)編程次數(shù)高達(dá)10 萬次。A18~A0 為外部地址管腳,DQ0~DQ15為16 條數(shù)據(jù)線,
為片選控制管腳,
為輸出控制管腳,
為寫入控制管腳。
2 自啟動(dòng)過程分析及啟動(dòng)表結(jié)構(gòu)
DSP 系統(tǒng)的bootloader 是指在系統(tǒng)上電時(shí)將一段存儲(chǔ)在外部非易失性存儲(chǔ)器中的程序搬移到DSP 片內(nèi)或片外擴(kuò)展的高速RAM 中并執(zhí)行的代碼。Bootloader 程序永久性地存儲(chǔ)在DSP 以FF8000H 開始的ROM 中,DSP系統(tǒng)在復(fù)位后PC=FF8000H , 即從Bootloader 程序首地址開始執(zhí)行。
TMS320VC5509 DSP 的Bootloader 有多種加載方式[3],如表1 所示, 設(shè)置DSP 的GPIO0-GPIO3 ,DSP 在復(fù)位時(shí)讀取這4 個(gè)引腳上的狀態(tài)以確定所使用的啟動(dòng)模式。本文使用16-bit EMIF 加載方式, 雖然連線復(fù)雜, 需要考慮并行非易失存儲(chǔ)器Flash 與EMIF 接口的匹配關(guān)系, 但是它的優(yōu)點(diǎn)很多: 不需要外部時(shí)鐘驅(qū)動(dòng), 非易失存儲(chǔ)器種類多樣, 容量較大, 除了存儲(chǔ)下載表之外, 還可存儲(chǔ)系統(tǒng)需要保存的關(guān)鍵數(shù)據(jù), 以便在掉電時(shí)保存信息。表1 TMS320VC5509A 的加載方式
在這些加載模式下, 下載程序之前先要生成一張載入表, 即引導(dǎo)表。引導(dǎo)表的結(jié)構(gòu)如圖2 所示, 引導(dǎo)表攜帶的信息有代碼段和數(shù)據(jù)段信息, 向DSP 下載程序的入口點(diǎn)地址、寄存器配置信息和可編程延時(shí)信息。
圖2 引導(dǎo)表結(jié)構(gòu)
讀引導(dǎo)表可知以下信息: 程序入口地址是引導(dǎo)表加載結(jié)束后用戶程序開始執(zhí)行的地址, 也就是用戶程序生成的map 文件中顯示的入口地址; 需配置寄存器數(shù)表明后面有多少個(gè)需要配置的寄存器; 當(dāng)延時(shí)標(biāo)志為0xFFFF 時(shí), 執(zhí)行延時(shí), 延時(shí)長度決定了在寄存器配置后延時(shí)多少個(gè)CPU 周期才進(jìn)行下一個(gè)動(dòng)作; 段字節(jié)數(shù)、段起始地址和數(shù)據(jù)表示用戶程序中定義的各個(gè)段的內(nèi)容;引導(dǎo)表以32 個(gè)0 為結(jié)束標(biāo)志。
生成引導(dǎo)表的方法: 通過在DOS深圳電感廠家 環(huán)境下使用hex55.exe 轉(zhuǎn)換工具。在轉(zhuǎn)換操作之前, 先把用戶程序生成的。out 文件、包含轉(zhuǎn)換選項(xiàng)的CMD 文件hex5509.cmd 和轉(zhuǎn)換工具h(yuǎn)ex55.exe 放在同一個(gè)文件夾里, 在DOS 方式下先將路徑修改為文件所在的位置, 然后在此路徑下運(yùn)行命令hex55 hex550塑封電感9.cmd , 即可生成想要的。hex 文件。 大功率電感廠家 |大電流電感工廠