STM32单片机程序启动
来源:互联网 发布:彻地钉db数据 编辑:程序博客网 时间:2024/05/24 05:10
ARM7和ARM9内核启动时从绝对地址0X00000000开始执行复位中断程序,即固定了复位后的起始地址,但中断向量表的位置是可变的。
STM32内核则不同,M3内核规定起始地址必须存放栈顶地址,第二个地址必须是复位中断向量的入口地址,这样CPU复位后会自动从下一个32位地址取出复位中断向量的入口地址,PC就跳转到中断服务程序,所以M3是固定了中断向量表的位置而起始地址是可变的。
M3的中断向量表有三个位置,通过BOOT引脚进行启动设置。
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。中断向量表定位于FLASH区,复PC=0x80000000.
BOOT1=0 BOOT0=1 从系统存储器启动(相当于厂家在存储器中固化了BOOTLOADER),这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。这种模式下,中断向量表位于SRAM区,起始地址为0x20000000.复位为PC=0x20000000.
所以,若电路板将BOOT引脚配置为BOOT1=X,BOOT0=0,则程序一定从0x80000000开始执行。
0 0
- STM32单片机程序启动
- STM32单片机学习(8) 程序加密
- 疯狂单片机--用C++写STM32程序-STM32PIN
- 疯狂单片机--用C++写STM32程序-OLED
- 在stm32 单片机程序中使用printf()进行串口调试
- STM32单片机串口下载程序的简单原理和设置
- 51单片机最小系统使用stm32开发板下载程序
- STM32 从用户程序中启动 BootLoader
- STM32单片机学习笔记
- stm32单片机时钟理解
- STM32单片机常用库函数
- STM32单片机工作日记
- 详细解析STM32单片机
- STM32单片机学习汇总
- STM32单片机总结
- STM32单片机知识汇总
- STM32/8单片机相关
- 对于stm32单片机的
- 网络编程序列2——C#TCP服务端代码实现一
- asp.net 微信jsapi支付
- CAP定理
- openssl移植
- 排序的稳定性和时间复杂度
- STM32单片机程序启动
- 第十周—小学生数学考试系统2
- TextView使用SpannableString设置复合文本
- 定义几个常见的术语(tkinter,Python3.x)
- Python-numpy逻辑报错:The truth value of an array with more than one element is ambiguous
- Android Context完全解析,你所不知道的Context的各种细节
- 【leetcode】199. Binary Tree Right Side Viewti
- split命令分割大文件
- mvp下RecyclerView下拉刷新上拉加载Demo