【STM32】stm32启动流程

STM32的内存架构

在《ARM Cortex-M3权威指南》中有关M3的存储器映射,因为Cortex-M3是32位的单片机,因此其PC指针可以指向2^32=4G的地址空间,也就是图中的 0x00000000到0xFFFFFFFF的区间,也就是将程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内,数据字节以小端格式存放在存储器中。不同的型号Flash 和 SRAM 的地址空间不同,起始地址都是一样的。

在这里插入图片描述

当STM32微控制器复位(无论是上电复位、软件复位还是外部复位)时,它会从内存映射中的一个特定地址开始执行代码。这个地址通常是0x00000000,这是ARM架构中程序计数器(PC)的起始地。0x00000000地址是STM32微控制器中的一个虚拟地址,它被用作代码执行的起始点。在复位后,微控制器会自动将这个地址指向内置Flash的起始位置,使得程序可以从Flash中的第一个字节开始执行。

在这里插入图片描述

Cortex-M3 内核规定,起始地址必须存放栈顶指针,而第二个地址则必须存放复位中断入口向量地址,这样在 Cortex-M3 内核复位后,会自动从 起始地址的下一个 32 位空间 取出复位中断入口向量,跳转执行复位中断服务程序。Cortex-M3 内核固定了中断向量表的位置, 但是起始地址是可变化的。

STM32的三种启动模式

STM32有三种启动模式:FLASH启动、SRAM启动和系统存储器启动,通常三种启动方式由外部引脚boot0和boot1的电平决定。每个系列boot0和boot1电平对应的意义可能不同,下表是STM32F4xx系列的启动方式选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值