完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
main函数中定义了几个简单任务:
uint32_t main(){ #if FIX_TASK_OVERFLOW==1 rt_thread_t low_tid = rt_thread_create("task_low", task_low, RT_NULL, 1024 * 8, 6, 20); if(low_tid){ rt_thread_startup(low_tid); } rt_thread_t middle_tid = rt_thread_create("task_middle", task_middle, RT_NULL, 2048, 5, 20); if(middle_tid){ rt_thread_startup(middle_tid); } rt_thread_t high_tid = rt_thread_create("task_high", task_high, RT_NULL, 1024 * 8, 2, 20); if(high_tid){ rt_thread_startup(high_tid); } #endif return 0; } 任务定义: void task_high(void *param) { while(1){ rt_thread_mdelay(100); } } void task_middle(void *param) { static uint32_t cnt = 0; while(1){ log_d("%s: %drn", __func__, cnt++); rt_thread_mdelay(500); } } void task_low(void *param) { static uint32_t cnt=0; while(1){ log_d("%s: %drn", __func__, cnt++); rt_thread_mdelay(500); } } 跑一会出现overflow: UART: open serial device: 0x800215cc with open flag: 0x0143 msh >[TEST]: task_low: 0 thread:task_mid stack overflow thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- task_hig 2 suspend 0x00000088 0x00002000 02% 0x00000014 000 task_mid 5 ready 0x00004568 0x00000800 25% 0x00000014 -02 task_low 6 suspend 0x00000088 0x00002000 06% 0x00000014 000 tshell 6 suspend 0x00000094 0x00000400 56% 0x00000008 000 at_svr 1 suspend 0x000000c8 0x00000800 09% 0x00000005 000 tidle 7 ready 0x000000d0 0x00000200 40% 0x0000000e 000 timer 4 suspend 0x00000078 0x00000200 23% 0x00000009 000 我看出现问题时,出问题的任务是超时状态,堆栈指针跑到了一个不属于自身任务堆栈地址空间, 系统是我在nano的基础上移植的,是不是移植出现问题,导致sp指针不合理? 请教我应该从哪个方向找问题原因呢? |
|
相关推荐
3个回答
|
|
很明显: 一个栈被破坏了,可能是其他的线程非法操作引起的
task_mid 5 ready 0x00004568 0x00000800 25% 0x00000014 -02 |
|
|
|
|
|
|
|
自身ram资源就不多吧,一个任务分配了那么多的内存
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
518 浏览 0 评论
1785 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2169 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2673 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
29048 浏览 11 评论
72133 浏览 21 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-9 03:27 , Processed in 0.727184 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号