ARM linux内核头 - 常见

时间:2011-10-24 10:37:19

标签: linux-kernel arm

我看起来很头脑。

在__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(减少之后)对吗?

1 个答案:

答案 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