发 帖  
原厂入驻New
UCOSIII任务堆栈和STM32堆栈增长方向是否一致?
94 UCOSIII STM32
分享
1.原子哥说:堆栈是在RAM中按照“先进先出(FIFO)”的原则组织的一块连续的存储空间   
个人理解堆栈难道不是栈的一种,既然如此,栈的顺序应该是先进后出吧?[理解来自数据结构]
2.最近看UCOSIII的原子哥视频,发现视频里这块儿没讲,UCOS里的堆栈方向是向上增长,而32里是向下[摘自原子哥],这样会不会冲突呢?
我所尝试的理解:这两个堆栈占用的是互不相关的两个存储空间////

@发烧友 @mygod @Admin @伟好好学习
0
2020-4-23 03:51:36   评论 分享淘帖 邀请回答

相关问题

8个回答
这里我把最新的理解更新到这里啊!!!!  
函数OSTaskCreate()中的参数p_stk_base是任务堆栈基地址,那么如果CPU堆栈是向上增长的话,那么CPU堆栈基地址就是&START_TASK_STK[0],如果CPU堆栈是向下增长的话,那么CPU堆栈基地址就是&START_TASK_STK[START_STK_SIZE-1]
而我们的CPU___STM32的堆栈是向下增长的!
2020-4-23 08:31:00 评论

举报

UCOSIII堆栈按照STM32设置的向下增长的!仔细看《UCOSIII的开发手册》哪里写了堆栈是FIFO的?
2020-4-23 08:39:16 评论

举报

ucosiii 里面可以配置栈的生长方向
2020-4-23 08:46:38 评论

举报

堆栈时先进后出的,栈都是先进后出的,只有队列是先进先出的,各个堆栈的空间地址相互之间没有关系,是由编译器决定的,移植在STM32上的UCOSIII一定是向下生长的,他必须与处理器的生长方向一样,堆栈的生长方向由处理器本身决定,UCOSII与UCOSII中均有选择开关,向上生长还是向下,例如51堆栈就是向上生长的,但他们的堆栈分配与进出原理是一样的,理解他可以在纸上画图理解一下,如果想深入理解UCOS最好买一本书《嵌入式实时操作系统UCOSIII》是UCOS作者写的,有中文版的,并且阅读源码,有问题可以联系我,与我共同探讨QQ: 3030895463
2020-4-23 08:58:27 评论

举报

可能PPT有点出入:
我这里总结下大家说的:UCOSiii里堆栈的增长方向(我)配置的是START_TASK_STK[0],应该叫做   向下增长     如图所示 [可能我们名字叫法上有出入]
32的堆栈方向是向下增长。  [√]
2020-4-23 09:14:18 评论

举报

非常感谢,应该是这样的~   顺便看下我对一楼的回复哈~
2020-4-23 09:24:20 评论

举报

这种问题不要太纠结,发烧友的资料可能表述不清楚吧,那可能是他自己的理解,买一本我说的那本书,书上说的很详细,最好熟读源码,会用就行,在实际中用的也不多
2020-4-23 09:37:04 评论

举报

http://www.openedv.com/thread-43810-1-1.html
看下这个帖子我的回复吧~
谢谢了~
2020-4-23 09:56:24 评论

举报

只有小组成员才能发言,加入小组>>

262个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表