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