華大單片機(jī)HC32L110遠(yuǎn)程升級

數(shù)量(件) 價(jià)格
10 5000.00元/件
  • 最小起訂: 1件
  • 發(fā)貨地址: 遼寧 沈陽市
  • 發(fā)布日期:2022-05-24
  • 訪問量:210
咨詢電話:138-0292-3731
打電話時(shí)請告知是在機(jī)電之家網(wǎng)上看到獲取更多優(yōu)惠。謝謝!
4

沈陽芯碩科技有限公司

實(shí)名認(rèn)證 企業(yè)認(rèn)證
  • 聯(lián)系人:沈陽芯碩科技-024-85718900
  • 手機(jī):13802923731
  • 電話:024-85718900
  • 營業(yè)執(zhí)照:已審核 營業(yè)執(zhí)照
  • 經(jīng)營模式: 貿(mào)易型-
  • 所在地區(qū):遼寧 沈陽市
  • 家家通積分:860分

更多>>推薦產(chǎn)品

詳細(xì)參數(shù)
品牌其他型號HC32L110
封裝形式其他導(dǎo)電類型其他
封裝外形其他集成度其他
加工定制

產(chǎn)品詳情

通常實(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)如下功能:
1)檢查是否需要對第二部APP程序代碼進(jìn)行更新
2)如果不需要更新則轉(zhuǎn)到4)
3)執(zhí)行更新操作
4)跳轉(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í)行。
其中: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ū)動
通過上述介紹,使用演示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ò)誤。
以下部分簡要介紹IAP實(shí)現(xiàn)關(guān)鍵代碼:
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]       ;向量表重定義點(diǎn)擊并拖拽以移動
總結(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)用。

溫馨提示

  • 還沒找到想要的產(chǎn)品嗎? 立即發(fā)布采購信息,讓供應(yīng)商主動與您聯(lián)系!

免責(zé)聲明:所展示的信息由會員自行提供,內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由發(fā)布會員負(fù)責(zé),機(jī)電之家網(wǎng)對此不承擔(dān)任何責(zé)任。機(jī)電之家網(wǎng)不涉及用戶間因交易而產(chǎn)生的法律關(guān)系及法律糾紛,糾紛由您自行協(xié)商解決。
友情提醒:本網(wǎng)站僅作為用戶尋找交易對象,就貨物和服務(wù)的交易進(jìn)行協(xié)商,以及獲取各類與貿(mào)易相關(guān)的服務(wù)信息的平臺。為避免產(chǎn)生購買風(fēng)險(xiǎn),建議您在購買相關(guān)產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。過低的價(jià)格、夸張的描述、私人銀行賬戶等都有可能是虛假信息,請采購商謹(jǐn)慎對待,謹(jǐn)防欺詐,對于任何付款行為請您慎重抉擇!如您遇到欺詐等不誠信行為,請您立即與機(jī)電之家網(wǎng)聯(lián)系,如查證屬實(shí),機(jī)電之家網(wǎng)會對該企業(yè)商鋪?zhàn)鲎N處理,但機(jī)電之家網(wǎng)不對您因此造成的損失承擔(dān)責(zé)任!
您也可以進(jìn)入“消費(fèi)者防騙指南”了解投訴及處理流程,我們將竭誠為您服務(wù),感謝您對機(jī)電之家網(wǎng)的關(guān)注與支持!

您是不是在找