完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在使用IAR调试freertos任务中,IAR自带了一个调试插件,启用这个插件会得到任务名、优先级、栈起始空间和栈顶位置,但是如何计算出每个任务具体使用了多少堆栈空间呢?还有就是在freertos中还需要看门狗吗?怎么实现
|
|
相关推荐
2个回答
|
|
你说的调试插件我没用过,但freertos查看任务堆栈的使用情况还是有方法的
最直接的方法就是使用freertos的堆栈溢出检测方案2,使用该方案后在创建任务时,系统会把任务堆栈的内容全部设为0xA5 每次任务切换前系统都会检查当前任务堆栈的最后20字节是否为0xA5,如果是则有很大的把握可以认为任务堆栈未溢出 如果想要查看任务堆栈压栈最深的位置,可以调用uxTaskGetStackHighWaterMark() 我一般是直接暂停仿真,然后看堆栈不为0xA5的位置,这个位置很有可能就是最深的压栈位置 如果想要准确知道压栈最深的位置,只能手动让任务进入堆栈使用最多的那个子函数里面,然后观察PSP的变化 |
|
|
|
这个方法我知道,可行,但是和可视化调试相比哪个更准确些
|
|
|
|
只有小组成员才能发言,加入小组>>
691 浏览 1 评论
2118 浏览 5 评论
2431 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2197 浏览 6 评论
2165 浏览 7 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
317浏览 9评论
299浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
435浏览 6评论
300浏览 5评论
349浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-26 00:33 , Processed in 0.637703 second(s), Total 46, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号