翟麗杰
【摘 要】介紹了TMS320C6000系列BOOTLOAD的程序功能、特點及設計思路,該思路下編寫的BOOTLOAD程序已在SAR數據存儲系統上應用,運行良好。
【關鍵詞】DSP;TMS320C6000;BOOTLOAD
0 引言
數字信號處理器,DSP( Digital Signal Processor),是隨數字信號處理理論發展而專門設計的可編程處理器,是現代電子技術、計算機技術和信號處理技術相結合的產物[1]。由于目前越來越多的嵌入式設備研發中采用了的操作系統支持[3],那么必然要根據目標板設計引導程序,實現整個系統脫機工作,即系統一開機運行就將程序自動加載到DSP的內部RAM中,脫機運行,完成系統的功能。
BOOTLOAD又稱為內核引導程序[4],是嵌入式系統在加電后執行的第一段代碼,它主要負責向內存裝載操作系統映像,然后跳轉到操作系統所在的空間,啟動操作系統運行。具體來講即初始化硬件設備、建立內存空間的映射圖,最終調用用戶程序。
1 TMS320C6000 DSP特有的二次啟動過程
TMS320C6000系列DSP在復位時其片內ROM中固化了BOOTLOAD代碼,這段代碼采用DMA方式從CE1指向的外部存儲空間復制1K的代碼到地址0處,然后跳轉到地址0處執行。但是實際情況1K的代碼對本文設計的系統是遠遠不夠,因此需要進行二次BOOTLOAD。編寫的二次BOOTLOAD代碼應該包含在被搬移的1K代碼中,實現從FLASH存儲器中搬移指定長度的程序代碼以及初始化的數據到DSP片內RAM中。
二次BOOTLOAD引導程序主要是將加載地址位于FLASH的數據拷貝到RAM中相應的運行地址。因為在系統最初啟動時,C語言環境沒有初始化,因此這段程序需要用匯編語言編寫。
編寫完后在CCS中compile、build,生成可執行文件.out;在匯編優化后產生.obj文件。該格式文件包含匯編時匯編器所生成的各個段,然后命令文件將指導連接器分配各段到相應的存儲器中。此時要注意,加載地址和運行地址的不同。加載地址決定二進制代碼的存儲位置和程序引導地址。
2 二次BOOTLOAD固化過程
與BIOS/OS Load類似,BOOTLOAD通常需要固化在目標板中,每次啟動目標板時首先運行自動加載程序,在他完成CPU及相關硬件的初始化后,才在規定的地址啟動操作系統。BOOTLOAD是嚴重依賴硬件而實現的[5],每一種不同體系結構的處理器都有不同的BOOTLOAD,甚至同一種處理器的外圍硬件配置不同,其BOOTLOAD也有差別。
由于FLASH存儲器具有電信號刪除功能,且刪除速度快,集成度高,成為嵌入式系統自動加載模塊的外部存儲程序的首選存儲器[6]。TMS320C6000系列DSP采用了多種引導配置方式,以決定芯片在復位后采取何種方式執行的初始化操作。
本節設計的自動加載模塊采用EMIF引導,即BOOTMODE[4:0]=10。在這種引導啟動模式下,芯片復位后,CPU處于“停轉”的狀態,DMA模塊采用默認的ROM讀寫時序從CE1空間起始地址(此時掛載的是FLASH)上拷貝代碼到地址0處,拷貝結束,CPU進入“運行”狀態,從地址0處開始執行程序。
將程序編譯、驗證后,進行二次BOOTLOAD代碼的固化。上面所寫BOOTLOAD加載代碼及工程實際代碼都需要固化在FLASH中。Hex6*.exe是CCS開發環境自帶的工具[8],將*.out文件轉化為hex格式文件,然后進行燒寫。.hex文件格式只含待燒寫的數據,將數據讀入到緩沖區buff中,然后編寫命令進行在線編程,完成燒寫。
通過編寫自動加載代碼,編譯成功后固化在系統FLASH中,就實現了整個系統的脫機加載模塊。
3 自動加載模塊BOOTLOAD測試與分析
整個測試分為以下幾步:首先是移植代碼編譯測試,即軟件仿真;其次是固化燒寫,測試程序是否燒寫在FLASH預先設定的位置;最后測試系統開機是否可以自動加載,脫機獨立運行。
測試軟件環境為:CCS 3.1 集成開發環境;硬件為:SAR數據存儲系統
(1)軟件仿真測試
打開CCS,新建自動加載模塊工程—Bootloader.pjt,運行該工程進行編譯。整個自動加載模塊代碼沒有錯誤也沒有警告運行正常,代碼編譯正確,沒有語法和邏輯錯誤。
(2)燒寫固化過程測試
將已經測試過的編譯正確的自動加載模塊代碼燒寫固化在系統中FLASH中,這里采用了擦除命令。
通過擦除燒寫命令,程序依次燒寫至FLASH中預定的地址,程序燒寫正確。隨后在整個SAR數據存儲系統中測試,系統從上電開始,自動加載,接收數據,在DSP內將數據處理后存入存儲設備,說明自動加載模塊BOOTLOAD,運行良好。
4 總結
隨著DSP越來越廣泛應用到各種電子信息產品中,對產品靈活方便的引導啟動方式提出了更高的要求,而通過FLASH存儲器來引導DSP系統自動加載已成為常用的方法,這是脫機運行DSP系統的較關鍵技術。本文詳細介紹了基于TI TMS320C6000系列DSP的自動加載程序BOOTLOAD的設計思路及在硬件上應用,本方案在不同的工程中做簡單修改就可以在不同系統中穩定的啟動裝載。
【參考文獻】
[1]彭啟琮,李玉柏,管慶.DSP技術的發展與應用[M].北京:高等教育出版社,2002:340-345.
[2]Tetsuya OSHIKATA,Hirofumi MATSUO. Analysis of Dynamic Characteristics For The Partially Resonant Active Filter With The Dsp. IEICE Transactions on Communications.
[3]李永超,馬金嶺.TMS320C6000系列帶中斷向量表的二次的Bootloader的設計與實現.電子工程師.第33卷第3期.2007:45-49.
[4]劉向宇.DSP嵌入式常用模塊與綜合系統設計實例精講.北京:電子工業出版社2008:93.
[5]馬學文,朱名日,程小輝.嵌入式系統中Bootloader的設計與實現.計算機工程.第31卷第7期.2005.4.
[6]張謙,李世杰,李紅波.TMS320C6000系列DSP可選擇引導加載方式的設計與實現.電子測量技術.第32卷第7期.2009.7.
[7]王璐.基于DSP的嵌入式實時操作系統的研究.廣東工業大學學位論文2005:13-17.
[8]紀震,鐘錦春,強樂.DSP系統入門與實踐.北京:電子工業出版社.2006:1-10.endprint