音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

基于閃存的微控制器在代碼發(fā)布中的代碼保護(二)

出處:Richard F. Zarr 發(fā)布于:2007-09-24 09:41:03

  裝載程序使用數(shù)據(jù)包,數(shù)據(jù)包有數(shù)據(jù)頭和校驗和以驗證傳輸。如果數(shù)據(jù)包傳輸?shù)搅丝刂破鞑⑶倚r灪褪钦_的,則裝載程序把它交給解碼引擎(如果它是加密的)。在加密數(shù)據(jù)的內(nèi)部有另外一個密碼校驗和,這給解密引擎一個驗證密碼信息的手段。它將首先應(yīng)用通用碼并測試校驗和,如果失敗,則利用來自串行數(shù)字的密碼重試。如果再次失敗,則告訴裝載程序固件對這個設(shè)備無效。這也可防止代碼被未經(jīng)授權(quán)的篡改和意外損壞。

  如果解密引擎成功地解碼數(shù)據(jù), 它將把數(shù)據(jù)交給在閃存中對實際閃存塊進行編程的程序例程。當然,對于不同產(chǎn)家,這個程序是不同的,在后面的設(shè)計實例中將給出COP8的程序。這個程序保留了一個128字節(jié)的RAM用于更新閃存。當然,這塊RAM在裝載程序完成后可以存放應(yīng)用程序的數(shù)據(jù)。

設(shè)計實例

  圖3是一個具備解密功能的固件裝載程序的流程圖。裝載程序使用在編程器和系統(tǒng)模擬程序中廣泛使用的修改版Intel HEX數(shù)據(jù)格式。這將使應(yīng)用程序現(xiàn)有架構(gòu)支持標準并易于使用。裝載固件程序用COP8匯編語言編寫,以簡少代碼,并利用器件全部的閃存特性。

  簡單來說,Intel HEX格式是一種用ASCII編碼表示的數(shù)據(jù)記錄格式,用于向設(shè)備的存儲器編程對象代碼或數(shù)據(jù)。該格式由下列字段組成:使用ASCII字符0x3A或者即“:”記錄起始字段、長度范圍為0x00-0xFF的數(shù)據(jù)長度字段(兩個ASCII字符)、偏移字段、記錄類型字段、信息或數(shù)據(jù)字段以及校驗和字段。每個字段都由標準的可打印ASCII字符表示。例如,“10”代表十六進制0x10或者十進制16,可表示長度字段。實際上它的編碼是0x31、0x30,這是“0” 和“1” 的ASCII碼。因為內(nèi)容是可打印的ASCII字符,能被文本編輯器查看,所以需要加密。

  表里包括了標準的Intel HEX格式記錄類型。注意該標準只定義了6種記錄類型。為利用現(xiàn)有的結(jié)構(gòu),裝載程序采用Intel HEX 格式,并指定加密數(shù)據(jù)為一種新的記錄類型。記錄類型0x10將被用于代表加密數(shù)據(jù),這是不能變的。

  代碼裝載程序也需要一個流程控制方法,以保證在下一個記錄裝載之前,寫閃存的周期已經(jīng)完成。在大多數(shù)的情況下,應(yīng)用程序會產(chǎn)生可分成16個字節(jié)一組的文件,以方使閱讀。通常閃存是以128或256字節(jié)進行分塊,因此必須有一個裝載程序的命令要求從主機來的數(shù)據(jù)允許可變記錄大小。裝載程序必須能處理256字節(jié)的數(shù)據(jù),因為按照標準,這是的記錄大小。表的底部顯示了本例中新擴展的記錄類型。因為COP8系列器件只有16位地址,無法執(zhí)行記錄類型0x02到0x05。對于具備更大閃存的處理器,例如CR16,它能直接訪問16M字節(jié)的內(nèi)存,就需要有擴展線性地址的記錄類型。

  觀察圖3中的流程圖,重新設(shè)置后的個任務(wù)是檢驗閃存的內(nèi)容。這是通過讀取各個128字節(jié)的頁面(除了位于閃存頂部的自舉驗證代碼和裝載程序代碼)來完成的。只驗證應(yīng)用程序的代碼這使計算校驗和非常容易。但如果需要,它也可以包括檢測裝載程序部件。當通過校驗和檢查,控制就被向量轉(zhuǎn)移到應(yīng)用程序固件的入口。入口保持不變非常重要。如果它發(fā)生了移動,裝載程序會把向量轉(zhuǎn)到一個不正確的入口,并可能出現(xiàn)崩潰。另外,裝載程序可以從代碼中讀出進入向量,把向量壓入堆棧并返回,以迫使從那個地址開始執(zhí)行。這個方案允許入口點可變。

  如果校檢和失敗,裝載程序?qū)⒈3挚刂撇⒉粩嗟赝鳈C發(fā)送信號,用硬件設(shè)計實現(xiàn)的任何手段開始裝載。裝載程序也可以控制用戶接口通知這種狀態(tài)。在調(diào)試系統(tǒng)時,一個表示“固件裝載” 的簡單的LED燈非常有用。

  裝載程序?qū)⒊掷m(xù)地向主機請求記錄,直到主機通過EOF記錄表明沒有記錄了。檢測到的0x10類型記錄 將被送到解碼引擎,并適當解碼數(shù)據(jù)。這使得實際向閃存寫數(shù)據(jù)的代碼,既可以操作加密數(shù)據(jù),也可操作對未加密數(shù)據(jù)。對開發(fā)和內(nèi)部測試來說,未加密的數(shù)據(jù)通路很有價值。當收到EOF記錄后,所有新固件數(shù)據(jù)都被寫入閃存。然后,裝載程序把控制交還給自舉測試,以驗證新代碼未被破壞。

  如上所述,現(xiàn)場可更新設(shè)備可以在不曝露IP的情況下得到實現(xiàn)。使用一個簡單的密碼, 制造商的固件就能得到保護,客戶可以在世界各地能夠訪問因特網(wǎng)的地方更新他們的設(shè)備。


  

參考文獻:

[1]. CR16 datasheet http://m.58mhw.cn/datasheet/CR16_231573.html.


關(guān)鍵詞:基于閃存的微控制器在代碼發(fā)布中的代碼保護(二)INTEL

版權(quán)與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

集成電路5AGXMB1G4F35C5G INTEL電子元器件
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!