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