<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 離線加密編程器中的BootLoader程序設(shè)計(jì)

          離線加密編程器中的BootLoader程序設(shè)計(jì)

          作者: 時(shí)間:2011-01-19 來(lái)源:網(wǎng)絡(luò) 收藏


          2.3 文件類型

          整個(gè)工作過(guò)程涉及以下幾種文件:

          ①加密下載文件:該文件是HEX文件經(jīng)過(guò)加密后得到的文件,其中包含密鑰信息和編程數(shù)據(jù)。
          ②注冊(cè)申請(qǐng)文件:該文件包含申請(qǐng)注冊(cè)所需編程器的內(nèi)部信息及客戶信息。
          ③注冊(cè)文件:該文件是在注冊(cè)申請(qǐng)文件的基礎(chǔ)上,IP擁有方添加注冊(cè)信息,包括各種參數(shù)。
          ④授權(quán)申請(qǐng)文件:該文件用來(lái)向IP擁有方購(gòu)買授權(quán)下載次數(shù),內(nèi)容包括編程器信息、客戶信息,以及交易達(dá)成的各種協(xié)議。
          ⑤授權(quán)文件:該文件在授權(quán)申請(qǐng)文件的基礎(chǔ)上添加授權(quán)次數(shù)及說(shuō)明。
          注:其中注冊(cè)申請(qǐng)文件、授權(quán)申請(qǐng)文件是通過(guò)客戶端軟件從編程器中提取的;注冊(cè)文件、授權(quán)文件通過(guò)客戶端軟件下載到編程器。

          3 編程器工作流程

          編程器的工作流程如圖2所示。下載到編程器的加密數(shù)據(jù)需要存入具有SPI接口的大容量外存AT45DB041B 中,然而Atmegal69P(V)的SPI接口需要用來(lái)對(duì)目標(biāo)板進(jìn)行編程,所以只能采用軟件模擬SPI接口來(lái)對(duì)AT45DB041B進(jìn)行讀寫操作。對(duì)目標(biāo)板進(jìn)行編程時(shí),為了防止通過(guò)抓取SPI接口的時(shí)序來(lái)得到有效的編程數(shù)據(jù),首先編程目標(biāo)板的引導(dǎo)程序,然后對(duì)目標(biāo)板下載加密數(shù)據(jù),通過(guò)引導(dǎo)程序?qū)?shù)據(jù)進(jìn)行解密后再進(jìn)行目標(biāo)板的編程操作。這樣做的好處是,通過(guò)數(shù)據(jù)加密,使得SPI總線上傳輸?shù)臄?shù)據(jù)均為加密信息,即使得到SPI總線上的時(shí)序,也不能使用。目標(biāo)板的BootLoader程序?qū)⒔邮盏降募用軘?shù)據(jù)進(jìn)行解密,然后將數(shù)據(jù)存儲(chǔ)。這些操作都在單片機(jī)內(nèi)部進(jìn)行,不會(huì)被破解。

          3.1 主程序

          主程序要完成系統(tǒng)的初始化、中斷設(shè)置、全局變量設(shè)置等。在初始化結(jié)束后,系統(tǒng)進(jìn)入主查詢循環(huán)過(guò)程以判斷當(dāng)前進(jìn)行的操作,并進(jìn)入相應(yīng)的功能模塊。系統(tǒng)主程序流程如圖3所示。

          3.gif

          本文引用地址:http://www.ex-cimer.com/article/151069.htm



          3.2 編程器與目標(biāo)板的通信

          編程器通過(guò)SPI總線與目標(biāo)板建立連接。當(dāng)進(jìn)行目標(biāo)板的編程時(shí),首先編程目標(biāo)板的 BootLoader區(qū)引導(dǎo)程序。引導(dǎo)區(qū)程序編程完畢后,編程器與目標(biāo)板進(jìn)行通信,將加密數(shù)據(jù)傳送給目標(biāo)板。目標(biāo)板的BootLoader程序接收到加密數(shù)據(jù)后進(jìn)行CRC校驗(yàn)。如果校驗(yàn)失敗,Boot—Loader要求編程器重新發(fā)送數(shù)據(jù);如果校驗(yàn)通過(guò),對(duì)加密數(shù)據(jù)進(jìn)行解密,然后寫入Flash。編程器與目標(biāo)板通信流程如圖4所示。

          4.gif



          4 BootLoader編程設(shè)計(jì)

          4.1 BootLoader。介紹

          BootLoader區(qū)位于單片機(jī)內(nèi)部Flash的最高地址,BootLoader存儲(chǔ)器空間的大小可以通過(guò)熔絲位進(jìn)行配置。BootLoader為通過(guò) MCU本身來(lái)下載和上載程序代碼提供了一個(gè)真正的同時(shí)讀一寫自編程機(jī)制(Read—While—Write,RWW)。這一特點(diǎn)使得系統(tǒng)可以在MCU的控制下,通過(guò)駐留于程序Flash的BootLoader,靈活地進(jìn)行應(yīng)用軟件升級(jí)。BootLoader可以使用任何器件具有的數(shù)據(jù)接口和相關(guān)的協(xié)議獲得代碼并把代碼(程序)寫入閃存,或者是從程序存儲(chǔ)器讀取代碼。BootLoader區(qū)的程序可以操作整個(gè)閃存,包括BootLoader區(qū),因而 BootLoader可以對(duì)其自身進(jìn)行修改,甚至將自己擦除。如果系統(tǒng)已經(jīng)不再需要BootLoader,則可以通過(guò)指令控制BootLoader程序,將BootLoader區(qū)擦除。



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();