stm32 - Cortex
概念
Cortex-M4 的工作模式和工作状态
处理模式
当处理器发生了异常或者中断,则进入处理模式进行处理,处理完成后返回到线程模式
权限大,访问处理器中所有的资源
线程模式
芯片复位后,进入线程模式,执行普通用户程序
可以通过CONTROL寄存器进行控制,来切换权限
Thumb状态
正常运行时处理器的状态
调试状态
调试程序时处理器的状态
寄存器
通用寄存
用于数据处理
堆栈指针SP (特殊寄存器)
C语言栈空间
在Cortex-M4处理器中,堆栈指针(Stack Pointer,简称SP)用于管理函数调用时的堆栈。堆栈是一个后进先出(Last-In-First-Out)的数据结构,用于保存函数调用期间的局部变量、临时数据和返回地址等信息。
堆栈指针SP指向当前堆栈顶部的位置,它的值存储在特定的寄存器中。
当执行函数调用时,SP会先进行递减操作,将堆栈指针向下移动以分配新的堆栈帧,然后将函数的局部变量、参数和其他相关信息压入堆栈。
当函数返回时,SP会通过递增操作释放堆栈帧,将堆栈指针恢复到上一个函数的堆栈顶部。
通过使用堆栈指针SP,Cortex-M4处理器能够有效地管理函数调用期间的内存使用,避免不同函数之间的数据冲突,并确保函数返回时能正确恢复之前的执行状态。这对于嵌入式系统中的低功耗和高效性能非常重要。
连接寄存器
连接寄存器,用于存储子程序或函数调用的返回地址
程序计数器
存储下一条将要执行的指令的地址