阅读RT-Thread源码的时候,注意到一个细节,程序内存栈的生长方向应该是向下的,那么程序内存栈的栈顶指针应该是栈最低地址。
然而在CPU接口的源码中,栈顶指针的地址是栈地址 + 栈大小, 思考了一会儿才明白,程序内存栈的栈空间确实是从高地址向下生长,但是线程栈并不是程序内存栈,而是程序内存栈中的一个区间,该区间仍然遵循自下而上的栈生长方式。
阅读RT-Thread源码的时候,注意到一个细节,程序内存栈的生长方向应该是向下的,那么程序内存栈的栈顶指针应该是栈最低地址。
然而在CPU接口的源码中,栈顶指针的地址是栈地址 + 栈大小, 思考了一会儿才明白,程序内存栈的栈空间确实是从高地址向下生长,但是线程栈并不是程序内存栈,而是程序内存栈中的一个区间,该区间仍然遵循自下而上的栈生长方式。