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

文章目录

  • 1.说明:
  • 2.解析:
  • 3.将其改为4字节对齐:

1.说明:

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

temp &= 0xfffffff8;

2.解析:

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

操作系统内核代码中字节对齐temp &= 0xfffffff8;解析_第1张图片
并且在《M3权威指南》中,我们可以查得堆栈指针必须4字节对齐,
操作系统内核代码中字节对齐temp &= 0xfffffff8;解析_第2张图片
在这里插入图片描述

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

temp &= 0xfffffff8;

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

temp &= 0xfffffffc;

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

你可能感兴趣的:(嵌入式软件开发)