標(biāo)題: 一個(gè)刷不死的Bootloader程序設(shè)計(jì) [打印本頁(yè)]
作者: zhengzg_1 時(shí)間: 2017-8-22 12:10
標(biāo)題: 一個(gè)刷不死的Bootloader程序設(shè)計(jì)
在此程序筆記會(huì)介紹,如何使用用戶(hù)文件傳輸協(xié)議代替例程中的x-modem協(xié)議。以及該Bootloader的軟件架構(gòu)、升級(jí)過(guò)程和例程的具體使用。
1.1 在線(xiàn)升級(jí)過(guò)程
例程通過(guò)x-modem協(xié)議將應(yīng)用程序的bin文件通過(guò)串口傳輸至MCU。
我們將MCU的32KB的Flash具體劃分為:
7KB存儲(chǔ)Bootloader代碼(0x0000~0x1C00);
12KB存儲(chǔ)應(yīng)用程序1區(qū)代碼(0x1C00~0x4C00);
12KB存儲(chǔ)應(yīng)用程序2區(qū)代碼(0x4C00~0x7C00);
1KB存儲(chǔ)各種運(yùn)行參數(shù)(0x7C00~0x8000);
用戶(hù)可以通過(guò)修改main函數(shù)中的,與地址有關(guān)的宏定義來(lái)重新劃分Flash。
MCU第一運(yùn)行Bootloader時(shí),會(huì)直接跳轉(zhuǎn)至應(yīng)用程序1區(qū),在生產(chǎn)時(shí)直接將Bootloader和應(yīng)用程序1區(qū)代碼一起燒至Flash中。
在例程中,應(yīng)用程序1區(qū)代碼以數(shù)組的形式存儲(chǔ)在地址0x1c00處。具體代碼詳見(jiàn)Bootloader例程中的usercodeapp1.c文件。
整體軟件的升級(jí)示意圖如圖 1.1所示:
0.png (136.47 KB, 下載次數(shù): 149)
下載附件
2017-8-22 16:05 上傳
更新相關(guān)參數(shù),并把參數(shù)數(shù)據(jù)重新燒寫(xiě)至Flash末尾的1KB Flash區(qū)域。參數(shù)數(shù)據(jù)區(qū)示意圖如圖 1.2所示。
0.png (53.82 KB, 下載次數(shù): 150)
下載附件
2017-8-22 16:06 上傳
MCU在線(xiàn)升級(jí)的流程如下圖 所示。
完整的word格式文檔51黑下載地址(共8頁(yè)):
一個(gè)刷不死的Bootloader程序設(shè)計(jì).docx
(352.66 KB, 下載次數(shù): 83)
2017-8-22 12:09 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: yangshijieab 時(shí)間: 2017-10-30 13:01
非常有用的文章,感謝。!
作者: yangshijieab 時(shí)間: 2017-11-7 10:10
樓主,你好,我想問(wèn)一下,這種程序構(gòu)架適合于什么樣子的51單片機(jī)?就是有沒(méi)有什么硬性要求?感謝!
作者: ghostvip 時(shí)間: 2018-4-22 14:24
這個(gè)程序1與程序2,相當(dāng)于多一個(gè)備份吧,如果程序比較大,內(nèi)存恐怕吃不銷(xiāo)吧
作者: DUANQIRUI 時(shí)間: 2018-11-9 10:30
如果程序二死了,怎么跳轉(zhuǎn)
作者: dhjsjhsjn 時(shí)間: 2018-12-13 21:48
感謝分享
作者: q405228062 時(shí)間: 2019-9-10 17:07
程序1和程序2的rom工程設(shè)置是不一樣的,實(shí)際操作起來(lái)非常麻煩,也就是說(shuō)如果當(dāng)前運(yùn)行在app1,那么需要把a(bǔ)pp2編譯出的bin文件燒進(jìn)去,反之就要把a(bǔ)pp1的燒進(jìn)去。意味著每次要編兩個(gè)目標(biāo)文件。且上位機(jī)要知道當(dāng)前目標(biāo)板工作在哪個(gè)app才能知道發(fā)送哪個(gè)app
作者: czb999 時(shí)間: 2019-12-31 10:19
說(shuō)得有點(diǎn)簡(jiǎn)單,下個(gè)文檔看看
作者: zhangshaoshao 時(shí)間: 2021-2-1 08:58
請(qǐng)問(wèn) APP1和APP2的生成的可執(zhí)行文件是和地址相關(guān)的 程序升級(jí)時(shí)候 如果運(yùn)行在APP2 發(fā)送的是APP1數(shù)據(jù)怎么辦?
作者: 西點(diǎn)鐘靈毓秀 時(shí)間: 2022-7-8 10:02
非常有用的文章,感謝。!
作者: 624353765 時(shí)間: 2022-7-10 06:51
浪費(fèi)空間
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |