1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请问我每次在线仿真时都会发现程序跑死在下边的函数的while()循环里,我的问题是出在哪了呢,有的人说现成堆栈越界看,可是我把范围改大了仍然没解决问题,请大侠们帮帮忙指导小弟一下吧,谢谢!!!
void rt_hw_hard_fault_exception(struct stack_context* contex) { rt_kprintf("psr: 0x%08x ", contex->psr); rt_kprintf(" pc: 0x%08x ", contex->pc); rt_kprintf(" lr: 0x%08x ", contex->lr); rt_kprintf("r12: 0x%08x ", contex->r12); rt_kprintf("r03: 0x%08x ", contex->r3); rt_kprintf("r02: 0x%08x ", contex->r2); rt_kprintf("r01: 0x%08x ", contex->r1); rt_kprintf("r00: 0x%08x ", contex->r0); rt_kprintf("hard fault on thread: %s ", rt_current_thread->name); #ifdef RT_USING_FINSH list_thread(); #endif while (1); } |
|
相关推荐
7个回答
|
|
告诉你个技巧,在线debug的时候,打开mdk的反汇编窗口,然后在此窗口中右击,选择 goto address 选项,然后找出根据rtt进入harddefault异常时所打印的信息,找出那个LR中数值,将其复制到 上面 goto address弹出的地址中去,然后点击确定就会跳转到出错的地方去。
你就可以找到事发现场了。 |
|
|
|
用的MDK 4.22,然后系统运行过程中,断点断下来再运行就出现这个问题?
如果是这样,请更换MDK的版本。 出现这个问题是因为系统出现异常了,导致系统运行不正确,出现了HardFault,这个地方就是把当前的信息给打印出来。最终串口输出的信息是什么? |
|
|
|
我用的是4.03版本的编译器,运行时没打断点,运行好长时间串口都没有反应,之后停止时就发现程序跳到while里出不来了,我要用串口2与GPRS模块进行数据的交互,请问我该怎么解决这个问题呢?
|
|
|
|
那么你先把上面的打印信息弄出来吧,打印信息上已经能够说明一些问题了
|
|
|
|
ro=0x00000000;
r1=0x10000000; r2=0x20000130; r3=0x00000001; r12=0x00000000; lr=0x08004B45; pc=0x08004B44; psr=0x81000000; hard fault on thread={0x67,0x70,0x72,0x73,0x00,0x00,0x00,0x00}; 以上是返回值,我是个新手不太明白具体该怎么分析了,麻烦您帮我分析一下呗,辛苦啦。 |
|
|
|
mark 一下,
另外一个疑问, rt_hw_hard_fault_exception里面有一句: if(exception_info)->exc_return & (1 << 2)) 我想说是不是1<<3? 看cortex手册 第三个bit才是判断是线程模式还是handler模式。第二个bit是区分堆栈。 诶, 我觉得我好像没犯低级失误啊。。。 lr的返回值就三种, 0xfffffff1, 0xfffffff9, 0xfffffffd. 要看进hard fault前是在thread还是handle, 就看第四个bit (bit 3) 不是应该是1<<3 么? (EXC_RETURN[3]) hard fault里面也写得很清楚 ; get current context TST lr, #0x04 ; if(!EXC_RETURN[2]) MRSNE r0, msp ; get fault context from handler. MRSEQ r0, psp ; get fault context from thread. |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
683 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2521 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1314 浏览 0 评论
1915 浏览 0 评论
1494 浏览 0 评论
74890 浏览 21 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 03:16 , Processed in 0.639774 second(s), Total 51, Slave 45 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号