操作系统内核代码中字节对齐temp &= 0xfffffff8;解析

1.说明:

在操作系统内核代码中,对于任务堆栈有如下操作:

temp &= 0xfffffff8;

2.解析:

这一句话的作用是让堆栈进行8字节对齐。关于字节对齐的概念如下:
参考:https://blog.csdn.net/cclethe/article/details/79659590

在这里插入图片描述
并且在《M3权威指南》中,我们可以查得堆栈指针必须4字节对齐,
在这里插入图片描述
在这里插入图片描述

3.将其改为4字节对齐:

temp &= 0xfffffff8;

作用是8字节对齐,但是在cortex-m3/m4架构上,只需要4字节对齐即可,因此我们将其改为

temp &= 0xfffffffc;

发现4字节对齐后操作系统工作正常

猜你喜欢

转载自blog.csdn.net/wcc243588569/article/details/117871684