介紹
考慮到瑞薩的MCUBoot的ROM占用和某些客戶的需求,本篇主要講述在不使用瑞薩MCUboot驅(qū)動下,如何實現(xiàn)簡單的bootloader功能。
主要內(nèi)容
在寫代碼之前,首先必須規(guī)劃Boot和App的存放位置,如下圖。我使用的是R7FA2L1AB2DFM,有256K的ROM。我把Boot從0x00開始存儲,預(yù)計存儲7K左右;App從0x4000開始存儲。為了在仿真時區(qū)分Boot和App,這里選擇了點亮LED的方式來區(qū)分,當(dāng)只亮一個LED時表示當(dāng)前是Boot在運行,當(dāng)兩個LED交替閃爍時代表App在運行。
BOOT工程:
1創(chuàng)建一個boot工程,添加UART和Flash驅(qū)動,F(xiàn)lash驅(qū)動只選Code Flash Programming,選擇只亮一個LED燈來區(qū)別BOOT和APP。
2編寫代碼,實現(xiàn)串口接收串口助手發(fā)來的APP.bin
3當(dāng)串口接收完后,用Flash驅(qū)動把接收到的數(shù)據(jù)寫到APP存儲的rom地址。這里我選擇把APP存在0x4000
4調(diào)用下圖函數(shù),實現(xiàn)APP跳轉(zhuǎn)。注意,跳轉(zhuǎn)前先把所有運行的驅(qū)動關(guān)閉。
5編譯,可對比得出,精簡版bootloader只是用了7K左右的rom,比使用了MCUboot后的ROM占用少5K。
APP工程:
1實現(xiàn)APP的功能邏輯代碼,這里我選擇是使用GPT定時器,讓開發(fā)板的兩個LED燈交替閃爍。
2通過文本打開fsp.ld文件,添加紅框位置的語句,地址與BOOT工程的跳轉(zhuǎn)地址對應(yīng)。這個步驟的目的是為了讓APP工程以0x4000這個地址作為起始地址,它的向量表也會以這個地址作為基準(zhǔn)來存儲。
3編譯并生成bin文件。
仿真調(diào)試:
仿真BOOT工程,在PC端用串口助手燒錄APP.bin,可以看到開發(fā)板從一開始只亮一個LED到兩個LED交替閃爍。
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17638瀏覽量
357076 -
ROM
+關(guān)注
關(guān)注
4文章
577瀏覽量
86744 -
bootloader
+關(guān)注
關(guān)注
2文章
238瀏覽量
46262
原文標(biāo)題:RA2L1精簡版Bootloader的使用
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
如何去實現(xiàn)基于STM32L0的簡單Bootloader呢
如何在STM32F103C8上實現(xiàn)一個簡單的bootloader
研究下stm32基于BootLoader的IAP功能
4510 bootloader的實現(xiàn)與分析
BootLoader_BootLoader是什么
ARM Bootloader 的實現(xiàn)C 和 ASM 混合編程

STM32系統(tǒng)bootloader的應(yīng)用有哪些

【MCU】BootLoader的簡單介紹

幾種MCU bootLoader的實現(xiàn)方案

在STM32F103C8上實現(xiàn)一個簡單的bootloader

STM32H7實現(xiàn)BootLoader內(nèi)SDRAM的初始化注意事項

mm32-2nd-bootloader技術(shù)進階設(shè)計:實現(xiàn)Ymodem更新代碼

評論