我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 栈底 >

最近学习ucos2关于任务栈哪边是栈顶哪边是栈底的问题?

归档日期:07-23       文本归类:栈底      文章编辑:爱尚语录

  教材上的话:“.OSTCBStkBottom是指向任务堆栈栈底的指针。如果微处理器的栈指针是递减的,即栈存储器从高地址向低地址方向分配,则.OSTCBStkBottom指向任务使用的栈空间的最低地址。...

  教材上的话:“.OSTCBStkBottom是指向任务堆栈栈底的指针。如果微处理器的栈指针是递减的,即栈存储器从高地址向低地址方向分配,则.OSTCBStkBottom指向任务使用的栈空间的最低地址。”

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  bottom就像是一条界限,不管栈的方向是递增还是递减,top指针都不能越过bottom指针

  栈顶应该是指最开始压入的数据,栈底是指最後压入的数据,这样应该才能解释。

  我也是这么觉得的,我认为是作者的概念错了,虽然他代码逻辑上的实现并没有错

  展开全部这一段我纠结了很久很久,如果看多了会把最初对堆栈的理解全部推翻,查了很多资料也没找到权威的,也没有说出个所以然,因此我认为是作者从一开始就搞错了(当然也许我一直没有理解到位)。不要纠结栈顶栈底了,只要记住如果OS_STK_GROWTH ==1,堆栈就是用由高地址向地址增长,或说是堆栈递减,那么就要把堆栈起始地址赋给ptos就可以了;同样如果OS_STK_GROWTH == 0,堆栈就是由低地址向高地址长,或说是堆栈递增,那么仍然要把堆栈起始地址赋给ptos。

本文链接:http://apawoodbury.com/zhandi/360.html