基于閃存的微控制器在代碼發(fā)布中的代碼保護簡(jiǎn)介
本文引用地址:http://dyxdggzs.com/article/185822.htm
裝載程序使用數據包,數據包有數據頭和校驗和以驗證傳輸。如果數據包傳輸到了控制器并且校驗和是正確的,則裝載程序把它交給解碼引擎(如果它是加密的)。在加密數據的內部有另外一個(gè)密碼校驗和,這給解密引擎一個(gè)驗證密碼信息的手段。它將首先應用通用碼并測試校驗和,如果失敗,則利用來(lái)自串行數字的唯一密碼重試。如果再次失敗,則告訴裝載程序固件對這個(gè)設備無(wú)效。這也可防止代碼被未經(jīng)授權的篡改和意外損壞。
如果解密引擎成功地解碼數據, 它將把數據交給在閃存中對實(shí)際閃存塊進(jìn)行編程的程序例程。當然,對于不同產(chǎn)家,這個(gè)程序是不同的,在后面的設計實(shí)例中將給出COP8的程序。這個(gè)程序保留了一個(gè)128字節的RAM用于更新閃存。當然,這塊RAM在裝載程序完成后可以存放應用程序的數據。
設計實(shí)例
圖3是一個(gè)具備解密功能的固件裝載程序的流程圖。裝載程序使用在編程器和系統模擬程序中廣泛使用的修改版Intel HEX數據格式。這將使應用程序現有架構支持標準并易于使用。裝載固件程序用COP8匯編語(yǔ)言編寫(xiě),以簡(jiǎn)少代碼,并利用器件全部的閃存特性。
簡(jiǎn)單來(lái)說(shuō),Intel HEX格式是一種用ASCII編碼表示的數據記錄格式,用于向設備的存儲器編程對象代碼或數據。該格式由下列字段組成:使用ASCII字
評論