完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在发烧友的第7讲 UCOSIII任务管理(中)中有如下内容:
函数OSTaskCreate()中的参数p_stk_base是任务堆栈基地址,那么如果CPU的堆栈是向上增长的话那么基地址就&START_TASK_STK[0],如果CPU堆栈是向下增长的话基地址就是&START_TASK_STK[START_STK_SIZE-1]STM32的堆栈是向下增长的! 问题在于,既然STM32的堆栈是向下增长的,那么堆栈的基地址就应该是&START_TASK_STK[START_STK_SIZE-1],为什么所有例程中的堆栈基地址都是&START_TASK_STK[0]呢? 视频中这一段给跳过了,请哪位给指点一下.....谢谢! |
|
相关推荐
2个回答
|
|
1、UCOSIII里面的这个基地址的意思和UCOSII里面不一样,这里说的基地址就是堆栈的起始地址!那不就是START_TASK_STK[0]。UCOSIII源码里面的参数注释解释的很清楚!!!跟堆栈生长方向没关系,UCOSIII中在操作堆栈的时候会在计算出堆栈的栈顶地址的!然后操作栈顶地址!
2、堆栈初始化的时候就会自动的计算出栈顶指针,其实就是堆栈数组的最高地址,如下图: |
|
|
|
解释的很清楚,谢谢了!
|
|
|
|
只有小组成员才能发言,加入小组>>
683 浏览 1 评论
2117 浏览 5 评论
2428 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2194 浏览 6 评论
2163 浏览 7 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
307浏览 9评论
295浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
431浏览 6评论
295浏览 5评论
344浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-23 14:44 , Processed in 0.864777 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号