




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
IAP在線升級(jí)應(yīng)用實(shí)驗(yàn)“第十七章《GD32F3開發(fā)進(jìn)階教程——基于GD32F303ZET6》01實(shí)驗(yàn)內(nèi)容本章實(shí)驗(yàn)的主要內(nèi)容是學(xué)習(xí)通過IAP實(shí)現(xiàn)微控制器程序的在線升級(jí),首先了解ICP和IAP兩種不同的微控制器編程方式的區(qū)別,以及二者對(duì)應(yīng)的程序執(zhí)行流程,進(jìn)而掌握IAP的原理,最后,根據(jù)本章實(shí)驗(yàn)中介紹的用戶程序生成方法,基于GD32F3蘋果派開發(fā)板設(shè)計(jì)一個(gè)IAP在線升級(jí)應(yīng)用實(shí)驗(yàn),先將Bootloader程序燒錄進(jìn)微控制器中,然后將用戶程序存放于SD卡的固定路徑下,最后通過Bootloader將SD卡中的用戶程序下載到微控制器的Flash中,以實(shí)現(xiàn)用戶程序?qū)?yīng)的功能。實(shí)驗(yàn)內(nèi)容02實(shí)驗(yàn)原理微控制器編程方式根據(jù)代碼下載方法不同可分為兩種,分別是在線編程(ICP,InCircuitProgramming)和在程序中編程(IAP,InApplicationProgramming)ICP編程,即通過JTAG或SWD等接口下程序到微控制器中,ICP編程首先將Boot0拉高,Boot1拉低,然后觸發(fā)芯片復(fù)位。芯片復(fù)位后跳轉(zhuǎn)到系統(tǒng)存儲(chǔ)器的位置,即0xIFFFBO00(芯片硬件自帶的Bootloader)行引導(dǎo)裝程序,將TAG或SWD等接口傳輸?shù)某绦蛳螺d到Flash中。微控制器編程方式IAP編程需要兩份程序代碼,通常將第一份程序代碼稱為Bootloader程序,第二份程序代碼稱為用戶程序,Bootloader程序不執(zhí)行正常的功能,而是通過某種接口(如USB、UART或SDIO接口)獲取用戶程序,用戶程序才是真正的功能代碼,兩份代碼都存儲(chǔ)于主閃存存儲(chǔ)器中。Bootloader程序一般存儲(chǔ)于主閃存存儲(chǔ)器的最低地址區(qū),即從0x08000000開始,而用戶程序存儲(chǔ)地址相對(duì)于閃存的最低地址區(qū)存在一個(gè)相對(duì)偏移量X注意,如果Flash容量足夠,可以實(shí)現(xiàn)設(shè)計(jì)多個(gè)用戶程序。微控制器編程方式微控制器編程方式IAP編程中閃存的空間分配情況如圖17-1所示。在中斷向量表中最先存放的為棧頂?shù)刂?,通常?字節(jié)。程序執(zhí)行流程1.ICP編程如圖17-2所示,由于閃存物理地址的首地址為0x08000000,因此通過ICP下載的程序從0x08000000開始。ICP程序的運(yùn)行流程為:①根據(jù)復(fù)位中斷向量跳轉(zhuǎn)至復(fù)位中斷服務(wù)程序并執(zhí)行,復(fù)位微控制;②復(fù)位結(jié)束后,先調(diào)用SystemInit函數(shù)進(jìn)行系統(tǒng)初始化,包括RCU配置等,然后執(zhí)行main函數(shù),main函數(shù)是編譯系統(tǒng)提供的一個(gè)函數(shù),負(fù)責(zé)完成庫(kù)函數(shù)的初始化和初始化應(yīng)用程序執(zhí)行環(huán)境,完成后自動(dòng)跳轉(zhuǎn)到main函數(shù)開始執(zhí)行;③當(dāng)出現(xiàn)中斷請(qǐng)求時(shí),程序?qū)⒃谥袛嘞蛄勘碇胁檎覍?duì)應(yīng)的中斷向量:④根據(jù)查找到的中斷向量,跳轉(zhuǎn)到對(duì)應(yīng)的中斷服務(wù)程序并執(zhí)行;⑤當(dāng)中斷服務(wù)程序運(yùn)行結(jié)束后,跳轉(zhuǎn)到main函數(shù)繼續(xù)運(yùn)行。程序執(zhí)行流程程序執(zhí)行流程2.IAP編程如圖17-3所示,通過IAP編程方式下載程序時(shí),閃存中存放著Botloader程序及用戶程序。Bootloader程序的運(yùn)行流程起初與ICP程序相同:①根據(jù)復(fù)位中斷向量跳轉(zhuǎn)至復(fù)位中斷服程序并執(zhí)行,復(fù)位微控制器;②復(fù)位結(jié)束后調(diào)用SystemInit和main函數(shù),然后跳轉(zhuǎn)到main函數(shù)執(zhí)行。不同之處在于,Bootloader程序在main函數(shù)中會(huì)執(zhí)行相應(yīng)的語(yǔ)句,跳轉(zhuǎn)到用戶程序中繼續(xù)執(zhí)行:③檢查是否需要更新用戶程序,如果需要更新則首先執(zhí)行用戶程序更新操作,不需要更新則進(jìn)行下一步;④跳轉(zhuǎn)至用戶程序的復(fù)位中斷服務(wù)程序并執(zhí)行。程序執(zhí)行流程⑤復(fù)位結(jié)束后調(diào)用SystemInit和main函數(shù),然后跳轉(zhuǎn)到用戶程序的main函數(shù)中執(zhí)行;⑥~⑦當(dāng)發(fā)生中斷時(shí),程序?qū)⒃谥袛嘞蛄勘碇胁檎覍?duì)應(yīng)的中斷向量,再根據(jù)相對(duì)偏移量X,跳轉(zhuǎn)至用戶程序?qū)?yīng)的中斷服務(wù)程序并執(zhí)行:⑧當(dāng)中斷程序運(yùn)行結(jié)束后,跳轉(zhuǎn)至用戶程序的main函數(shù)繼續(xù)運(yùn)行。程序執(zhí)行流程用戶程序同樣是一個(gè)完整的工程,與ICP編程方式所需要的工程相同,但用戶程序需要經(jīng)過特定的配置,配置步驟如下。用戶程序生成用戶程序生成步驟1.設(shè)置用戶程序的起始地址和存儲(chǔ)空間用戶程序生成步驟2.設(shè)置中斷向量表偏移量用戶程序生成步驟3.設(shè)置bin文件生成03實(shí)驗(yàn)代碼解析0102IAP.h文件:在IAPh文件的“宏定義”區(qū),定義了APP起始地址APPBEGINADDRBi文件信息儲(chǔ)存地址APPVERSIONBEGINADDRbi文件最大長(zhǎng)度MAXBINNAMELEN及數(shù)據(jù)緩沖區(qū)的長(zhǎng)度FILEBUFSIZE。在“API函數(shù)聲明”區(qū),聲明了3個(gè)API函數(shù)。IAP.c文件:在“包含頭文件”區(qū),包含了ff.h和SerialString.h等頭文件。在“內(nèi)部函數(shù)聲明”區(qū),聲明了3個(gè)內(nèi)部函數(shù)。IAP文件對(duì)IAP文件對(duì)IAP文件對(duì)IAP文件對(duì)在CheckAppVersion函數(shù)實(shí)現(xiàn)區(qū)后為SystemReset函數(shù)的實(shí)現(xiàn)代碼,如程序清單17-9所示。Main.c文件在main函數(shù)中調(diào)用CheckAppVersion和GotoApp函數(shù),如程序清單17-10所示,這樣就實(shí)現(xiàn)了從Bootloader程序到App程序的升級(jí)。Main.c文件實(shí)驗(yàn)結(jié)果下載Bootloader程序并進(jìn)行復(fù)位,若開發(fā)板未插入SD卡,則串口助手顯示信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林省白城市洮北區(qū)2025屆三年級(jí)數(shù)學(xué)第二學(xué)期期末經(jīng)典模擬試題含解析
- 南寧學(xué)院《俄語(yǔ)精讀Ⅴ》2023-2024學(xué)年第一學(xué)期期末試卷
- 吉林省長(zhǎng)春市157中學(xué)2025年初三月考卷(六)英語(yǔ)試題含答案
- 淺談腦?;颊咦o(hù)理小常識(shí)
- 湛江十中高三月周測(cè)考試文綜地理試題
- 2025煤炭運(yùn)輸、安全合同
- 2025校園照明系統(tǒng)維修承包合同
- 2025廣告設(shè)計(jì)制作合同2
- 《2025租賃合同提前終止協(xié)議》
- 2025年居間合同示范文本
- 滴滴新手司機(jī)培訓(xùn)
- 2024屆安徽省淮北市高三二模地理試卷
- 景區(qū)物業(yè)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 藥事管理與藥物使用制度
- 永磁電機(jī)項(xiàng)目可行性研究報(bào)告
- 學(xué)校1530安全教育記錄
- 2025年江蘇省張家港市文化中心管委辦招聘3人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 中鐵開投、中鐵云投招聘筆試沖刺題2025
- 張丹海簡(jiǎn)明大學(xué)物理分子的平均碰撞次數(shù)和平均自由程
- 地震監(jiān)測(cè)系統(tǒng)服務(wù)方案及故障維修處理措施
- 新工會(huì)制度財(cái)務(wù)知識(shí)大賽題庫(kù)(預(yù)算、決算部分)
評(píng)論
0/150
提交評(píng)論