完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
1 寄存器组
在Keil调试界面也可以看到:
1.1 R0~R12 R0~R12为通用目的寄存器,其中:R0-R7为低组寄存器,字长32位,由于指令中可用的空间有限,绝大多数16位指令只能访问低组寄存器;R8-R12为高组寄存器,字长32位,只有很少的16位Thumb指令可以访问它们。 注意:32位Thumb-2指令可用访问所有通用寄存器,R0~R12复位后的初始值未知。 1.2 堆栈指针R13(SP, Stack Pointer) CM3/4处理器内核中有两个堆栈指针: 主堆栈指针MSP(SP_main):缺省的堆栈指针,它由OS内核、异常服务例程以及所有需要特权访问的应用程序代码来使用,MSP的初始值在复位时从SRAM中的第一个字中取出(向下生长的满栈)。 进程栈指针PSP(SP_process):用于常规的应用程序代码(不处于异常服用例程中时),PSP初始值未定义。 裸机一般只用MSP,用到OS时才会使用PSP。 当引用R13时,引用到的是当前正在使用的那一个,另一个必须用MRS/MSR指令来访问。 堆栈指针的选择由特殊寄存器CONTROL(后面会说到)决定。 堆栈指针访问堆栈时的操作: 堆栈由一块连续的内存和一个栈顶指针组成,用于实现LIFO的缓冲区。典型应用:在数据处理前先保存寄存器的值,任务处理完后再从堆栈中恢复先前保护的值。 OS中上下文切换时的保护现场与恢复现场,就是用堆栈来保存和恢复数据的。
|
|
|
|
|
基于米尔MYC-LR3576开发板的实时视频识别系统设计与实现
304 浏览 0 评论
飞凌嵌入式ElfBoard-文件I/O的深入学习之阻塞I/O与非阻塞I/O
466 浏览 0 评论
大神们,想知道你们都用什么ide编程调试器? Arduino IDE?还是 e2studio ?还有其他吗?哪个好用呢
580 浏览 0 评论
865 浏览 0 评论
837 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 06:59 , Processed in 0.713096 second(s), Total 66, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