完善资料让更多小伙伴认识你,还能领取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、堆栈初始化的时候就会自动的计算出栈顶指针,其实就是堆栈数组的最高地址,如下图: |
|
|
|
解释的很清楚,谢谢了!
|
|
|
|
只有小组成员才能发言,加入小组>>
813 浏览 0 评论
1162 浏览 1 评论
2535 浏览 5 评论
2871 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2719 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1111浏览 3评论
198浏览 2评论
465浏览 2评论
379浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
461浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 18:36 , Processed in 1.368637 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号