一本一道AV无码中文字幕,久久久国产一区二区三区四区小说,国产a√精品区二区三区四区,国产精品人人妻人色五月

行業產品

  • 行業產品

沈陽芯碩科技有限公司


當前位置:沈陽芯碩科技有限公司>>華大產品>>華大單片機HC32L110遠程升級

華大單片機HC32L110遠程升級

返回列表頁
參  考  價面議
具體成交價以合同協議為準

產品型號

品       牌

廠商性質代理商

所  在  地沈陽市

聯系方式:宣女士查看聯系方式

更新時間:2022-05-24 13:36:24瀏覽次數:495次

聯系我時,請告知來自 智慧城市網

經營模式:代理商

商鋪產品:94條

所在地區:遼寧沈陽市

聯系人:宣女士 (經理)

產品簡介

通常實現IAP功能時,需要在設計固件程序時編寫兩個項目代碼,項目程序即BOOT程序不執行正常的功能操作,而只是通過某種通信方式(如USB、USART)接收程序或數據,執行對第二部分代碼的更新。

詳細介紹

通常實現IAP功能時,需要在設計固件程序時編寫兩個項目代碼,項目程序即BOOT程序不執行正常的功能操作,而只是通過某種通信方式(USBUSART)接收程序或數據,執行對第二部分代碼的更新;第二個項目程序即APP程序用戶真正的功能代碼。這兩部分項目代碼同時燒錄在Flash中,當芯片上電后,首先是項目程序BOOT開始運行,它主要實現如下功能:
1)
檢查是否需要對第二部APP程序代碼進行更新
2)
如果不需要更新則轉到4
3)
執行更新操作
4)
跳轉到第二部分代碼執行
     
部分BOOT代碼可以通過SWD或者離線編程器下載到芯片Flash內部,第二部分APP部分BOOT一起燒入芯片內部,以后需要程序更新再通過BOOT代碼更新。根據芯片系列的Flash存放不同地址范圍,從低地址區域開始存放BOOT,緊跟其后的就是APP程序,本篇筆記受限于芯片內部Flash容量,只是存放一個APP程序。即在芯片內部有兩個程序即BOOTAPP程序。
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開始的芯片內部,其中要求APPbin文件小于28KB
參考樣例及驅動
通過上述介紹,使用演示Demo程序IAP需要特定協議。
通信協議格式如下:
///*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 一個字節
地址:       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(((*(__IO uint32_t*)appxaddr)&0x2FFE0000)==0x20000000) //
檢查棧頂地址是否合法
{
  jump2app=(iapfun)*(__IO uint32_t*)(appxaddr+4);  //APP
程序復位地址
  MSR_MSP(*(__IO uint32_t*)appxaddr);              //
初始化APP堆棧指針
  jump2app();                                      //
跳轉到APP程序
}  
2
APP程序中斷向量偏移:
   new_vect_table  EQU     0x00001000         ;
中斷向量偏移長度
; reset Vector table address.
   LDR     R0, =0xE000ED08
   LDR     R2, =new_vect_table
   STR     R2, [R0]       ;
向量表重定義點擊并拖拽以移動
總結
      
以上章節簡要介紹了HC32L110系列的IAP控制模塊基本功能,詳細說明了該模塊的各個功能及操作步驟,用戶在實際的應用開發過程中,如果需要更深一步了解該模塊的使用方法及操作事項,應以HC32L110的用戶手冊為準。本章中提到的樣例既可以作為用戶進一步的實驗與學習,也可以在實際開發中直接應用。



感興趣的產品PRODUCTS YOU ARE INTERESTED IN

智慧城市網 設計制作,未經允許翻錄必究 .? ? ? Copyright(C)?2021 http://cchxqp518.com,All rights reserved.

以上信息由企業自行提供,信息內容的真實性、準確性和合法性由相關企業負責,智慧城市網對此不承擔任何保證責任。 溫馨提示:為規避購買風險,建議您在購買產品前務必確認供應商資質及產品質量。

會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時間回復您~