![智嵌以太網(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)說明:本文檔由用戶提供并上傳,收益歸屬內(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本文檔編寫目的3基礎(chǔ)知識(shí)(該部分摘自互聯(lián)網(wǎng))32.12.2IAP3APP63IAP的實(shí)現(xiàn)63.13.2實(shí)驗(yàn)步驟6IAP和APP程序的. 84BIN文件的生成9II1本文檔編寫目的本使用手冊(cè)是針對(duì)“以太網(wǎng)實(shí)現(xiàn)基礎(chǔ)知識(shí)(該部分摘自互聯(lián)網(wǎng))更新固件例程”而編寫的。22.1IAPIAP,全稱是“In-Application-Programming”,中文解釋為“在程序中編程”。IAP 是一種通過微控制器的對(duì)外接口(如 USART,IIC,CAN,USB,以太網(wǎng)接口甚至是無(wú)線射頻通道),程序
2、的更新的技術(shù)(注意這完全有別于 ICP 或者 ISP對(duì)正在運(yùn)行程序的微控制器進(jìn)行技術(shù))。ICP(In-Circuit Programming)技術(shù)即通過仿真器對(duì)單片機(jī)進(jìn)行程序燒寫,而 ISP技術(shù)則是通過單片機(jī)內(nèi)置的bootloader 程序引導(dǎo)的燒寫技術(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ù)先燒寫在單片機(jī)外部的上位機(jī)進(jìn)行握手同步,然后通過外設(shè)通口將來(lái)自于上位機(jī)的(APP)程序數(shù)據(jù)接收后寫入單片機(jī)指定的閃存區(qū)域,然后再跳轉(zhuǎn)執(zhí)行新寫入的程序,即 APP 程序,最終就達(dá)到了程序更新的目的。在 STM32 微控制器上實(shí)現(xiàn) IAP 程序之前首先要回顧一下 STM32 的閃存組織架
4、構(gòu)和其啟動(dòng)過程。STM32 的閃存地址起始于 0 x8000000,一般情況下,程序文件就從此地址開始寫入。此外 STM32 是基于Cortex-M3 內(nèi)核的微控制器,其通過一張“中斷向量表”來(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),通過修改 STM32 工程的文件寫入閃存的起始地址??梢孕薷某绦蛟?STM32 微控制器上實(shí)現(xiàn) IAP 方案,
5、除了常規(guī)的串口接收數(shù)據(jù)以及閃存數(shù)據(jù)寫入等常規(guī)操作外,還需注意 STM32 的啟動(dòng)過程和中斷響應(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í)行的過程中,發(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è)過程和圖 1 相應(yīng)部分是一致的。2、執(zhí)行完 IAP 過程后(STM32多出了新寫入的程序,圖 2 中以灰色底
7、紋方格表示,地址始于 0 x8000004+N+M)跳轉(zhuǎn)至新寫入程序的復(fù)位向量表,取出 APP 程序的復(fù)位中斷向量的地址,并跳轉(zhuǎn)執(zhí)行 APP 程序的復(fù)位中斷服務(wù)程序,隨后跳轉(zhuǎn)至新程序的 main 函數(shù),其過2 的標(biāo)號(hào)所示。APP 程序的 main 函數(shù)應(yīng)該也具有永不返回的特性。同時(shí)應(yīng)該注意在 STM32 的空間在不同的位置上出現(xiàn)了 2 個(gè)中斷向量表。3、在新程序 main 函數(shù)執(zhí)行的過程中,一個(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è)過程的分析可以得知,對(duì)將使用 IAP 過程寫入的程序要滿足 2 個(gè)要求:1、APP 程序必須從 IAP 程序之后的某個(gè)偏移量為 x 的地址開始;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 過程;2、在 IAP 過程中,通過上位機(jī)向 STM32 的外設(shè)通訊接口(比如 USART1、網(wǎng)口等)發(fā)送所要更新
10、的 APP 程序文件,STM32 接收到數(shù)據(jù)后轉(zhuǎn)而從 0 x8002000 地址開始寫入收到的數(shù)據(jù);3、再次復(fù)位后,跳轉(zhuǎn) 0 x8002004 地址開始運(yùn)行 APP 程序;注意事項(xiàng):利用 IAP 寫入的 APP 程序最好是.bin 格式的文件,但不能是.hex 格式的文件;向 STM32 發(fā)送 APP 程序文件時(shí)盡量慢一些,因?yàn)?STM32 對(duì) FLASH 的寫入速度往往跟不上通訊外設(shè)接口的速度;(3)建議在 STM32 和上位機(jī)之間設(shè)計(jì)一套握IAP 的成功率;2.2APP制和出錯(cuò)管理機(jī)制,這樣可以大幅提高2.1 節(jié)所述的 IAP 程序必須通過其它,如 JTAG 或 ISP 燒入,可以把 IA
11、P 程序稱為 Bootloader 程序。APP 程序即是通過 IAP 程序的應(yīng)用程序。IAP 和 APP 程序分別存放在 STM32 FLASH 的不同地址范圍,一般從最低地址區(qū)開始存放 IAP,緊跟其后的就是 APP 程序(注意,如果 FLASH 容量足夠,是可以設(shè)計(jì)很多 APP 程序的)。3IAP 的實(shí)現(xiàn)IAP 程序內(nèi)建 TFTP 服務(wù)器,IP:53,端:69。PC 機(jī)通過 TFTP,如“Tftpd32”,該需要先安裝。向該服務(wù)器傳輸文件,寫入 STM32 的片內(nèi) FLASH 中。3.1實(shí)驗(yàn)步驟(1)用 JLINK 或串口線將“以太網(wǎng)升級(jí)例程_IAP”到開發(fā)板,按下 S1S4 任一按鍵(
12、具體為什么可以參考程序),再按復(fù)位鍵“RESET”,此時(shí)開發(fā)板開始運(yùn)行 IAP 程序,等待 PC 機(jī) TFTP 下件。(2)打開“Tftpd32”,默認(rèn)如下設(shè)置:6點(diǎn)擊上圖中的“Tftp Cnt”,并設(shè)置如下:上圖中,橘紅色框?yàn)殡娔X IP,紅色框?yàn)殚_發(fā)板 IP 和端,點(diǎn)擊淡藍(lán)色按鈕,選擇要的 bin 文件(比如” LED 閃爍例程_APP”例程: 基于 TFTP 協(xié)議的以太網(wǎng)升級(jí)例程(機(jī))LED 閃爍例程_APPProjectBIN):7選擇好文件后,點(diǎn)擊”Put”按鈕,稍等片刻,則會(huì)成功:點(diǎn)擊“確定”即可。按下”RESET”,則 APP 程序開始運(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 程序中,要打開全局中斷(如果用到中斷的話)。4、 在 APP 程序斷向量表的偏移值為 0 x10000(這個(gè)值要和 APP 程序的起始地址對(duì)應(yīng),本示例中的 APP 起始地址都是 0 x08010000),如:4BIN 文件的生成1、 設(shè)置 APP 程序起始地址打開示例工程(如 LED 閃爍例程_APP),在工程的“Option for.”界面中的“”頁(yè)里將“IROM”的“Start”列改為 APP 程序起始的地址,如下圖中將程序起始位置設(shè)為0 x8010000(也可以是其他地址)。92、 利用 KEIL4 生成 BIN(1)在“LED 閃爍例程_APPP
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年合金鐵粉項(xiàng)目投資可行性研究分析報(bào)告
- 2025年電子底板項(xiàng)目可行性研究報(bào)告
- 不間斷電話UPS集成模塊項(xiàng)目可行性研究報(bào)告
- 水泥管樁機(jī)行業(yè)深度研究報(bào)告
- 2024-2030年中國(guó)屈光手術(shù)設(shè)備行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資潛力預(yù)測(cè)報(bào)告
- 中國(guó)環(huán)保塑料袋行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 電競(jìng)酒店運(yùn)營(yíng)策略與市場(chǎng)分析
- 電子競(jìng)技對(duì)青少年心理影響的探索
- 未來(lái)瘦身法基于科學(xué)的飲食調(diào)整
- 2023-2029年中國(guó)牙齒根尖定位儀行業(yè)市場(chǎng)深度分析及未來(lái)發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 源代碼審計(jì)報(bào)告模板
- 施工組織設(shè)計(jì)模板
- 含碘對(duì)比劑靜脈外滲護(hù)理管理實(shí)踐指南
- 萃取技術(shù) 多級(jí)逆流萃取
- 部編版小學(xué)五年級(jí)語(yǔ)文教材培訓(xùn)課件【部編】
- 盆景造型經(jīng)驗(yàn)
- 能力不足方面存在的問題及整改措施【9篇】
- 悟真篇-薛道光注
- 重大危險(xiǎn)源公示牌(完整)-2
- 物理學(xué)史中國(guó)古代物理學(xué)
- 初一英語(yǔ)英語(yǔ)閱讀理解專項(xiàng)訓(xùn)練15篇
評(píng)論
0/150
提交評(píng)論