久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1998|回復: 0
打印 上一主題 下一主題
收起左側

華大單片機HC32L110遠程升級

[復制鏈接]
跳轉到指定樓層
樓主
ID:687449 發表于 2020-1-19 22:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
通常實現IAP功能時,需要在設計固件程序時編寫兩個項目代碼,第一個項目程序即BOOT程序不執行正常的功能操作,而只是通過某種通信方式(如USB、USART)接收程序或數據,執行對第二部分代碼的更新;第二個項目程序即APP程序用戶真正的功能代碼。這兩部分項目代碼同時燒錄在Flash中,當芯片上電后,首先是第一個項目程序BOOT開始運行,它主要實現如下功能:
1)檢查是否需要對第二部APP程序代碼進行更新
2)如果不需要更新則轉到4)
3)執行更新操作
4)跳轉到第二部分代碼執行
第一部分BOOT代碼可以通過SWD或者離線編程器下載到芯片Flash內部,第二部分APP和第一部分BOOT一起燒入芯片內部,以后需要程序更新再通過第一把BOOT代碼更新。根據芯片系列的Flash存放不同地址范圍,從最低地址區域開始存放BOOT,緊跟其后的就是APP程序,本篇筆記受限于芯片內部Flash容量,只是存放一個APP程序。即在芯片內部有兩個程序即BOOT和APP程序。
IAP功能具體實現
芯片程序一般從Flash地址0x0000_0000開始執行,基于Cortex-M0+內核特性,內部通過中斷向量表來響應中斷,程序從中斷向量表取出復位中斷向量執行中斷程序,當中斷產生,芯片內部PC指針定位到中斷向量表來取出對應的中斷服務程序執行。如果沒有中斷產生,在芯片執行完復位中斷服務程序后,跳轉到main函數順序執行死循環。如果有中斷產生,通過中斷向量表執行對應的中斷服務程序。
當加入IAP后,芯片還是從中斷向量表取出復位中斷向量執行中斷程序,如果沒有中斷產生,在芯片執行完復位中斷服務程序后,跳轉到main函數。在執行完IAP后,新程序的復位中斷向量地址為0x0000_0004 + BOOT程序大小,跳轉到APP程序的復位向量表,執行APP的復位中斷服務程序,隨后跳轉到APP程序的main函數執行。
其中:BOOT程序大小3.5KB
Para 區域存放IAP升級期間參數和標志占用0.5KB
APP程序大小為24KB
Demo程序,操作流程如下:
先將APP工程HEX下載到芯片內部
打開BOOT工程HEX下載到芯片,或者可以使用工具將兩個HEX文件合并在一起下載到芯片內部。
使用上位機演示程序,打開串口波特率固定為9600。按照協議將APP工程的bin文件下載到0x1000開始的芯片內部,其中要求APP的bin文件小于28KB。
參考樣例及驅動
通過上述介紹,使用演示Demo程序IAP需要特定協議。
通信協議格式如下:
///frame:68A0 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 一個字節
地址: A0 A1 兩個字節
控制碼C: 讀地址為0x15 寫地址為0x25
頁地址page: 一個字節 代表現在要操作的那個頁
長度L0 L1: 兩個字節 L0代表高字節,L1代表低字節,此處長度僅代表數據區域長度
數據域D0…DN-1 : 代表讀出或者寫入的數據
數據校驗CRC: 采用CRC-16方式,代表數據域數據的校驗。
結束符號:固定字符為0x16 一個字節
讀指令如下:
68 A0 A1 15 Page 0x00 0x00 CRC0 CRC1 16
正確回復:68 A0 A1 95 Page 0x04 0x00 D0 ………… D1023 CRC0 CRC1 16
錯誤回復 68 A0 A1 D5 Page 0x00 0x00 CRC0 CRC1 16
Page 選擇(0 – 27)
每次讀取1K字節數據
寫指令如下:
68 A0 A1 25 Page 04 00 D0 ………… D1023 CRC0 CRC1 16
正確回復:68 A0 A1 A5 Page 04 00 CRC0 CRC1 16
錯誤回復 68 A0 A1 E5 Page 00 00 CRC0 CRC1 16
Page 選擇(0 – 27)
每次寫1K字節數據
開始IAP升級指令
68 A0 A1 36 00 00 00 00 00 16
正確回復 68 A0 A1 B6 00 00 00 00 00 16
錯誤回復 68 A0 A1 F6 00 00 00 00 00 16
結束IAP升級指令
68 A0 A1 49 00 00 00 00 00 16
正確回復 68 A0 A1 C9 00 00 00 00 00 16
錯誤回復 68 A0 A1 09 00 00 00 00 00 16
發送數據幀如果發送結束到接收小于2s,如果超過說明IAP升級通信錯誤。
以下部分簡要介紹IAP實現關鍵代碼:
1)BOOT實現跳轉到APP代碼:
if((((_

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线网址 | 视频一区在线 | 久久久久国产精品一区二区 | 99久久日韩精品免费热麻豆美女 | 国产精品毛片无码 | 久久久久久久香蕉 | 99欧美精品| 国产成人99久久亚洲综合精品 | 国产大毛片 | 最近免费日本视频在线 | 国产三级电影网站 | 天天干天天操天天爽 | 精品视频一区二区三区在线观看 | 欧美日韩国产高清 | 日本天堂一区 | 亚洲国产精品日本 | 国产欧美一区二区精品久导航 | 欧美一区二区三区在线播放 | 亚洲高清在线 | 99精品国产一区二区青青牛奶 | 免费九九视频 | 国产精品色哟哟网站 | 午夜影院视频在线观看 | 91中文字幕在线 | 亚洲区中文字幕 | 国产黄色网址在线观看 | 夜夜夜夜草 | 二区在线视频 | 亚洲精品一区二区网址 | 成人高清视频在线观看 | 欧美日韩精品亚洲 | 91国自产 | 91美女在线观看 | 黄篇网址 | 亚洲久久一区 | 日韩在线第一 | 一区免费 | 久久一区精品 | 欧洲精品一区 | 中文字幕乱码一区二区三区 | av手机在线免费观看 |