STM32(Cortex-M3)启动过程(入口地址)
来源:互联网 发布:淘宝紫檀手串真假 编辑:程序博客网 时间:2024/04/28 12:37
ARM7和ARM9启动时从绝对地址0X00000000开始执行复位中断程序,即固定了复位后的起始地址,但中断向量表的位置是可变的。
Cortex-M3内核规定中断向量表中第一个32位数据内容为栈顶地址,第二个32位数据内容则是复位中断向量的入口地址。
这样CPU复位后会自动从中断向量表中第二个32位数据中取出复位中断向量的入口地址,PC就跳转到中断服务程序。这也就是为什么调试的时候程序会直接跳到0x08000144(中断向量表中第二个32位数据为0x08000145),而不是停在0x08000000。
Cortex-M3的中断向量表的结构是固定的,而位置的地址是可变的。
Cortex-M3的初始中断向量表有三个位置,通过BOOT引脚进行启动设置。
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。中断向量表定位于FLASH区,复位后PC=0x80000000.
BOOT1=0 BOOT0=1 从系统存储器启动(相当于厂家在存储器中固化了BOOTLOADER),这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1从内置SRAM启动,这种模式可以用于调试。这种模式下,中断向量表位于SRAM区,起始地址为0x20000000.复位为PC=0x20000000.
当STM32复位完成后,可通过设置VECTOR_TABLE,将中断向量表放置在任何地方。
0 0
- STM32(Cortex-M3)启动过程(入口地址)
- CORTEX-M3的学习(1)——STM32启动代码
- Cortex-M3启动分析
- cortex m3 启动文件
- STM32(Cortex-M3)中断优先级
- STM32 中断优先级(Cortex-M3)
- GD32F130FXP6学习笔记五:cortex-m3系列的启动过程
- STM32(Cortex-M3)开发,RVDS和MDK谁优谁劣?
- STM32 独立看门狗使用经验(Cortex-M3)
- cortex-m3启动代码详解
- Cortex-M3启动代码分析
- Cortex-M3(1)
- STM32(Cortex-M3)中的优先级概念
- STM32(Cortex-M3)中的优先级概念
- STM32(Cortex-M3)中优先级的概念
- STM32(Cortex-M3)中的优先级概念
- STM32(Cortex-M3)中的优先级概念
- STM32(Cortex-M3)中的优先级概念
- 【学习笔记】加密技术之公钥与RSA
- 电源管理-> 同步压降稳压器和开关电源
- Android四种Activity的加载模式
- linux常用命令
- FusionCharts参数说明
- STM32(Cortex-M3)启动过程(入口地址)
- PHP缩略图的生成
- 求矩形交集的面积
- Jquery实现拖拽
- 解决runtime error R6025
- WCF发布遇到权限问题及解决
- PCL VS2010 配置
- 编译移动端服务器jetty3.1步骤和编译错误解决
- IPv4 和 IPv6 头部结构主要区别