完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
在使用IAR调试freertos任务中,IAR自带了一个调试插件,启用这个插件会得到任务名、优先级、栈起始空间和栈顶位置,但是如何计算出每个任务具体使用了多少堆栈空间呢?还有就是在freertos中还需要看门狗吗?怎么实现
|
|
相关推荐
2个回答
|
|
|
你说的调试插件我没用过,但freertos查看任务堆栈的使用情况还是有方法的
最直接的方法就是使用freertos的堆栈溢出检测方案2,使用该方案后在创建任务时,系统会把任务堆栈的内容全部设为0xA5 每次任务切换前系统都会检查当前任务堆栈的最后20字节是否为0xA5,如果是则有很大的把握可以认为任务堆栈未溢出 如果想要查看任务堆栈压栈最深的位置,可以调用uxTaskGetStackHighWaterMark() 我一般是直接暂停仿真,然后看堆栈不为0xA5的位置,这个位置很有可能就是最深的压栈位置 如果想要准确知道压栈最深的位置,只能手动让任务进入堆栈使用最多的那个子函数里面,然后观察PSP的变化 |
|
|
|
|
|
这个方法我知道,可行,但是和可视化调试相比哪个更准确些
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1021浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:30 , Processed in 0.695384 second(s), Total 77, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3396