我看起来很头脑。
在__mmap_switched:
.long init_thread_union + THREAD_START_SP @ sp //for stack pointer
THREAD_START_SP在“thread + info.h”中定义为THREAD_SIZE(8192) - 8
设置堆栈大小8KB(8129)和减去8byte。
为什么减去8byte?
我怀疑,我认为DA(减少之后)对吗?
答案 0 :(得分:2)
对齐的8个字节是APCS中的要求。
在APCS中,第5.2.1节“堆栈”,
堆栈还必须符合公共接口的以下约束:
SP mod 8 = 0.堆栈必须是双字对齐的。
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.swdev.abi/index.html