资料介绍
在这里,我已经解释了如何在 STM32 中编写我们的自定义引导加载程序。
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 中的项目
第2步:
分离闪存
我们需要根据 MCU 内存布局将内存部分分开。就我而言,我使用的是 STM32L0 微控制器。单击此处获取数据表,并在此处找到STM32L0 的硬件用户手册。
我把它从总的闪存大小分成了两部分。
1. Bootloader 0x8000000 - 0x08008FFF 2. User Application 0x8009000 - 0x0802FFFF
下图描述了闪存映射,
闪存映射
第 3 步:
将此部分分离到源代码中。
将此源添加到引导加载程序和用户应用程序以切换内存地址
uint32_t go_address = *((volatile uint32_t*) (MEM_ADDR+ 4)); void (*jump_to_app)(void) = (void *)go_address; jump_to_app();
在我的例子中,内存地址,
引导加载程序,
#define MEM_ADDR 0x08009000
用户申请
#define MEM_ADDR 0x08000000
为各自的项目添加以上内容。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.
我创建了两个基本项目。我想这可以让您很好地理解引导加载程序的概念。
最后,这是切换在同一个 STM32 微控制器中运行的两个应用程序的输出。
输出
NOTE :在从一个应用程序切换到另一个应用程序之前,请确保禁用所有 ISR 并使用外围设备
- 如何在Cortex-M0+单片机中自定义ASFv3 SAM-BA自举程序
- AN3156_STM32 引导加载程序中使用的 USB DFU 协议
- AN5405_STM32 引导加载程序中使用的 FDCAN 协议
- AN4286_STM32 引导加载程序中使用的SPI协议
- C#与STM32自定义通信协议
- Xilinx基本自定义OpenRISC系统硬件教程 93次下载
- 如何在LabVIEW中实现自定义控件 48次下载
- STM32二级菜单通过按键切换自定义任务OLED显示的程序和工程文件 48次下载
- 如何在STM32微控制器引导加载器中使用USART协议的详细资料说明 4次下载
- 将DSP物理连接到USB主机上的USB引导加载程序 8次下载
- AVR编写1602自定义字符 1次下载
- DOS下自定义时间重启 6次下载
- 1602自定义字符 1次下载
- 在Protel中自定义Title Block的方法 0次下载
- 自定义函数测试学习工程
- AWTK 开源串口屏开发(18) - 用 C 语言自定义命令 315次阅读
- TSMaster 自定义 LIN 调度表编程指导 389次阅读
- 博途用户自定义库的使用 639次阅读
- 基于YOLOv8的自定义医学图像分割 601次阅读
- IAR下手动拷贝自定义程序段到RAM中执行的方法分享 1349次阅读
- 添加自定义属性控制fridaserver启动和停止 1350次阅读
- AN-2058: ADuCM355用户引导加载程序 805次阅读
- 什么是自定义序列 1028次阅读
- 自定义特性能做什么? 700次阅读
- 如何自定义函数或局部脚本 1305次阅读
- 如何在Vivado中更改自定义的Interface 2658次阅读
- HarmonyOS 中的几个自定义控件介绍 2069次阅读
- Python学习要点:自定义序列实现切片功能 641次阅读
- 如何在树莓派4上安装新的引导加载程序 5638次阅读
- 如何给EOS账号设置自定义权限 1414次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多