久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> HDSC/華大 >> 華大單片機(jī)bootloader:華大MCU如何遠(yuǎn)程升級IAP?

華大單片機(jī)bootloader:華大MCU如何遠(yuǎn)程升級IAP?

關(guān)鍵字:華大單片機(jī) 串口升級 作者: 來源: 發(fā)布時(shí)間:2020-06-10  瀏覽:871

工程師在做產(chǎn)品的時(shí)候有時(shí)候會(huì)有遠(yuǎn)程對產(chǎn)品進(jìn)行升級的需求。 對于沒有開發(fā)過此功能的工程師會(huì)不知道從何下手,本文就以HC32L110為例介紹國產(chǎn)超低功耗華大單片機(jī)如何用IAP功能實(shí)現(xiàn)為單片機(jī)遠(yuǎn)程升級。文章的結(jié)尾有相關(guān)例程下載鏈接。

功能介紹

IAP是In Application Programming的首字母縮寫,IAP是用戶自己的程序在運(yùn)行過程中對User Flash的部分區(qū)域進(jìn)行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過預(yù)留的通信口對產(chǎn)品中的固件程序進(jìn)行更新升級。

IAP原理介紹

通常實(shí)現(xiàn)IAP功能時(shí),需要在設(shè)計(jì)固件程序時(shí)編寫兩個(gè)項(xiàng)目代碼,第一個(gè)項(xiàng)目程序即BOOT程序不執(zhí)行正常的功能操作,而只是通過某種通信方式(如USB、USART)接收程序或數(shù)據(jù),執(zhí)行對第二部分代碼的更新;第二個(gè)項(xiàng)目程序即APP程序用戶真正的功能代碼。這兩部分項(xiàng)目代碼同時(shí)燒錄在Flash中,當(dāng)芯片上電后,首先是第一個(gè)項(xiàng)目程序BOOT開始運(yùn)行,它主要實(shí)現(xiàn)如下功能:

檢查是否需要對第二部APP程序代碼進(jìn)行更新,如果不需要更新則轉(zhuǎn)到4)執(zhí)行更新操作

跳轉(zhuǎn)到第二部分代碼執(zhí)行

第一部分BOOT代碼可以通過SWD或者離線編程器下載到芯片F(xiàn)lash內(nèi)部,第二部分APP和第一部分BOOT一起燒入芯片內(nèi)部,以后需要程序更新再通過第一把BOOT代碼更新。

根據(jù)芯片系列的Flash存放不同地址范圍,從最低地址區(qū)域開始存放BOOT,緊跟其后的就是APP程序,本篇筆記受限于芯片內(nèi)部Flash容量,只是存放一個(gè)APP程序。即在芯片內(nèi)部有兩個(gè)程序即BOOT和APP程序。

IAP功能具體實(shí)現(xiàn)

芯片程序一般從Flash地址0x0000_0000開始執(zhí)行,基于Cortex-M0+內(nèi)核特性,內(nèi)部通過中斷向量表來響應(yīng)中斷,程序從中斷向量表取出復(fù)位中斷向量執(zhí)行中斷程序,當(dāng)中斷產(chǎn)生,芯片內(nèi)部PC指針定位到中斷向量表來取出對應(yīng)的中斷服務(wù)程序執(zhí)行。如果沒有中斷產(chǎn)生,在芯片執(zhí)行完復(fù)位中斷服務(wù)程序后,跳轉(zhuǎn)到main函數(shù)順序執(zhí)行死循環(huán)。如果有中斷產(chǎn)生,通過中斷向量表執(zhí)行對應(yīng)的中斷服務(wù)程序。

