資料介紹
STM32 MCU中的Bootloader實(shí)現(xiàn)
在這里,我已經(jīng)解釋了如何在 STM32 中編寫我們的自定義引導(dǎo)加載程序。
A bootloader is an application whose primary purpose is to allow the systems software that has to be updated without using any specialized hardware such as a JTAG programmer.
The bootloader manages the system's images.
It receives new program information externally via some communication means and writes that information to the program memory of the processor.
Bootloader Structure
The above figure shows a Bootloader for the microcontroller to program it. A bootloader is an optional way to program the application firmware onto the device.
STEP 1:
Creating New Projects
We are going to create two separate projects for implementing a bootloader using STM32CubeIDE. If you are a beginner, Here is an example to create a new project in stm32CubeIDE.
L0_APP1 Project - Bootloader
L0_APP2 Project - User Application
STM32CubeIDE 中的項(xiàng)目
第2步:
分離閃存
我們需要根據(jù) MCU 內(nèi)存布局將內(nèi)存部分分開(kāi)。就我而言,我使用的是 STM32L0 微控制器。單擊此處獲取數(shù)據(jù)表,并在此處找到STM32L0 的硬件用戶手冊(cè)。
我把它從總的閃存大小分成了兩部分。
?
1. Bootloader 0x8000000 - 0x08008FFF 2. User Application 0x8009000 - 0x0802FFFF
?
下圖描述了閃存映射,
閃存映射
第 3 步:
將此部分分離到源代碼中。
將此源添加到引導(dǎo)加載程序和用戶應(yīng)用程序以切換內(nèi)存地址
?
uint32_t go_address = *((volatile uint32_t*) (MEM_ADDR+ 4)); void (*jump_to_app)(void) = (void *)go_address; jump_to_app();
?
在我的例子中,內(nèi)存地址,
引導(dǎo)加載程序,
?
#define MEM_ADDR 0x08009000
?
用戶申請(qǐng)
?
#define MEM_ADDR 0x08000000
?
為各自的項(xiàng)目添加以上內(nèi)容。MACRO
步驟4:
Changing the Vector Table OFFSET for User Application as per your separated memory sections. Bootloader OFFSETremains the same,
To change the OFFSETplease go to the below file,
L0_APP2\Src\system_stm32l0xx.c
VECT_TAB_OFFSET
STEP 5:
Change the ORIGIN to keep the bootloader section erasable while we are uploading the User application program from STM32CubeIDE.
To change the ORIGIN, please go to the below file,
L0_APP1 \STM32L073RZ_FLASH.ld
STM32L073RZ_FLASH.ld
connect the board to your computer and flash the application source code into your STM32 microcontroller one by one.
Here we go we are done with all changes. we can write our bootloader application program in the L0_APP0 project.
It is possible to write two different applications and able to switch alternatively depending on user applications.
我創(chuàng)建了兩個(gè)基本項(xiàng)目。我想這可以讓您很好地理解引導(dǎo)加載程序的概念。
最后,這是切換在同一個(gè) STM32 微控制器中運(yùn)行的兩個(gè)應(yīng)用程序的輸出。
輸出
NOTE :在從一個(gè)應(yīng)用程序切換到另一個(gè)應(yīng)用程序之前,請(qǐng)確保禁用所有 ISR 并使用外圍設(shè)備
?
- 創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL)
- 如何在Cortex-M0+單片機(jī)中自定義ASFv3 SAM-BA自舉程序
- AN5405_STM32 引導(dǎo)加載程序中使用的 FDCAN 協(xié)議
- AN4286_STM32 引導(dǎo)加載程序中使用的SPI協(xié)議
- C#與STM32自定義通信協(xié)議
- Xilinx基本自定義OpenRISC系統(tǒng)硬件教程 93次下載
- 如何在LabVIEW中實(shí)現(xiàn)自定義控件 48次下載
- STM32二級(jí)菜單通過(guò)按鍵切換自定義任務(wù)OLED顯示的程序和工程文件 48次下載
- 如何在STM32微控制器引導(dǎo)加載器中使用USART協(xié)議的詳細(xì)資料說(shuō)明 4次下載
- 將DSP物理連接到USB主機(jī)上的USB引導(dǎo)加載程序 8次下載
- AVR編寫1602自定義字符 1次下載
- DOS下自定義時(shí)間重啟 6次下載
- 1602自定義字符 1次下載
- 在Protel中自定義Title Block的方法 0次下載
- 自定義函數(shù)測(cè)試學(xué)習(xí)工程
- AWTK 開(kāi)源串口屏開(kāi)發(fā)(18) - 用 C 語(yǔ)言自定義命令 469次閱讀
- TSMaster 自定義 LIN 調(diào)度表編程指導(dǎo) 714次閱讀
- 博途用戶自定義庫(kù)的使用 1002次閱讀
- 基于YOLOv8的自定義醫(yī)學(xué)圖像分割 813次閱讀
- IAR下手動(dòng)拷貝自定義程序段到RAM中執(zhí)行的方法分享 2163次閱讀
- 添加自定義屬性控制fridaserver啟動(dòng)和停止 1785次閱讀
- AN-2058: ADuCM355用戶引導(dǎo)加載程序 1023次閱讀
- 什么是自定義序列 1221次閱讀
- 自定義特性能做什么? 846次閱讀
- 如何自定義函數(shù)或局部腳本 1481次閱讀
- 如何在Vivado中更改自定義的Interface 2947次閱讀
- HarmonyOS 中的幾個(gè)自定義控件介紹 2280次閱讀
- Python學(xué)習(xí)要點(diǎn):自定義序列實(shí)現(xiàn)切片功能 702次閱讀
- 如何在樹(shù)莓派4上安裝新的引導(dǎo)加載程序 5865次閱讀
- 如何給EOS賬號(hào)設(shè)置自定義權(quán)限 1496次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開(kāi)發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開(kāi)發(fā)包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎(chǔ)模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開(kāi)發(fā)板資料
- 34.89 MB | 1次下載 | 免費(fèi)
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè)
- 3.32 MB | 1次下載 | 免費(fèi)
- 8聯(lián)想A820t手機(jī)維修圖紙包括主板原理圖 尾板原理圖 點(diǎn)位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 383次下載 | 免費(fèi)
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說(shuō)明
- 0.50 MB | 94次下載 | 1 積分
- 4長(zhǎng)虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開(kāi)發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強(qiáng)型場(chǎng)效應(yīng)晶體管的數(shù)據(jù)手冊(cè)
- 0.11 MB | 28次下載 | 2 積分
- 8長(zhǎng)虹液晶彩電LS29機(jī)芯的技術(shù)資料說(shuō)明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191388次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論