R13寄存器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 为什么是4字节对齐? • 因为Cortex-M3是一个32位的处理器,内部的数据路径是32位的,寄存器是32位的,存储器
接口也是32位的。32位也就是4个字节,所以堆栈采用4字节对齐。
堆栈的PUSH 与POP
• Cortex‐M3 使用的是“向下生长的满栈”模型。堆栈 指针SP 指向最后一个被压入堆栈的32位数值。在 PUSH时,SP 先自减4,再存入新的数值。
改为MSP,退出异常时切换回到PSP,并且从进程堆栈上弹出数据。
4字节对齐
• Cortex-M3堆栈指针的最低两位被硬件线路连接到0,所以最低两位永远是0。 • 这意味着堆栈总是4字节对齐的,也就是说他们的地址必须是0x4,0x8,0xc……
堆栈指针增加或减小都是以4为最小单位的,也就是说指针最小移动4个字节的地址。
堆栈的PUSH 与POP
LOGO
2020
谢谢观看
Pure and fresh and enterprise template
Lorem ipsum dolor sit amet, consectetur adipiscingelit. Ut efficitur
END
2020
LOGO
R13寄存器
PLAY
R13寄存器简介
在Cortex-M3中,寄存器R13是堆栈指针SP,在程序中可以把R13写作SP,并且PUSH指令和POP指令默 Biblioteka 使用SP。MSP与PSP简介
• R13有两个堆栈指针MSP和PSP,但任一时刻只能使用其中的一个。 • 主堆栈指针MSP:用于复位后和异常处理。 • 进程堆栈指针PSP:一般由用户应用程序代码使用。 • MSP与PSP之间的切换是自动的,就在出入异常服务例程时由硬件处理。 • 进入异常时的自动压栈使用的是PSP,将数据压入进程堆栈,进入异常后,才自动
相关文档
最新文档