一種C55x DSP的串行引導與程序加密方法
摘要 以TI公司的TMS320VC5509A和SST公司的SST25LF080A為例,介紹了一種通過(guò)串口模式對Flash中的程序進(jìn)行二次加載和加密方法。文中還給出了相關(guān)硬件連接、自舉表的建立。實(shí)驗證明,采用該引導裝載系統具有較強的實(shí)用性,可以提高DSP軟件的保密性。
關(guān)鍵詞 TMS320VC5509A;SST25LF080A;串行引導
隨著(zhù)數字信號處理技術(shù)的發(fā)展,數字信號處理器(DSP)以其卓越的性能、獨有的特點(diǎn),成為通信、計算機、消費類(lèi)電了產(chǎn)品等領(lǐng)域的基礎器件,被廣泛地應用于各種數字信號處理系統中。由于數字信號處理器(DSP)內部的ROM需要在生產(chǎn)時(shí)寫(xiě)入程序,所以多數場(chǎng)合下,系統加電后,DSP需要將一段存儲在外部非易失性存儲器的代碼轉移到內部高速存儲器單元中執行,這樣既利用了外部的存儲單元擴展了DSP本身有限的ROM資源,又充分發(fā)揮了DSP內部資源的效能。目前Flash存儲器應用最為廣泛,其兼有存取快速、電可擦除、可在線(xiàn)編程、大容量、低功耗、小尺寸、以及價(jià)格低廉等優(yōu)點(diǎn),已成為新一代數字信號處理系統中的重要組成部分。但是,由于外部Flash存儲器中的內容易被他人讀取,因此在利用DSP進(jìn)行產(chǎn)品設計時(shí),如何保護自己的成果,防止被竊取盜用,成為了設計工作的重要方面。本文基于TI公司的TMS320VC550 9A實(shí)現一種加解密體制,利用加密算法來(lái)保護DSP程序。
1 TMS320VC5509A的自舉引導
1.1 TMS320VC5509A介紹及其Bootloader
TMS320VC5509A是TI公司推出的一款高性能DSP,最高工作在可以200 MHz主頻,IO供電電壓3.3 V;核電壓1.2~1.6V。支持DMA操作、支持多媒體卡(MultiMedia Card,MMC)、安全數字卡(signal data converter,SDC)的讀寫(xiě);集成了USB控制器、I2C總線(xiàn)控制器、MCBSP口、實(shí)時(shí)時(shí)鐘RTC,以及多路A/D轉換器;具有PGE和BGA兩種封裝形式。片內具有64 Byte ROM和128 Byte高速靜態(tài)RAM,內部只讀ROM中固化了引導加載程序(Bootloader),該程序在系統上電或復位后可以將用戶(hù)代碼自動(dòng)搬移到片內RAM運行。
1.2 自舉加載模式選擇
TMS320VC5509A每次上電復位后,在執行完一系列初始化(配置堆棧寄存器、關(guān)閉中斷、程序臨時(shí)入口、符號擴展、兼容性配置)工作后,根據預先配置的自舉模式,通過(guò)固化在ROM內的Bootloader程序進(jìn)行程序引導。引導模式選擇是根據4個(gè)引腳BOOTM[0:3]配置完成的。BOOTM 0~3引腳分別與GPIO 1、2、3、0相連。BOOTM[0:3]在實(shí)際的電路連接是將芯片引腳通過(guò)上拉或下拉電阻接地或接電源來(lái)實(shí)現。系統中采用Flash存儲器完成串行引導,只需將BOOTM[3:0]設置成0100即可。
1.3 TMS320VC5509A引導表
Bootloader允許應用代碼存放在慢速非易失性的外部存儲器中,再將代碼搬移到高速的片內存儲器中執行。應用代碼以一種Bootloader能夠理解的特殊格式編碼,這種格式就是自舉加載表。Bootloader在引導程序時(shí),程序代碼是以自舉加載表形式加載。自舉加載表包含了將要搬移的代碼段、程序段,以及這些段將要被搬移到的地址、加載完成后程序要執行的地址f即程序入口地址和其他配置信息。TMS320VC55x系列DSP的自舉加載表結構如表1所示。
其中,程序入口地址是自舉加載表加載結束后,用戶(hù)程序開(kāi)始執行的地址;待配置寄存器數目決定了后面有多少個(gè)寄存器需要配置;只有當延時(shí)標志為OxFFFF時(shí),延時(shí)才被執行;延時(shí)長(cháng)度決定了在寄存器配置后,延時(shí)多少個(gè)CPU周期才進(jìn)行下一個(gè)動(dòng)作:段長(cháng)度、段起始地址和數據則為用戶(hù)程序中定義的各個(gè)段的內容,并且可以重復添加;最后以32個(gè)0作為引導表的結束標志。若需要生成引導表,可用CCS最終編譯生成的.out文件,通過(guò)CCS自帶的hex55.exe轉換程序得到。
評論