<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

  摘要:本文介紹了一種基于的智能儀表在應用編程升級固件程序的方案。該方案已成功應用于光通訊和其他產(chǎn)品中,使產(chǎn)品的固件程序升級變得簡(jiǎn)單方便,且實(shí)踐驗證具有高可靠性。

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

  關(guān)鍵詞:;;在應用編程;遠程升級

  引言

  目前,智能儀表等產(chǎn)品的設計主要以微控制器為控制核心,但是其設計往往不可能一步到位,尤其是固件程序部分,需要根據產(chǎn)品使用反饋不斷地進(jìn)行修改和完善。當程序需要根據用戶(hù)需求變更時(shí),傳統情況下需要將產(chǎn)品拆卸下來(lái)返回原廠(chǎng)修改程序,或請專(zhuān)業(yè)的維修服務(wù)人員親自到設備現場(chǎng),將設備取下或者打開(kāi)設備,通過(guò)JTAG方式連接PC等來(lái)重新燒寫(xiě)程序。在應用編程(In Application Programming,)技術(shù)可實(shí)現對產(chǎn)品的在應用升級。

  系列微處理器由ADI公司生產(chǎn),集成了ARM7TDMI 16位/32位RISC(精簡(jiǎn)指令集計算機)內核,具有8kB的SRAM、62kB的Flash/EE存儲器,可通過(guò)UART或JTAG端口在線(xiàn)編程,最高處理能力達44MIPS。當工作頻率為41.78 MHz時(shí),典型的功耗為120mW。

  ADuC702x在線(xiàn)升級方案

  ADuC702x系列微處理器物理存儲結構地址如圖1所示,其程序通常放置在62kB的Flash/EE存儲器內,該Flash/EE可通過(guò)該系列微處理器內部Flash Control Interface進(jìn)行讀寫(xiě)訪(fǎng)問(wèn)操作,通過(guò)該操作實(shí)現IAP固件程序升級功能。后續IAP方案研究和程序設計均針對該Flash/EE實(shí)施。

  使用IAP對ADuC702x升級,首先需要了解ADuC702x的Flash/EE基本存儲結構和對程序存放的Flash/EE進(jìn)行合理分區規劃。Flash/EE基本存儲結構如圖2所示,從圖中可以看出,Flash/EE地址從0x00080000到0x0008FFFF,總大小為64kB,其Flash(閃存)的位寬為16位,因而Flash大小即為32k×16b。Flash中512B(即256×16b)為一塊,為最小Flash讀寫(xiě)操作單元。64kB Flash中有2kB(1k×16b)用于該系列微處理器出廠(chǎng)固化啟動(dòng)引導程序,即為On-Chip kernel(片上內核),該段程序空間不能為用戶(hù)所使用。另外一部分62kB(31×16b)為用戶(hù)可使用程序段,該段程序用于存放用戶(hù)代碼,在IAP方案設計中IAP操作指代對此62kB的Flash/EE操作。

  通過(guò)對62kB此段用戶(hù)可使用的Flash/EE做一定的分區規劃和操作,實(shí)現IAP固件程序升級。對62kB此段Flash/EE規劃如圖3所示。從圖3中可知,IAP使用將用戶(hù)可使用的Flash/EE劃分為了三個(gè)區:Bootloader區,User Application區以及Flag標志區。三個(gè)Flash區功能描述如下。

  1. Bootloader區:用來(lái)存放用戶(hù)編寫(xiě)的Bootloader代碼,該代碼類(lèi)似于PC機的BIOS(基本輸入輸出系統),一旦固化成功,該段程序將不再更改,除非Bootloader代碼出現BUG(錯誤),該段程序只能用ISP(在系統編程)方式通過(guò)串口通訊或者JTAG方式寫(xiě)入ADuC702x內部。

  2. User Application(用戶(hù)應用)區:該區用來(lái)存放用戶(hù)應用程序代碼,用戶(hù)代碼的固化需要有配套的PC機程序通過(guò)串口來(lái)完成,該PC機程序需要根據指定的協(xié)議和流程編寫(xiě),該協(xié)議和流程將在下文中給出。

  3. Flag標志區:用來(lái)存放各個(gè)標志,用戶(hù)代碼程序是否有效標志,是否進(jìn)入Bootloader標志(該標志用來(lái)IAP更新應用程序)。Flag定義如圖4所示。

  程序啟動(dòng)流程如圖5所示。

  下文對Bootloader程序、User程序設計以及Flag進(jìn)行詳細的闡述。

  BootLoader程序設計及固化

  一、BootLoader程序設計

  本設計在Keil for ARM集成環(huán)境下使用。首先在Keil軟件下新建一個(gè)工程,并選擇芯片型號為ADuC702x,且不拷貝startup文件。然后分別添加對應源文件,在Keil環(huán)境中配置BootLoader程序起始地址為0x00080000,大小0x5000;SM起始地址為0x00010040,大小為0x1FC0。

  二、Bootloader程序固化

  Bootloader固化有兩種方式:UART0和JTAG。UART0固化程序參照ADI公司ARMWSD.exe;JTAG下載可以使用ULINK系列仿真器。


上一頁(yè) 1 2 3 4 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>