美文网首页
ARM Corte-M4函数调整自动压栈顺序

ARM Corte-M4函数调整自动压栈顺序

作者: Vandoul | 来源:发表于2019-03-16 11:54 被阅读0次

使用STM32F407做测试得到,压栈顺序如下:

PSR,PC,LR,R12,R3,R2,R1,R0,FPU下还有17个字的浮点寄存器

在进行保护现场的时候需要手动压栈的寄存器为:

R11,R10,R9,R8,R7,R6,R5,R4,FPU下还有16个字的浮点寄存器

关于LR是0xFFFFFFED的解释:返回线程模式,并使用线程堆栈(SP=PSP)

参考自原子的UCOS开发手册

[31:28]:返回标识,为0xF

[27:5]都为1

[4]:堆栈类型,硬件自动压栈大小,0=硬件自动压入26字(使用FPU),1=8字

[3]:0=返回进入Handler模式,1=返回后进入线程模式

[2]:0=从主堆栈中做出栈操作,返回后使用MSP,1=从进程堆栈中做出栈操作,返回后使用PSP

[1]:保留

[0]:0=返回ARM状态,1=返回Thumb状态。在CM3/CM4中必须为1

相关文章

  • ARM Corte-M4函数调整自动压栈顺序

    使用STM32F407做测试得到,压栈顺序如下: PSR,PC,LR,R12,R3,R2,R1,R0,FPU下还有...

  • 考研数据结构复习之栈(一)

    最简单的顺序栈: 完整代码: 测试函数: 测试结果:

  • 栈: 顺序栈 栈的应用:函数调用栈,表达式求值,括号匹配,浏览器的前进后退。相关code:https://gith...

  • ARM栈结构

    ARM 栈类型 根据栈生长方向,ARM的栈可分为递增堆栈和递减堆栈。 递增堆栈:栈向高地址生长 递减堆栈:栈向低地...

  • 数据结构之---栈

    数据结构之---栈 顺序栈 内部采用数组实现 结构图; 定义结构体: 函数声明 进栈以及出栈 图示: 其余操作 链...

  • 微信小程序 返回上一页并传参

    getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出pages[pages....

  • Largest Rectangle in Histogram

    求连续矩形最大面积,抓住一点,当如果有顺序的时候很容易求得结果,过意可以借助于栈来调整为有顺序。参考网上的解法。自...

  • React生命周期函数详解+例子

    周期函数定义引用自官方(以下函数的顺序顺序即生命周期函数的执行顺序) componentWillMount 在渲染...

  • 顺序栈的表示和实现

    顺序栈是指利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top...

  • 数据结构基础--顺序栈

    顺序栈的概念:顺序栈是栈的顺序实现。顺序栈是指利用顺序存储结构实现的栈。采用地址连续的存储空间(数组)依次存储栈中...

网友评论

      本文标题:ARM Corte-M4函数调整自动压栈顺序

      本文链接:https://www.haomeiwen.com/subject/bpgjmqtx.html