介紹
考慮到瑞薩的MCUBoot的ROM占用和某些客戶的需求,本篇主要講述在不使用瑞薩MCUboot驅動下,如何實現(xiàn)簡單的bootloader功能。
主要內容
在寫代碼之前,首先必須規(guī)劃Boot和App的存放位置,如下圖。我使用的是R7FA2L1AB2DFM,有256K的ROM。我把Boot從0x00開始存儲,預計存儲7K左右;App從0x4000開始存儲。為了在仿真時區(qū)分Boot和App,這里選擇了點亮LED的方式來區(qū)分,當只亮一個LED時表示當前是Boot在運行,當兩個LED交替閃爍時代表App在運行。

BOOT工程:
1創(chuàng)建一個boot工程,添加UART和Flash驅動,F(xiàn)lash驅動只選Code Flash Programming,選擇只亮一個LED燈來區(qū)別BOOT和APP。


2編寫代碼,實現(xiàn)串口接收串口助手發(fā)來的APP.bin

3當串口接收完后,用Flash驅動把接收到的數(shù)據(jù)寫到APP存儲的rom地址。這里我選擇把APP存在0x4000

4調用下圖函數(shù),實現(xiàn)APP跳轉。注意,跳轉前先把所有運行的驅動關閉。


5編譯,可對比得出,精簡版bootloader只是用了7K左右的rom,比使用了MCUboot后的ROM占用少5K。


APP工程:
1實現(xiàn)APP的功能邏輯代碼,這里我選擇是使用GPT定時器,讓開發(fā)板的兩個LED燈交替閃爍。

2通過文本打開fsp.ld文件,添加紅框位置的語句,地址與BOOT工程的跳轉地址對應。這個步驟的目的是為了讓APP工程以0x4000這個地址作為起始地址,它的向量表也會以這個地址作為基準來存儲。

3編譯并生成bin文件。

仿真調試:
仿真BOOT工程,在PC端用串口助手燒錄APP.bin,可以看到開發(fā)板從一開始只亮一個LED到兩個LED交替閃爍。
審核編輯:湯梓紅
-
mcu
+關注
關注
147文章
18924瀏覽量
398019 -
ROM
+關注
關注
4文章
579瀏覽量
89067 -
bootloader
+關注
關注
2文章
244瀏覽量
48028
發(fā)布評論請先 登錄
如何去實現(xiàn)基于STM32L0的簡單Bootloader呢
如何在STM32F103C8上實現(xiàn)一個簡單的bootloader
研究下stm32基于BootLoader的IAP功能
4510 bootloader的實現(xiàn)與分析
BootLoader_BootLoader是什么
STM32系統(tǒng)bootloader的應用有哪些
【MCU】BootLoader的簡單介紹
幾種MCU bootLoader的實現(xiàn)方案
SI1060的BootLoader OTA功能實現(xiàn)
在STM32F103C8上實現(xiàn)一個簡單的bootloader
STM32H7實現(xiàn)BootLoader內SDRAM的初始化注意事項
mm32-2nd-bootloader技術進階設計:實現(xiàn)Ymodem更新代碼
如何實現(xiàn)簡單的bootloader功能
評論