當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]一種C55x DSP的串行引導(dǎo)與程序加密方法

摘要 以TI公司的TMS320VC5509A和SST公司的SST25LF080A為例,介紹了一種通過(guò)串口模式對(duì)Flash中的程序進(jìn)行二次加載和加密方法。文中還給出了相關(guān)硬件連接、自舉表的建立。實(shí)驗(yàn)證明,采用該引導(dǎo)裝載系統(tǒng)具有較強(qiáng)的實(shí)用性,可以提高DSP軟件的保密性。
關(guān)鍵詞 TMS320VC5509A;SST25LF080A;串行引導(dǎo)

    隨著數(shù)字信號(hào)處理技術(shù)的發(fā)展,數(shù)字信號(hào)處理器(DSP)以其卓越的性能、獨(dú)有的特點(diǎn),成為通信、計(jì)算機(jī)、消費(fèi)類電了產(chǎn)品等領(lǐng)域的基礎(chǔ)器件,被廣泛地應(yīng)用于各種數(shù)字信號(hào)處理系統(tǒng)中。由于數(shù)字信號(hào)處理器(DSP)內(nèi)部的ROM需要在生產(chǎn)時(shí)寫入程序,所以多數(shù)場(chǎng)合下,系統(tǒng)加電后,DSP需要將一段存儲(chǔ)在外部非易失性存儲(chǔ)器的代碼轉(zhuǎn)移到內(nèi)部高速存儲(chǔ)器單元中執(zhí)行,這樣既利用了外部的存儲(chǔ)單元擴(kuò)展了DSP本身有限的ROM資源,又充分發(fā)揮了DSP內(nèi)部資源的效能。目前Flash存儲(chǔ)器應(yīng)用最為廣泛,其兼有存取快速、電可擦除、可在線編程、大容量、低功耗、小尺寸、以及價(jià)格低廉等優(yōu)點(diǎn),已成為新一代數(shù)字信號(hào)處理系統(tǒng)中的重要組成部分。但是,由于外部Flash存儲(chǔ)器中的內(nèi)容易被他人讀取,因此在利用DSP進(jìn)行產(chǎn)品設(shè)計(jì)時(shí),如何保護(hù)自己的成果,防止被竊取盜用,成為了設(shè)計(jì)工作的重要方面。本文基于TI公司的TMS320VC550 9A實(shí)現(xiàn)一種加解密體制,利用加密算法來(lái)保護(hù)DSP程序。

1 TMS320VC5509A的自舉引導(dǎo)
1.1 TMS320VC5509A介紹及其Bootloader
    TMS320VC5509A是TI公司推出的一款高性能DSP,最高工作在可以200 MHz主頻,IO供電電壓3.3 V;核電壓1.2~1.6V。支持DMA操作、支持多媒體卡(MultiMedia Card,MMC)、安全數(shù)字卡(signal data converter,SDC)的讀寫;集成了USB控制器、I2C總線控制器、MCBSP口、實(shí)時(shí)時(shí)鐘RTC,以及多路A/D轉(zhuǎn)換器;具有PGE和BGA兩種封裝形式。片內(nèi)具有64 Byte ROM和128 Byte高速靜態(tài)RAM,內(nèi)部只讀ROM中固化了引導(dǎo)加載程序(Bootloader),該程序在系統(tǒng)上電或復(fù)位后可以將用戶代碼自動(dòng)搬移到片內(nèi)RAM運(yùn)行。
1.2 自舉加載模式選擇
    TMS320VC5509A每次上電復(fù)位后,在執(zhí)行完一系列初始化(配置堆棧寄存器、關(guān)閉中斷、程序臨時(shí)入口、符號(hào)擴(kuò)展、兼容性配置)工作后,根據(jù)預(yù)先配置的自舉模式,通過(guò)固化在ROM內(nèi)的Bootloader程序進(jìn)行程序引導(dǎo)。引導(dǎo)模式選擇是根據(jù)4個(gè)引腳BOOTM[0:3]配置完成的。BOOTM 0~3引腳分別與GPIO 1、2、3、0相連。BOOTM[0:3]在實(shí)際的電路連接是將芯片引腳通過(guò)上拉或下拉電阻接地或接電源來(lái)實(shí)現(xiàn)。系統(tǒng)中采用Flash存儲(chǔ)器完成串行引導(dǎo),只需將BOOTM[3:0]設(shè)置成0100即可。