當(dāng)加入IAP后,芯片還是從中斷向量表取出復(fù)位中斷向量執(zhí)行中斷程序,如果沒有中斷產(chǎn)生,在芯片執(zhí)行完復(fù)位中斷服務(wù)程序后,跳轉(zhuǎn)到main函數(shù)。在執(zhí)行完IAP后,新程序的復(fù)位中斷向量地址為0x0000_0004 + BOOT程序大小,跳轉(zhuǎn)到APP程序的復(fù)位向量表,執(zhí)行APP的復(fù)位中斷服務(wù)程序,隨后跳轉(zhuǎn)到APP程序的main函數(shù)執(zhí)行。

演示Demo程序內(nèi)部分配如下:

其中:BOOT程序大小3.5KB

Para 區(qū)域存放IAP升級期間參數(shù)和標(biāo)志占用0.5KB

APP程序大小為24KB

Demo程序,操作流程如下:  

先將APP工程HEX下載到芯片內(nèi)部

打開BOOT工程HEX下載到芯片,或者可以使用工具將兩個(gè)HEX文件合并在一起下載到芯片內(nèi)部。

使用上位機(jī)演示程序,打開串口波特率固定為9600。按照協(xié)議將APP工程的bin文件下載到0x1000開始的芯片內(nèi)部,其中要求APP的bin文件小于28KB。

參考樣例及驅(qū)動(dòng)

通過上述介紹,使用演示Demo程序IAP需要特定協(xié)議。

通信協(xié)議格式如下:

///*frame:68  A0  A1  C  Page   L0  L1  D0... DN-1   CRC0  CRC1   16*///

///*offset :0    1    2    3      4       5    6    7      8+N     9+N   10+N   11 +N*///

頭字符:    固定字符為0x68 一個(gè)字節(jié)

地址:       A0 A1 兩個(gè)字節(jié)  

控制碼C: 讀地址為0x15    寫地址為0x25

頁地址page: 一個(gè)字節(jié) 代表現(xiàn)在要操作的那個(gè)頁

長度L0 L1:  兩個(gè)字節(jié) L0代表高字節(jié),L1代表低字節(jié),此處長度僅代表數(shù)據(jù)區(qū)域長度

數(shù)據(jù)域D0…DN-1 : 代表讀出或者寫入的數(shù)據(jù)

數(shù)據(jù)校驗(yàn)CRC: 采用CRC-16方式,代表數(shù)據(jù)域數(shù)據(jù)的校驗(yàn)。

結(jié)束符號:固定字符為0x16 一個(gè)字節(jié)

讀指令如下:

68   A0   A1   15   Page   0x00   0x00   CRC0   CRC1 16  

正確回復(fù):68 A0 A1   95   Page   0x04   0x00   D0 ………… D1023   CRC0 CRC1 16

錯(cuò)誤回復(fù)   68 A0  A1  D5   Page   0x00   0x00  CRC0  CRC1 16

Page 選擇(0 -- 27)

每次讀取1K字節(jié)數(shù)據(jù)

寫指令如下:

68   A0   A1   25   Page   04   00   D0 ………… D1023   CRC0   CRC1 16  

正確回復(fù):68 A0   A1   A5   Page   04   00   CRC0 CRC1 16

錯(cuò)誤回復(fù)   68 A0   A1   E5   Page   00   00    CRC0  CRC1 16

Page 選擇(0 -- 27)

每次寫1K字節(jié)數(shù)據(jù)

開始IAP升級指令

68   A0   A1   36   00   00    00    00   00   16

正確回復(fù)  68  A0   A1    B6   00    00  00  00    00   16

錯(cuò)誤回復(fù)  68  A0   A1    F6    00   00  00  00    00   16

結(jié)束IAP升級指令

68   A0   A1   49   00   00   00   00    00   16

正確回復(fù)  68  A0   A1   C9   00     00  00  00    00   16

錯(cuò)誤回復(fù)  68  A0   A1   09   00     00  00  00    00   16

發(fā)送數(shù)據(jù)幀如果發(fā)送結(jié)束到接收小于2s,如果超過說明IAP升級通信錯(cuò)誤。

