网站首页 > 文章精选 正文
- 寄存器介绍
包括R0-R12 的通用寄存器,一般R0-R3 用来做参数传递,R7 用来存放系统调用号。
SP(R13)为栈指针一个为MSP,一个为PSP。同一时刻只能用一个,MSP reset后默认的模式,系统中断模式时也是用的这个MSP,可以通过Control寄存器来判断当前用的是哪个
LR(R14)寄存器用来存放好函数调用执行完时的返回地址。比如A函数,在第二行调用B函数,在调用B函数时先将第四行的指令放到LR寄存器中,等B函数执行完就加载LR中的寄存器到PC中继续执行。
PC(R15) 寄存器,当前执行的指令。
PSR,PRIMASK,FAULTMASK,BASEPRI,CONTROL 这几个特殊寄存器。需要用MSR MRS 来读写。
PSR,xPSR 用来存放一些程序执行状态, 如APSR NZCVQ 算术状态位。
IPSR 低四位用来存放当前的中断号。
EPSR 用来存放一些多时钟周期指令执行时(LDR,STM),被中断打断时的下个指令。
PSR实际是一个32位的寄存器,逻辑上分成了APSR, IPSR,EPSR。
PRIMASK,FAULTMASK,BASEPRI 这三个都是和中断屏蔽相关的
PRIMASK 屏蔽所有优先级可配置的中断。
FAULTMASK 屏蔽除了NMI以外的所有中断。
BASEPRI 可以设置一个优先级,然后屏蔽所有低于这个设置的优先级的中断。
CONTROL 寄存器就三个位,
2,指示当前FPU是否在使用中,1,SP当前用的是MSP还是PSP。0,软件是否是特权模式。
猜你喜欢
- 2025-07-14 Cortex-M3内核进阶之注解 startup.s 文件
- 2025-07-14 【教程】一文搞懂STM32启动文件(stm32f4启动文件区别)
- 2025-07-14 如何使用GCC手动编译stm32程序(stm32 gcc printf)
- 2025-07-14 BB是报警的声音(bb响报警应该设置多少)
- 2025-07-14 深度长文:STM32是如何软硬件结合,编译后怎么样一步步运行起来
- 2025-07-14 年轻的朋友速来看教你一招电脑蓝屏详解
- 2025-07-14 电脑蓝屏代码大全和解决方法(电脑蓝屏代码大全及解决方案)
- 2025-07-14 电脑蓝屏代码大全(电脑蓝屏代码大全图表)
- 2025-07-14 BIOS报警声解译(bios报警声音大全)
- 2025-07-14 读取时间的速度(读取速度和什么有关)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)
- fmt.println (52)