fans-rt 任务调度-堆栈切换篇(3)关于cortex-m3堆栈的入栈顺序说明

来源:互联网 发布:葫芦娃爷爷 知乎 编辑:程序博客网 时间:2024/05/22 05:04

cortex-m3 STM32 MCU支持单条PUSH/POP指令对多个寄存器执行入栈出栈操作,入栈顺序按照寄存器编号的反序进行入栈,不以用户的编码顺序进行入栈(因为操作码以mask值运算),例如:


PUSH {R0-R3}PUSH {R1, R0, R2, R3}PUSH {R3, R1, R2, R0}PUSH {R3, R1-R0}
四种写法的执行结果是完全一致的,指令执行后,堆栈镜像如下:

0x20000000:    R00x20000004:    R10x20000008:    R20x2000000C:    R3
在编写fans-rt的中断入口函数时应特别加以注意。



0 0
原创粉丝点击