1)BOOT實(shí)現(xiàn)跳轉(zhuǎn)到APP代碼:

if(((*(__IO uint32_t*)appxaddr)&0x2FFE0000)==0x20000000) //檢查棧頂?shù)刂肥欠窈戏?br />
{
  jump2app=(iapfun)*(__IO uint32_t*)(appxaddr+4);  //APP程序復(fù)位地址
  MSR_MSP(*(__IO uint32_t*)appxaddr);              //初始化APP堆棧指針
  jump2app();                                      //跳轉(zhuǎn)到APP程序
}




2)APP程序中斷向量偏移:

   new_vect_table  EQU     0x00001000         ;中斷向量偏移長度
; reset Vector table address.
   LDR     R0, =0xE000ED08
   LDR     R2, =new_vect_table
   STR     R2, [R0]       ;向量表重定義


總結(jié)

以上章節(jié)簡要介紹了HC32L110系列的IAP控制模塊基本功能,詳細(xì)說明了該模塊的各個(gè)功能及操作步驟,用戶在實(shí)際的應(yīng)用開發(fā)過程中,如果需要更深一步了解該模塊的使用方法及操作事項(xiàng),應(yīng)以HC32L110的用戶手冊為準(zhǔn)。本章中提到的樣例既可以作為用戶進(jìn)一步的實(shí)驗(yàn)與學(xué)習(xí),也可以在實(shí)際開發(fā)中直接應(yīng)用。

編輯:admin  最后修改時(shí)間:2020-06-10

聯(lián)系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市南山區(qū)桃源街道平山社區(qū)平山一路2號南山云谷創(chuàng)業(yè)園二期11棟410-411

