很多时候,我们查看文档。文档上告诉我们cortex-M 系列是栈向下生长。但是向下生长是什么样的感觉呢?
例程:
进入add 函数后,会先压栈 再处理sp 指针。
修改完sp 指针位置,然后将sp 保存在 r7 寄存器,跳出函数时,只需要将r7 赋值给sp ,然后sp 减少416 字节,自然而然就回到保存r4,r5,r7,lr 的地方了。弹栈就可以回到上一层函数了。
到这里就理解栈增长方向了,并且压栈、压栈空间、弹栈、弹栈空间等概念了。
很多时候,我们查看文档。文档上告诉我们cortex-M 系列是栈向下生长。但是向下生长是什么样的感觉呢?
例程:
进入add 函数后,会先压栈 再处理sp 指针。
修改完sp 指针位置,然后将sp 保存在 r7 寄存器,跳出函数时,只需要将r7 赋值给sp ,然后sp 减少416 字节,自然而然就回到保存r4,r5,r7,lr 的地方了。弹栈就可以回到上一层函数了。
到这里就理解栈增长方向了,并且压栈、压栈空间、弹栈、弹栈空间等概念了。