<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和Keil MDK的遠程升級設計

基于IAP和Keil MDK的遠程升級設計

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

  CC 是效驗和域,表示記錄的效驗和,計算方法是將本條記錄冒號開(kāi)始的所有字母(包括校驗字節)相加之后等于0x00。

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

  一個(gè)Intel HEX文件必須有一個(gè)文件結束記錄,這個(gè)記錄的類(lèi)型域必須是01,

  一個(gè)EOF記錄總是這樣:

  :00000001FF

  00是記錄中數據字節的數目

  0000這個(gè)地址對于EOF記錄來(lái)說(shuō)無(wú)任何意義

  01記錄類(lèi)型是01(文件結束記錄標示)

  4.2 對上位機軟件的要求

  ? 上位機具備解析重組Intel HEX文件的能力.

  ? 上位機軟件應能識別分站發(fā)來(lái)的應答信號并做出正確的響應。

  ? 上位機應能夠檢驗代碼的完整性。

  ? 上位機能根據分站發(fā)出的程序所在高區或低區標志,自動(dòng)判別當前升級程序是否和升級區域相對應。

  5 實(shí)驗數據

  為驗證升級程序的穩定性,對分站進(jìn)行重上電、復位、遠程升級等一些列實(shí)驗,實(shí)驗記錄及如下。

  1. 測試程序跳轉功能.程序在上電或復位之后,應順利跳轉到用戶(hù)程序。

    

image

 

  2. 測試Bootloader(一)。上位機發(fā)送升級命令但不發(fā)送升級數據包,程序應能進(jìn)入Bootloader并發(fā)送當前程序所在的區域(高區或者低區代號),10S后程序應跳轉到用戶(hù)程序。

    

image

 

  3.測試Bootloader(二)。上位機發(fā)送升級命令,發(fā)送升級數據包,但發(fā)送到一半時(shí)停止發(fā)送。程序在10S后應能跳轉到用戶(hù)程序區。

    

image

 

  4.測試Bootloader(三)。上位機發(fā)送升級命令,發(fā)送升級數據包,但發(fā)送中途給分站斷電,重新上電后,應還能執行原來(lái)的程序。

    

image

 

  5.測試Bootloader(四)。上位機發(fā)送升級命令,發(fā)送完成升級數據包。程序應能接收升級數據包并編程Flash,完成用戶(hù)程序的更新,更新用戶(hù)程序后,跳轉到新的用戶(hù)程序。

    

image

 

  6.總結

  本次升級方案雖然是以L(fǎng)PC2114為基礎的,但任何具有功能的單片機、ARM都可使用本設計方案。

  設計的重點(diǎn)在于如何保證升級的安全性,分站采取了一些列校驗、超時(shí)處理以及看門(mén)狗等措施,一是保障升級數據包的正確傳送,二是即使升級失敗也能退回原升級程序。上位機的校驗措施需相關(guān)部門(mén)配合。從實(shí)驗數據來(lái)看,進(jìn)行了幾十次的遠程升級,未有一例失敗,安全性能可以得到保證。

  7.參考文獻:

  1. 周立功等 ARM微控制器基礎與實(shí)戰(第二版) 北京航空航天大學(xué)出版社 2005

  2. LPC2114/2124/2212/2214 使用指南.Pdf 廣州周立功單片機發(fā)展有限公司

  3. 韋文祥 朱志杰 車(chē)琳娜 郭寶泉 基于LPC21 24的一個(gè)遠程系統軟件升級方案 單片機與嵌入式系統應用 2006第三期

  4. 許文杰 丁志岡 張 泉基于A(yíng)RM 處理器的設計及應用 計算機應用與軟件 2009第3期

  5. 姜曉梅 李祥和 任朝榮 姚明基于A(yíng)RM的在線(xiàn)及遠程升級技術(shù) 計算機應用 2008第二期

  6. RealView 編譯工具-編譯器參考指南.pdf ARM Limited 2009.3

  7. RealView Compilation Tools(連接器用戶(hù)指南).pdf ARM Limited 2009.3

  8. RealView 編譯工具-編譯器用戶(hù)指南.pdf ARM Limited 2009.1

  9. RealView 編譯工具-鏈接器參考指南.pdf ARM Limited 2008.9

  10. Intel HEX文件格式

  11. LPC2000 secondary bootloader for code update using IAP NXP Semiconductors 2009.5.26

  后記:分散加載文件,軟中斷,中斷向量表重映射,變量對齊,精確定位變量等等這些東西的詳細講解在我的參考資料上都能找的到,發(fā)現問(wèn)題并能解決它,是件很美妙的事情,所以我沒(méi)打算也沒(méi)時(shí)間詳細寫(xiě)這些東西的用法。

  需要說(shuō)的是,我在設計的時(shí)候走了一個(gè)彎路,現在想想還覺(jué)得挺可笑。我以為上面講的東西要在一個(gè)工程里面實(shí)現才好,這樣才能生成一個(gè).hex可燒錄文件,可以一次性的將用戶(hù)程序、Bootloader程序燒寫(xiě)進(jìn)處理器,我想彎了。正確的做法是建四個(gè)工程:跳轉程序、Bootloader、用戶(hù)低區程序、用戶(hù)高區程序。如果你懂了.hex文件的格式,就完全可以將跳轉程序、Bootloader和用戶(hù)低區程序(或者跳轉程序、Bootloader和用戶(hù)高區程序)這三個(gè)工程生成的.hex文件合成一個(gè)。靈活多變的處理問(wèn)題,這是我最大的收獲。

  后記的后記: 很多同學(xué)看完后都希望得到源碼,這種心情我是理解的,最初的時(shí)候我也希望有一套別人的源碼的,畢竟這樣可以進(jìn)行的快點(diǎn).所以我將一個(gè)遠程升級的例子放在下面的鏈接里,大家想看看的就去下載吧,這個(gè)不是我產(chǎn)品中用到的,因為我的代碼畢竟是含有公司的一些信息.如果我最近有時(shí)間,會(huì )把其中的英文文檔翻譯一下的。


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

關(guān)鍵詞: IAP Keil

評論


相關(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>