Copyright © 2014-2026 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网
精品999在线| 免费无码av片在线观看| 国内自拍视频网| 91av资源网| 自慰无码一区二区三区| 国产乱子伦精品无码专区| 欧美一二三不卡| 久久99久久久久久| 丰满的少妇愉情hd高清果冻传媒| 成人黄色大片网站| 欧美一区二区三区爽大粗免费| 每日在线更新av| 看欧美ab黄色大片视频免费| 亚洲欧美自拍另类日韩| 久久精品视频在线观看免费| 国产人妻互换一区二区| 97视频在线免费| 丰满少妇在线观看| 免费久久久久久| 2019日韩中文字幕mv| aⅴ在线免费观看| 在线观看日本www| 日韩精品一区二区免费| 日本熟妇人妻中出| 国产 欧美 日本| 精品久久久久久久免费人妻| 午夜一级免费视频| 欧美一区二区三区爽大粗免费| 91人人澡人人爽人人精品| 久久久国产精华液999999 | www黄色在线| 玩弄japan白嫩少妇hd| 欧美在线a视频| 青青在线免费观看视频| 青青视频免费在线| 国产三级三级看三级| 成人手机在线播放| 午夜在线观看av| 国产淫片免费看| 神马午夜伦理影院| 中文字幕 欧美日韩| 男人天堂1024| 久久99久久99精品| 天天综合成人网| 欧美午夜性生活| 免费观看精品视频| 国产成人艳妇aa视频在线| 在线观看的毛片| 欧美私人情侣网站| 青草青青在线视频| 色一情一乱一乱一区91| 久久久国产精华液999999 | 天美星空大象mv在线观看视频| 国产免费一区二区视频| 黄色a级在线观看| 伊人五月天婷婷| 亚洲欧美自偷自拍另类| 婷婷激情四射五月天| 37pao成人国产永久免费视频| 国产爆乳无码一区二区麻豆| 中文字幕一区二区三区四| 色片在线免费观看| www.com操| 狠狠躁狠狠躁视频专区| 日av中文字幕| 91视频免费版污| 中文字幕第88页| 中文字幕1234区| 一本二本三本亚洲码| 久久久久久久免费视频| 日本美女久久久| 国产一级大片免费看| 日韩a级在线观看| 日本网站免费在线观看| 日韩毛片在线免费看| 日韩大片一区二区| 激情五月五月婷婷| 老太脱裤让老头玩ⅹxxxx| 37pao成人国产永久免费视频| 午夜在线观看av| 九一免费在线观看| 国产成人精品视频免费看| 92看片淫黄大片一级| 亚洲xxxx2d动漫1| 大桥未久一区二区| 国产午夜福利在线播放| 香蕉视频999| 欧美久久久久久久久久久久久久| 131美女爱做视频| 天天视频天天爽| av在线观看地址| 奇米影视四色在线| 国产xxxx振车| 精品日韩久久久| 欧美视频在线观看视频| 亚洲36d大奶网| 国产av麻豆mag剧集| 97超碰人人爽| 黄色动漫在线免费看| 三年中文高清在线观看第6集| 国产男女免费视频| 欧洲xxxxx| 在线免费观看视频黄| 日韩一级片免费视频| 五月天视频在线观看| 国产aaa一级片| 国产免费裸体视频| 99中文字幕在线| 视色视频在线观看| 免费午夜视频在线观看| 日产精品久久久久久久蜜臀| 天堂中文av在线| 五月婷婷深爱五月| 91视频 -- 69xx| 青青在线视频免费观看| 日日干日日操日日射| 黄色一级免费大片| 成年人免费大片| 欧美色图另类小说| 久久久久久人妻一区二区三区| 国产系列第一页| 黄色a级三级三级三级| 少妇黄色一级片| 天天色综合天天色| 久久久久久香蕉| 久久精品免费一区二区| 亚洲人成无码网站久久99热国产| 久久久成人精品一区二区三区| 亚洲精品自拍网| 国产男女激情视频| 日韩精品免费播放| 一区二区成人网| 亚洲一级免费观看| 97人人爽人人| www.亚洲一区二区| 今天免费高清在线观看国语| 韩国黄色一级大片| 黄色网在线视频| 丝袜人妻一区二区三区| 国产成人永久免费视频| 日本福利视频一区| www.浪潮av.com| 欧美日韩大尺度| 亚洲制服在线观看| 青青青青在线视频| 久久久久久久久久福利| 亚洲精品www.| 糖心vlog在线免费观看| 99色这里只有精品| 天天爽天天爽夜夜爽| www.色就是色.com| 日韩精品在线视频免费观看| 97视频在线免费播放| 鲁一鲁一鲁一鲁一av| 天天做天天爱天天高潮| 成年人看的毛片| 中文字幕永久视频| 黄色影视在线观看| 色婷婷综合久久久久中文字幕| 亚洲欧美aaa| 欧美日韩在线一| 午夜不卡福利视频| 国产亚洲欧美在线视频| 激情黄色小视频| 黄色免费福利视频| 中文字幕在线视频一区二区三区| 日韩在线视频在线| 亚洲高清免费在线观看| 欧美一级欧美一级| 激情久久综合网| 成人亚洲视频在线观看| 日韩欧美视频免费在线观看| 老头吃奶性行交视频| 国产91沈先生在线播放| 久久撸在线视频| 大肉大捧一进一出好爽视频| 五月天色婷婷综合| 浓精h攵女乱爱av| 337p粉嫩大胆噜噜噜鲁| 亚洲激情免费视频| 亚洲第一精品区| 亚洲福利精品视频| 国产xxxxx在线观看| 九九热只有这里有精品| 欧美精品一区二区性色a+v| 色婷婷成人在线| 一级特黄性色生活片| 午夜肉伦伦影院| 日韩五码在线观看| 欧美久久在线观看| 9色porny| 国产精品又粗又长| aa视频在线播放| 亚洲人精品午夜射精日韩| 青青视频免费在线| 国产一区二区三区乱码| 久久手机在线视频| 水蜜桃色314在线观看| 播放灌醉水嫩大学生国内精品| 欧美啪啪免费视频|