MSP主堆栈指针

1、MSP主堆栈指针是系统复位后默认使用的堆栈指针,通常用于处理内核和异常(如中断服务函数)的堆栈操作,MSP本身是CPU内部寄存器,记录当前栈顶位置。

Cortex-M内核实际上有2个堆栈指针:

MSP:主堆栈指针

PSP:进程堆栈指针,在简单的裸机系统中,不需要关心PSP。

芯片上电后,CPU会自动从Flash起始地址(0x0000 0000)读取MSP的初始值,然后将这个值加载到MSP寄存器中;这里为什么Flash的起始地址是0X0000 0000 而不是0X8000 0000?其实,这是同一个地址,只不过CPU看到的地址是地址别名或重映射之后的地址,而0X8000 0000是Flash的真实物理地址,GD32芯片内部有一个内存重映射的逻辑模块MMU负责实现。

2、ARM Cortex-M处理器在芯片上电复位时,有一个固定不变的硬件行为:就是从地址0X0000 0000读取MSP的初始值,并且从0X0000 0000读取复位向量的入口地址(PC指针)。

3、所有的异常(NMI不可屏蔽中断、硬件错误、SysTick等)都使用MSP

所有的中断服务函数(ISR)也使用MSP

如果没跑RTOS,main()函数也是用MSP。

如果MSP超出了分配的堆栈空间,访问非法内存区域,会触发MemMange Fault或HardFault。

4、NMI是不可屏蔽中断,优先级很高。

相关推荐
zlinear数据采集卡12 小时前
单点接地设计电路深度解析:从理论原理到ZLinear采集卡的低噪声实战
c语言·单片机·嵌入式硬件·fpga开发
嵌入式小站12 小时前
STM32 零基础可移植教程 15:ADC 多通道扫描,读取三路 PWM 的平均电压
stm32·单片机·嵌入式硬件
踏着七彩祥云的小丑12 小时前
嵌入式测试学习第 26 天:SPI通信协议基础、主从模式、速度特点
单片机·嵌入式硬件
hai31524754313 小时前
# FiveOS V5.0 交付(终极合成器版 · 物理合规修正)
人工智能·stm32·单片机·嵌入式硬件·神经网络
嵌入式ZYXC13 小时前
第6章:通信接口的硬件特性——为什么你的UART乱码、I2C死锁、SPI干扰大?
stm32·单片机·嵌入式硬件·物联网·智能硬件
三佛科技-1341638421214 小时前
AIP8P005B 与FT60E112A(8位I/O型单片机)对比分析,FT60E112A能否兼容替代AIP8P005B?
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
fffzd14 小时前
STM32:串口--轮询模式
stm32·单片机·嵌入式硬件·串口·hal库·轮询模式
municornm14 小时前
单片机IO不够?ULN2003A救急方案
单片机·嵌入式硬件
m0_6185262014 小时前
矩阵RGB三色LED驱动芯片CH466(SPI模式)
单片机·嵌入式硬件
染予14 小时前
实现功能:给stm32F427zgt6开发板配置网络,电脑可以ping通开发板
stm32·单片机·嵌入式硬件