![智嵌以太網(wǎng)實(shí)現(xiàn)遠(yuǎn)程固件例程使用手冊(cè)_第1頁(yè)](http://file4.renrendoc.com/view/8d308cea6ae13a4132f29a54266c283a/8d308cea6ae13a4132f29a54266c283a1.gif)
![智嵌以太網(wǎng)實(shí)現(xiàn)遠(yuǎn)程固件例程使用手冊(cè)_第2頁(yè)](http://file4.renrendoc.com/view/8d308cea6ae13a4132f29a54266c283a/8d308cea6ae13a4132f29a54266c283a2.gif)
![智嵌以太網(wǎng)實(shí)現(xiàn)遠(yuǎn)程固件例程使用手冊(cè)_第3頁(yè)](http://file4.renrendoc.com/view/8d308cea6ae13a4132f29a54266c283a/8d308cea6ae13a4132f29a54266c283a3.gif)
![智嵌以太網(wǎng)實(shí)現(xiàn)遠(yuǎn)程固件例程使用手冊(cè)_第4頁(yè)](http://file4.renrendoc.com/view/8d308cea6ae13a4132f29a54266c283a/8d308cea6ae13a4132f29a54266c283a4.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、智嵌以太網(wǎng)實(shí)現(xiàn)更新固件例程使用手冊(cè)版本號(hào):A擬制人:時(shí)間:2015 年 2 月 3 日智嵌物聯(lián)網(wǎng)電子技術(shù)I目錄12本文檔編寫(xiě)目的3基礎(chǔ)知識(shí)(該部分摘自互聯(lián)網(wǎng))32.12.2IAP3APP63IAP的實(shí)現(xiàn)63.13.2實(shí)驗(yàn)步驟6IAP和APP程序的. 84BIN文件的生成9II1本文檔編寫(xiě)目的本使用手冊(cè)是針對(duì)“以太網(wǎng)實(shí)現(xiàn)基礎(chǔ)知識(shí)(該部分摘自互聯(lián)網(wǎng))更新固件例程”而編寫(xiě)的。22.1IAPIAP,全稱是“In-Application-Programming”,中文解釋為“在程序中編程”。IAP 是一種通過(guò)微控制器的對(duì)外接口(如 USART,IIC,CAN,USB,以太網(wǎng)接口甚至是無(wú)線射頻通道),程序
2、的更新的技術(shù)(注意這完全有別于 ICP 或者 ISP對(duì)正在運(yùn)行程序的微控制器進(jìn)行技術(shù))。ICP(In-Circuit Programming)技術(shù)即通過(guò)仿真器對(duì)單片機(jī)進(jìn)行程序燒寫(xiě),而 ISP技術(shù)則是通過(guò)單片機(jī)內(nèi)置的bootloader 程序引導(dǎo)的燒寫(xiě)技術(shù)。無(wú)論是ICP 技術(shù)還是ISP 技術(shù),都需要有機(jī)械性的操作如連接中,要對(duì)其進(jìn)行程序更新無(wú)疑線,設(shè)置跳線帽等。若產(chǎn)品的電路板已經(jīng)層層密封在外殼重重,若產(chǎn)品安裝于狹窄空間等難以觸及的地方,更是一。但若進(jìn)引入了 IAP 技術(shù),則完全可以避免上述尷尬情況,而且若使用遠(yuǎn)距離或無(wú)場(chǎng)線的數(shù)據(jù)傳輸方案,甚至可以實(shí)現(xiàn)編程和無(wú)線編程。這絕對(duì)是 ICP 或 ISP
3、技術(shù)無(wú)法做到的。某種微控制器支持 IAP 技術(shù)的首要前提是其必須是基于可重復(fù)編程閃存的微控制器。STM32 微控制器帶有可編程的內(nèi)置閃存,同時(shí) STM32 擁有在數(shù)量上和種類上都非常豐富的外設(shè)通口,因此在 STM32 上實(shí)現(xiàn) IAP 技術(shù)是完全可行的。實(shí)現(xiàn) IAP 技術(shù)的的 IAP 程序。這段程序主要負(fù)責(zé)與是一段預(yù)先燒寫(xiě)在單片機(jī)外部的上位機(jī)進(jìn)行握手同步,然后通過(guò)外設(shè)通口將來(lái)自于上位機(jī)的(APP)程序數(shù)據(jù)接收后寫(xiě)入單片機(jī)指定的閃存區(qū)域,然后再跳轉(zhuǎn)執(zhí)行新寫(xiě)入的程序,即 APP 程序,最終就達(dá)到了程序更新的目的。在 STM32 微控制器上實(shí)現(xiàn) IAP 程序之前首先要回顧一下 STM32 的閃存組織架
4、構(gòu)和其啟動(dòng)過(guò)程。STM32 的閃存地址起始于 0 x8000000,一般情況下,程序文件就從此地址開(kāi)始寫(xiě)入。此外 STM32 是基于Cortex-M3 內(nèi)核的微控制器,其通過(guò)一張“中斷向量表”來(lái)響應(yīng)中斷,程序啟動(dòng)后,將首先從“中斷向量表”取出復(fù)位中斷向量執(zhí)行復(fù)位中斷程序完成啟動(dòng)。而這張“中斷向量表”的起始地址是 0 x8000004,當(dāng)中斷來(lái)臨,STM32 的硬件機(jī)制亦會(huì)自動(dòng)將 PC 指針定位到“中斷向量表”處,并根據(jù)中斷源取出對(duì)應(yīng)的中斷向量執(zhí)行中斷服務(wù)程序。最后還需要知道關(guān)鍵的一點(diǎn),通過(guò)修改 STM32 工程的文件寫(xiě)入閃存的起始地址。可以修改程序在 STM32 微控制器上實(shí)現(xiàn) IAP 方案,
5、除了常規(guī)的串口接收數(shù)據(jù)以及閃存數(shù)據(jù)寫(xiě)入等常規(guī)操作外,還需注意 STM32 的啟動(dòng)過(guò)程和中斷響應(yīng)方式。圖 1 顯示了 STM32 常規(guī)的運(yùn)行流程。3圖 1 STM32 常規(guī)程序運(yùn)行流程對(duì)圖 1 解讀如下:1、STM32 復(fù)位后,會(huì)從地址為 0 x8000004 處取出復(fù)位中斷向量的地址,并跳轉(zhuǎn)執(zhí)行復(fù)位中斷服務(wù)程序,如圖 1 中標(biāo)所示。2、復(fù)位中斷服務(wù)程序執(zhí)行的最終結(jié)果是跳轉(zhuǎn)至 C 程序的 main 函數(shù),如圖 1 中標(biāo)號(hào)所示,而 main 函數(shù)應(yīng)該是一個(gè)死循環(huán),是一個(gè)永不返回的函數(shù)。3、在 main 函數(shù)執(zhí)行的過(guò)程中,發(fā)生了一個(gè)中斷請(qǐng)求,此時(shí) STM32 的硬件機(jī)制會(huì)將 PC 指針強(qiáng)制指回中斷向
6、量表處,如圖 1 中標(biāo)號(hào)所示。4、根據(jù)中斷源進(jìn)入相應(yīng)的中斷服務(wù)程序,如圖 1 中標(biāo)號(hào)所示。5、中斷服務(wù)程序執(zhí)行完畢后,程序再度返回至 main 函數(shù)中執(zhí)行,如圖 1 中標(biāo)號(hào)所示。若在 STM32 中加入了 IAP 程序,則情況會(huì)如圖 2 所示:4圖 2 加入 IAP 后的程序運(yùn)行流程圖對(duì)圖 2 的解讀如下:1、 STM32 復(fù)位后,從地址為 0 x8000004 處取出復(fù)位中斷向量的地址,并跳轉(zhuǎn)執(zhí)行復(fù)位中斷服務(wù)程序,隨后跳轉(zhuǎn)至 IAP 程序的 main 函數(shù),如圖 2 中標(biāo)號(hào)、所示。這個(gè)過(guò)程和圖 1 相應(yīng)部分是一致的。2、執(zhí)行完 IAP 過(guò)程后(STM32多出了新寫(xiě)入的程序,圖 2 中以灰色底
7、紋方格表示,地址始于 0 x8000004+N+M)跳轉(zhuǎn)至新寫(xiě)入程序的復(fù)位向量表,取出 APP 程序的復(fù)位中斷向量的地址,并跳轉(zhuǎn)執(zhí)行 APP 程序的復(fù)位中斷服務(wù)程序,隨后跳轉(zhuǎn)至新程序的 main 函數(shù),其過(guò)2 的標(biāo)號(hào)所示。APP 程序的 main 函數(shù)應(yīng)該也具有永不返回的特性。同時(shí)應(yīng)該注意在 STM32 的空間在不同的位置上出現(xiàn)了 2 個(gè)中斷向量表。3、在新程序 main 函數(shù)執(zhí)行的過(guò)程中,一個(gè)中斷請(qǐng)求來(lái)臨,PC 指針仍會(huì)回轉(zhuǎn)至地址為0 x8000004 中斷向量表處,而并不是 APP 程序的中斷向量表,如圖 2 中標(biāo)號(hào)所示。注意到這是由 STM32 的硬件機(jī)制決定的。4、根據(jù)中斷源跳轉(zhuǎn)至對(duì)應(yīng)
8、的中斷服務(wù),如圖 2 中標(biāo)號(hào)所示。注意此時(shí)是跳轉(zhuǎn)至了 APP 程序的中斷服務(wù)程序中。55、中斷服務(wù)執(zhí)行完畢后,返回 main 函數(shù)。如圖 2 中標(biāo)號(hào)所示。從上述兩個(gè)過(guò)程的分析可以得知,對(duì)將使用 IAP 過(guò)程寫(xiě)入的程序要滿足 2 個(gè)要求:1、APP 程序必須從 IAP 程序之后的某個(gè)偏移量為 x 的地址開(kāi)始;2、必須將 APP 程序的中斷向量表相應(yīng)的移動(dòng),移動(dòng)的偏移量為 x;將中斷向量表移動(dòng)的方法是在程序中加入函數(shù):void NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset);其中參數(shù) NVIC_VectTab 為中斷向量表起始位置,而參數(shù) Off
9、set 則為地址偏移量,如將中斷向量表移至 0 x8002000 處,則應(yīng)調(diào)用該函數(shù)如下:void NVIC_SetVectorTable(0 x8000000, 0 x2000);同時(shí)有必要提醒讀者注意的是,此函數(shù)只會(huì)修改 STM32 程序中用于中斷向量的結(jié)構(gòu)體變量,而不會(huì)實(shí)質(zhì)地改變中斷向量表在閃存中的物理位置,有了以上準(zhǔn)備后就可以著手設(shè)計(jì)一個(gè) IAP 方案了,如下:研究該程序原型。1、STM32 復(fù)位后,利用一個(gè)按鍵(也可以不用)的狀態(tài)進(jìn)行同步,當(dāng)按鍵按下時(shí)表示將要進(jìn)行 IAP 過(guò)程;2、在 IAP 過(guò)程中,通過(guò)上位機(jī)向 STM32 的外設(shè)通訊接口(比如 USART1、網(wǎng)口等)發(fā)送所要更新
10、的 APP 程序文件,STM32 接收到數(shù)據(jù)后轉(zhuǎn)而從 0 x8002000 地址開(kāi)始寫(xiě)入收到的數(shù)據(jù);3、再次復(fù)位后,跳轉(zhuǎn) 0 x8002004 地址開(kāi)始運(yùn)行 APP 程序;注意事項(xiàng):利用 IAP 寫(xiě)入的 APP 程序最好是.bin 格式的文件,但不能是.hex 格式的文件;向 STM32 發(fā)送 APP 程序文件時(shí)盡量慢一些,因?yàn)?STM32 對(duì) FLASH 的寫(xiě)入速度往往跟不上通訊外設(shè)接口的速度;(3)建議在 STM32 和上位機(jī)之間設(shè)計(jì)一套握IAP 的成功率;2.2APP制和出錯(cuò)管理機(jī)制,這樣可以大幅提高2.1 節(jié)所述的 IAP 程序必須通過(guò)其它,如 JTAG 或 ISP 燒入,可以把 IA
11、P 程序稱為 Bootloader 程序。APP 程序即是通過(guò) IAP 程序的應(yīng)用程序。IAP 和 APP 程序分別存放在 STM32 FLASH 的不同地址范圍,一般從最低地址區(qū)開(kāi)始存放 IAP,緊跟其后的就是 APP 程序(注意,如果 FLASH 容量足夠,是可以設(shè)計(jì)很多 APP 程序的)。3IAP 的實(shí)現(xiàn)IAP 程序內(nèi)建 TFTP 服務(wù)器,IP:53,端:69。PC 機(jī)通過(guò) TFTP,如“Tftpd32”,該需要先安裝。向該服務(wù)器傳輸文件,寫(xiě)入 STM32 的片內(nèi) FLASH 中。3.1實(shí)驗(yàn)步驟(1)用 JLINK 或串口線將“以太網(wǎng)升級(jí)例程_IAP”到開(kāi)發(fā)板,按下 S1S4 任一按鍵(
12、具體為什么可以參考程序),再按復(fù)位鍵“RESET”,此時(shí)開(kāi)發(fā)板開(kāi)始運(yùn)行 IAP 程序,等待 PC 機(jī) TFTP 下件。(2)打開(kāi)“Tftpd32”,默認(rèn)如下設(shè)置:6點(diǎn)擊上圖中的“Tftp Cnt”,并設(shè)置如下:上圖中,橘紅色框?yàn)殡娔X IP,紅色框?yàn)殚_(kāi)發(fā)板 IP 和端,點(diǎn)擊淡藍(lán)色按鈕,選擇要的 bin 文件(比如” LED 閃爍例程_APP”例程: 基于 TFTP 協(xié)議的以太網(wǎng)升級(jí)例程(機(jī))LED 閃爍例程_APPProjectBIN):7選擇好文件后,點(diǎn)擊”P(pán)ut”按鈕,稍等片刻,則會(huì)成功:點(diǎn)擊“確定”即可。按下”RESET”,則 APP 程序開(kāi)始運(yùn)行。如果要再更新固件時(shí),只需要按下 S1S4
13、 任一按到 IAP 程序,此時(shí)又可以用“Tftpd32”更新固件了。鍵,再?gòu)?fù)位3.2IAP 和 APP 程序的1、 在 IAP 程序中,跳轉(zhuǎn)到 APP 程序前要關(guān)閉總中斷以及復(fù)位中斷向量表和時(shí)鐘,如:2、 在 IAP 程序斷向量表的偏移值為 0 x0,如:83、 在 APP 程序中,要打開(kāi)全局中斷(如果用到中斷的話)。4、 在 APP 程序斷向量表的偏移值為 0 x10000(這個(gè)值要和 APP 程序的起始地址對(duì)應(yīng),本示例中的 APP 起始地址都是 0 x08010000),如:4BIN 文件的生成1、 設(shè)置 APP 程序起始地址打開(kāi)示例工程(如 LED 閃爍例程_APP),在工程的“Option for.”界面中的“”頁(yè)里將“IROM”的“Start”列改為 APP 程序起始的地址,如下圖中將程序起始位置設(shè)為0 x8010000(也可以是其他地址)。92、 利用 KEIL4 生成 BIN(1)在“LED 閃爍例程_APPP
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024秋七年級(jí)數(shù)學(xué)上冊(cè) 第3章 整式及其加減3.1 字母表示數(shù)說(shuō)課稿(新版)北師大版
- 2023三年級(jí)數(shù)學(xué)上冊(cè) 四 兩、三位數(shù)除以一位數(shù) 2兩位數(shù)除以一位數(shù)第3課時(shí) 倍數(shù)的問(wèn)題說(shuō)課稿 冀教版001
- 2024-2025學(xué)年高中語(yǔ)文 第四單元 第17課 與妻書(shū)說(shuō)課稿 粵教版必修2
- 2024年秋九年級(jí)化學(xué)上冊(cè) 第3章 物質(zhì)構(gòu)成的奧秘 第2節(jié) 組成物質(zhì)的化學(xué)元素 第1課時(shí) 元素與元素符號(hào)說(shuō)課稿 滬教版
- 二零二五年度運(yùn)輸車隊(duì)租賃及維保一體化服務(wù)合同2篇
- 派員擔(dān)任法定代表人協(xié)議書(shū)(2篇)
- 2024-2025版新教材高中化學(xué) 第2章 第3節(jié) 第2課時(shí) 氣體摩爾體積說(shuō)課稿 新人教版必修第一冊(cè)
- 二零二五年監(jiān)護(hù)協(xié)議書(shū):監(jiān)護(hù)職責(zé)與被監(jiān)護(hù)人的責(zé)任3篇
- 2025年度農(nóng)業(yè)機(jī)械聘用駕駛員安全協(xié)議
- 7 湯姆 · 索亞歷險(xiǎn)記(節(jié)選) (說(shuō)課稿)2023-2024學(xué)年-部編版語(yǔ)文六年級(jí)下冊(cè)
- 2024年醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范培訓(xùn)課件
- DB11T 1136-2023 城鎮(zhèn)燃?xì)夤艿婪D(zhuǎn)內(nèi)襯修復(fù)工程施工及驗(yàn)收規(guī)程
- 2025屆浙江省兩校高一數(shù)學(xué)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 2023年新高考(新課標(biāo))全國(guó)2卷數(shù)學(xué)試題真題(含答案解析)
- 零部件測(cè)繪與 CAD成圖技術(shù)(中職組)沖壓機(jī)任務(wù)書(shū)
- GB/T 19228.1-2024不銹鋼卡壓式管件組件第1部分:卡壓式管件
- 2024年騎電動(dòng)車撞傷人私了協(xié)議書(shū)范文
- 四年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)及答案
- 繪本教學(xué)課件
- 2024年中國(guó)不銹鋼炒鍋市場(chǎng)調(diào)查研究報(bào)告
- 江蘇省南通市2023-2024學(xué)年小升初語(yǔ)文試卷(含答案)
評(píng)論
0/150
提交評(píng)論