在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于IAP技術(shù)的ADuC702x固件升級方案

            基于IAP技術(shù)的ADuC702x固件升級方案

            作者: 時間:2011-05-22 來源:電子產(chǎn)品世界 收藏

              更新固件應用程序流程

            本文引用地址:http://www.biyoush.com/article/119691.htm

              更新固件應用程序均指在程序運行于Bootloader區(qū)完成。若第一次只有Bootloader程序,而沒有用戶程序時,程序自動停留在Bootloader區(qū)。若程序正運行于用戶區(qū)情況時,要求通過串口發(fā)送某條命令給MCU(微控制器),MCU收到指令后,更新Flash/EE存儲器中進入Bootloader標志部分數(shù)據(jù),使之有效,然后通過軟件復位(通常稱之為“熱啟動”)使程序從0x00000000位置啟動,按上一節(jié)“程序啟動過程描述”,則此時啟動后,程序必定留在Bootloader區(qū)。

              在Bootloader區(qū)時,可以通過發(fā)送“”(“IAP”命令字符由Bootloader代碼決定)命令來更新程序,當MCU接收到“IAP”命令后,修改用戶程序是否有效標志值為無效,返回“OK”字符,然后程序以查詢方式接收一個數(shù)據(jù)包(標志該數(shù)據(jù)包為數(shù)據(jù)包0),該數(shù)據(jù)為接下來將接收到的程序數(shù)據(jù)包長度信息,并同時包含校驗信息,數(shù)據(jù)包0結(jié)構(gòu)如圖6所示,如果正確接收數(shù)據(jù),返回兩個字節(jié)(0xED,0xFA);否則返回(0x12,0x34),并結(jié)束IAP命令,回到Bootloader命令狀態(tài)。

              接下來根據(jù)固件程序數(shù)據(jù)包長度依次接收各個數(shù)據(jù)包(標識這些數(shù)據(jù)包為數(shù)據(jù)包1、數(shù)據(jù)包2,??,數(shù)據(jù)包n,其中n等于上一個數(shù)據(jù)包接收到的固件程序數(shù)據(jù)包長度(length)),這里每個數(shù)據(jù)包結(jié)構(gòu)均一樣,結(jié)構(gòu)如圖7所示,數(shù)據(jù)包由兩部分組成,256B的固件程序數(shù)據(jù)和兩個字節(jié)的CRC16校驗碼,一個數(shù)據(jù)包總長度為258B,在對固件程序打包時,若包數(shù)據(jù)不滿256B,那么在包后面添加0xFF,直至256B。

              程序中每接收數(shù)據(jù)包1~數(shù)據(jù)包n中任何一個數(shù)據(jù)包時,若接收正確,則返回(0xED,0xFA),同時將數(shù)據(jù)寫入對應Flash存儲單元;否則返回(0x12,0x34),并結(jié)束IAP命令,回到Bootloader區(qū)等待IAP命令狀態(tài)。若所有數(shù)據(jù)包接收正確,而且寫入Flash正確,則修改用戶程序有效標志,并返回(0xED,0xFA),否則返回(0x12,0x34),并結(jié)束IAP命令,回到Bootloader區(qū)等待IAP命令狀態(tài)。

              待所有數(shù)據(jù)包接收完畢,并寫Flash結(jié)束后,再給MCU發(fā)送“REBOOT”熱啟動命令即可完成固件重新運行。

              IAP更新固件應用程序流程如圖8所示。

              下面描述如何更新User Application固件應用程序。以下所有提到的發(fā)送和返回的命令及數(shù)據(jù)均指十六進制格式,除非特殊說明。

             ?、盡CU正常工作,使用如下命令使MCU回到了Bootloader區(qū)

              發(fā)送:(自定義命令)

              返回:(自定義返回)

             ?、舶l(fā)送:0x49 0x41 0x50 0x0D

              返回:0x49 0x41 0x50 0x0D 0x0A 0x4F 0x4B 0x0D 0x0A 0x5C 0x3E

              圖9 固件程序數(shù)據(jù)包

             ?、嘲l(fā)送數(shù)據(jù)包0,數(shù)據(jù)包0結(jié)構(gòu)如圖6所示。

              返回(兩個字節(jié)):

              (1)0xED 0xFA(正確接收),跳到步驟4;

              (2)0x12 0x34,錯誤,跳到步驟2。

              ⒋根據(jù)數(shù)據(jù)包0中所包含的固件應用程序數(shù)據(jù)包長度信息,發(fā)送固件應用程序數(shù)據(jù)包1~n,固件應用程序按圖9方式打包,若包不滿256B,則在后面依次填充0xFF。



            關(guān)鍵詞: IAP ADuC702x 201105

            評論


            相關(guān)推薦

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

            關(guān)閉