1.3 TMS320VC5509A引導(dǎo)表
    Bootloader允許應(yīng)用代碼存放在慢速非易失性的外部存儲(chǔ)器中,再將代碼搬移到高速的片內(nèi)存儲(chǔ)器中執(zhí)行。應(yīng)用代碼以一種Bootloader能夠理解的特殊格式編碼,這種格式就是自舉加載表。Bootloader在引導(dǎo)程序時(shí),程序代碼是以自舉加載表形式加載。自舉加載表包含了將要搬移的代碼段、程序段,以及這些段將要被搬移到的地址、加載完成后程序要執(zhí)行的地址f即程序入口地址和其他配置信息。TMS320VC55x系列DSP的自舉加載表結(jié)構(gòu)如表1所示。


    其中,程序入口地址是自舉加載表加載結(jié)束后,用戶程序開始執(zhí)行的地址;待配置寄存器數(shù)目決定了后面有多少個(gè)寄存器需要配置;只有當(dāng)延時(shí)標(biāo)志為OxFFFF時(shí),延時(shí)才被執(zhí)行;延時(shí)長(zhǎng)度決定了在寄存器配置后,延時(shí)多少個(gè)CPU周期才進(jìn)行下一個(gè)動(dòng)作:段長(zhǎng)度、段起始地址和數(shù)據(jù)則為用戶程序中定義的各個(gè)段的內(nèi)容,并且可以重復(fù)添加;最后以32個(gè)0作為引導(dǎo)表的結(jié)束標(biāo)志。若需要生成引導(dǎo)表,可用CCS最終編譯生成的.out文件,通過(guò)CCS自帶的hex55.exe轉(zhuǎn)換程序得到。
[!--empirenews.page--]
2 自舉和加解密實(shí)現(xiàn)
2.1 硬件設(shè)計(jì)
    SST25LF080A是SST公司生產(chǎn)的SPI串口8 MbitFlash,支持SPI的Mode0和Mode1方式,其可靠性高,最大時(shí)鐘頻率為33 MHz,供電電壓為3.3 V,可重復(fù)寫10萬(wàn)次以上。采用8腳SOIC封裝形式,與TMS320VC5509A的硬件連接如圖1所示。


2.2 二次引導(dǎo)技術(shù)
    DSP本身所帶的Bootloader不能實(shí)現(xiàn)加密功能,因此對(duì)于Flash里的程序無(wú)法起到保護(hù)作用。所以在Bootloader的基礎(chǔ)上,還需要進(jìn)行二次引導(dǎo),即通過(guò)DSP內(nèi)部ROM同化Bootloader,首先引導(dǎo)另一個(gè)引導(dǎo)程序,該程序是由用戶自行編寫,功能與ROM固化的Bootloader類似,但增加了對(duì)程序代碼加解密和校驗(yàn)等功能,并在加載結(jié)束后,把PC值置于實(shí)際程序的入口地址,使程序轉(zhuǎn)至實(shí)際程序。
2.3 程序加密與解密
    對(duì)程序的初始保護(hù),即把最終運(yùn)行的程序代碼寫入Flash芯片之前,對(duì)代碼進(jìn)行加密處理。過(guò)程如下,DSP的一次引導(dǎo)過(guò)程只加載儲(chǔ)存在SST25LF080A中的加解密程序,需要向Flash寫入時(shí),讀取DSP自身的ID號(hào)作為密鑰,通過(guò)一定的加密算法將二次引導(dǎo)的程序進(jìn)行加密處理后再寫入,這樣,SST25LF080A中就不存在明文形式的代碼。
    DSP的一次引導(dǎo)過(guò)程只加載儲(chǔ)存在SST25LF080A中的加解密程序,二次引導(dǎo)則加載SST25LF080A中已經(jīng)加密的代碼,然后讀取DSP自身的ID號(hào)作為密鑰進(jìn)行解密,加載結(jié)束和完成解密后再繼續(xù)運(yùn)行。
    為防止破譯者直接修改讀取ID部分的引導(dǎo)代碼,改為使用固定ID,還必須基于數(shù)據(jù)驅(qū)動(dòng)進(jìn)行連續(xù)二次保護(hù)。它的處理對(duì)象是一些重要參數(shù)或變量,通過(guò)讀取引導(dǎo)程序的校驗(yàn)值和DSP本身ID,完成對(duì)這些參數(shù)或變量“加鎖”,讓它們以密文形式存在于程序中。這樣即使完成了對(duì)引導(dǎo)程序的簡(jiǎn)單破譯,也無(wú)法使程序正常運(yùn)行。


    經(jīng)過(guò)處理,可以有效地避免通過(guò)讀取Flash內(nèi)容直接破譯,或者直接讀取Flash內(nèi)容后在不同產(chǎn)品中反復(fù)利用的做法,對(duì)保護(hù)知識(shí)產(chǎn)權(quán)有著重要的意義。對(duì)于DSP代碼加密,可以根據(jù)需要的加密復(fù)雜程度進(jìn)行算法選擇,實(shí)現(xiàn)框圖如圖2所示。

3 結(jié)束語(yǔ)
    針對(duì)TMS320VC5509A和SST25LF080A,使用串行方式實(shí)現(xiàn)程序自舉引導(dǎo)的二次引導(dǎo)加載,提出基于該方式的程序加密方法。該方法不僅可用于TMS320VC5509ADSP中,其他類似高速微處理器系統(tǒng)的引導(dǎo)加載方案中也可得到應(yīng)用,實(shí)現(xiàn)了靈活的程序加載。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