stm32 - Cortex

stm32 - Cortex

  • 概念
    • [Cortex-M4 的工作模式和工作状态](#Cortex-M4 的工作模式和工作状态)
    • 寄存器

概念

Cortex-M4 的工作模式和工作状态

处理模式

当处理器发生了异常或者中断,则进入处理模式进行处理,处理完成后返回到线程模式

权限大,访问处理器中所有的资源

线程模式

芯片复位后,进入线程模式,执行普通用户程序

可以通过CONTROL寄存器进行控制,来切换权限

Thumb状态

正常运行时处理器的状态

调试状态

调试程序时处理器的状态

寄存器

通用寄存

用于数据处理

堆栈指针SP (特殊寄存器)

C语言栈空间

在Cortex-M4处理器中,堆栈指针(Stack Pointer,简称SP)用于管理函数调用时的堆栈。堆栈是一个后进先出(Last-In-First-Out)的数据结构,用于保存函数调用期间的局部变量、临时数据和返回地址等信息。

堆栈指针SP指向当前堆栈顶部的位置,它的值存储在特定的寄存器中。

当执行函数调用时,SP会先进行递减操作,将堆栈指针向下移动以分配新的堆栈帧,然后将函数的局部变量、参数和其他相关信息压入堆栈。

当函数返回时,SP会通过递增操作释放堆栈帧,将堆栈指针恢复到上一个函数的堆栈顶部。

通过使用堆栈指针SP,Cortex-M4处理器能够有效地管理函数调用期间的内存使用,避免不同函数之间的数据冲突,并确保函数返回时能正确恢复之前的执行状态。这对于嵌入式系统中的低功耗和高效性能非常重要。

连接寄存器

连接寄存器,用于存储子程序或函数调用的返回地址

程序计数器

存储下一条将要执行的指令的地址

相关推荐
应用市场17 小时前
STM32卡尔曼滤波算法详解与实战应用
人工智能·stm32·算法
djarmy19 小时前
使用定时器14(GPIOF9复用映射到TIM14_CH1)控制LED0闪烁实验
stm32·单片机·嵌入式硬件
GilgameshJSS20 小时前
STM32H743-ARM例程29-HTTP
c语言·arm开发·stm32·单片机·http
wanglong37131 天前
STM32单片机PWM驱动无源蜂鸣器模块C语言程序
stm32·单片机·1024程序员节
不脱发的程序猿1 天前
如何检测和解决I2C通信死锁
stm32·单片机·嵌入式·1024程序员节
hhh_li1 天前
Keil5 MDK安装Compiler Version5(即ARM Compiler 5,简称AC5)编译器
stm32
Despacito0o1 天前
Keil MDK-ARM 5.42a 完整安装指南(2025.4.19最新版)
arm开发·stm32·单片机·嵌入式硬件·物联网·51单片机·嵌入式实时数据库
来块小鱼饼干(≧^.^≦)1 天前
教你如何使用VSCode的EIDE插件开发STM32(包括任何ARM内核芯片)最详细教程
ide·vscode·stm32·arm·keil
LCMICRO-133108477461 天前
长芯微LDUM3160完全P2P替代ADUM3160,LDUM3160是一款采用ADI公司iCoupler® 技术的USB端口隔离器
网络·stm32·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程
趙小贞2 天前
UART 串口协议详解与 STM32 实战实现
stm32·单片机·嵌入式硬件·通信协议·1024程序员节