作者 |strongerHuang 微信公眾號(hào) |strongerHuang
單片機(jī)升級(jí)固件的方法有很多中,比如:ISP(在系統(tǒng)編程)、ICP(在電路編程)、IAP(在應(yīng)用編程)等。
今天結(jié)合瑞薩單片機(jī)(RA4M3)、e2 studio開發(fā)環(huán)境給大家講述的是單片機(jī)通過USB(U盤)升級(jí)固件的方法。
RA4M3通過USB實(shí)現(xiàn)固件升級(jí)
01固件更新應(yīng)用案例
(1)修復(fù)程序錯(cuò)誤
(2)功能升級(jí)
02首先必須規(guī)劃好Bootloader和Application的空間分配。如下圖所示,案例使用R7FA4M3AF3CFB,有1M的ROM。Bootloader從0x000000開始存儲(chǔ),結(jié)束地址為0x1FFFF,所占空間大小為0x20000;Application從0x20000開始存儲(chǔ),結(jié)束地址為0x000FFFFF,所占空間大小為0xE0000。

03創(chuàng)建一個(gè)Bootloader工程,添加USB_HMSC、Flash、RTC和CRC等外設(shè)。其中USB添加主機(jī)大容量存儲(chǔ)類(HMSC)驅(qū)動(dòng)程序,它實(shí)現(xiàn)了USB HMSC接口,可從USB大容量存儲(chǔ)設(shè)備中讀取、寫入和擦除數(shù)據(jù)。

04使用RTC設(shè)置系統(tǒng)時(shí)間。

05初始化flash驅(qū)動(dòng),然后在data flash中讀取設(shè)備設(shè)置的log。

06初始化USB驅(qū)動(dòng),等待USB設(shè)備插入,如果檢測(cè)到有USB設(shè)備插入,將會(huì)根據(jù)文件"0:Put Image Here/update.txt"中的內(nèi)容,找到相應(yīng)的***.srec文件,并打開文件讀寫數(shù)據(jù)(將文件內(nèi)容解析后燒寫到Application對(duì)應(yīng)的地址空間),讀寫完成后將文件名改為"0:Put Image Here/loaded.txt",表示已完成數(shù)據(jù)讀寫。

07根據(jù)信息類型擦除data flash中的數(shù)據(jù),擦除成功后寫入新的設(shè)備設(shè)置參數(shù)。

08在屬性→設(shè)置中輸出srec格式文件作為Bootloader燒錄文件。

09將Bootloader燒錄到EK-RA4M3開發(fā)板上。首先,利用J-Flash Lite將RA4M3整片擦除,然后將ra4m3_hmsc_noRTOS.srec燒寫到芯片中,由于此時(shí)app部分內(nèi)容為空,紅色LED閃爍(按下reset大概10秒后,紅色LED閃爍)。

10打開e2studio新建Application工程,用來驗(yàn)證可以通過Bootloader成功升級(jí)Application,若成功升級(jí),三顆LED燈會(huì)不停地閃爍。

11打開memory_regions.ld文件,F(xiàn)LASH_LENGTH = 0x100000;更新為FLASH_LENGTH = 0xE0000;
由于Bootloader占用了0x20000大小,因此對(duì)于EK-RA4M3來說,僅剩下0x100000-0x20000=0xE0000大小可供Application使用。

12Application工程生成srec格式文件,下圖紅框位置勾選Section: -j .text & -j .data,使得application project僅生成code flash對(duì)應(yīng)的內(nèi)容。

13準(zhǔn)備一個(gè)U盤(FAT32格式),在里面建一個(gè)文件夾,命名為“Put Image Here”,將RA4M3_BLINKY.srec文件添加進(jìn)去

14update.txt文件里面添加RA4M3_BLINKY.srec

15將U盤插入,開發(fā)板上電,當(dāng)前運(yùn)行的代碼是Bootloader,由于此時(shí)尚未執(zhí)行Application升級(jí),因此LED2常亮,按下復(fù)位鍵,使得Bootloader重新運(yùn)行,執(zhí)行Application代碼升級(jí),可以看到LED燈按照RA4M3_BLINKY程序閃爍。將U盤插回電腦查看“Put Image Here”文件夾,可以看到update.txt變?yōu)閘oaded.txt,程序升級(jí)成功。

看到這里,你掌握了嗎?
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6072文章
45267瀏覽量
661161 -
usb
+關(guān)注
關(guān)注
60文章
8331瀏覽量
280145 -
固件
+關(guān)注
關(guān)注
10文章
568瀏覽量
24478 -
開發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
244瀏覽量
17468
原文標(biāo)題:單片機(jī)通過USB(U盤)升級(jí)固件的方法
文章出處:【微信號(hào):技術(shù)讓夢(mèng)想更偉大,微信公眾號(hào):技術(shù)讓夢(mèng)想更偉大】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
GD32單片機(jī)STM32遠(yuǎn)程下載手機(jī)程序升級(jí)固件下載局域網(wǎng)網(wǎng)頁升級(jí)工具
51單片機(jī)擴(kuò)展USB接口的方法
51單片機(jī)通過模擬USB通信的實(shí)現(xiàn)方法
基于GPRS模組的單片機(jī)固件在線升級(jí)的方法
GD32單片機(jī)STM32遠(yuǎn)程下載手機(jī)程序升級(jí)固件下載局域網(wǎng)網(wǎng)頁升級(jí)工具
51單片機(jī)擴(kuò)展USB接口的方法
基于AVR單片機(jī)的USB接口設(shè)計(jì)
基于USB接口的固件升級(jí)程序
如何更簡單的給單片機(jī)更新固件?
STM32單片機(jī)網(wǎng)絡(luò)遠(yuǎn)程升級(jí)固件的源碼下載
單片機(jī)升級(jí)
8051系列單片機(jī)固件升級(jí)iap
基于單片機(jī)的智能儀表擴(kuò)展USB 接口的方法
STM32/GD32系列單片機(jī)固件服務(wù)器使用手冊(cè)
STM32單片機(jī)實(shí)現(xiàn)固件在線升級(jí)(IAP)

單片機(jī)通過USB升級(jí)固件的方法
評(píng)論