juzibaba 发表于 2018-12-14 14:40:47

HardFault问题求助

HardFault求助

硬件方案:LPC1788
软件平台:KEIL472 RTX
问题: 运行几个小时会莫名跳HardFault,时间不固定。

错误日志如下:

APNT209上说的参考BFAR的值,不晓得这个值意义什么,还有这精确的总线异常请问是啥意思?

2call stack视图如下


原先设计是一个任务rt_mutex_wait ,结果进SVC_Handler后跳到rt_mutex_release里面去了。


请大佬帮忙看看,谢谢啦!

补充:
1、没有使用优先级组
2、优先级SVC 31PENDSV SYSTICK 32
3、RTX_CONFIG里面的ISR FIFO QUeue size 16 不知道跟这个有么有关系
4、rtx支持ITM调试怎么玩

eric2013 发表于 2018-12-14 17:45:08

出现这种问题,先排查,可以仅创建1个任务测试的。

调试直接上Event Recorder
http://www.armbbs.cn/forum.php?mod=viewthread&tid=87176&extra=page%3D1

juzibaba 发表于 2018-12-14 17:53:49

eric2013 发表于 2018-12-14 17:45
出现这种问题,先排查,可以仅创建1个任务测试的。

调试直接上Event Recorder


谢谢提醒,我试试看你说的工具

myxiaonia 发表于 2018-12-14 23:58:01

rt_mutex_wait 不应该在任务中使用,应该用os前缀的

juzibaba 发表于 2018-12-17 09:01:18

myxiaonia 发表于 2018-12-14 23:58
rt_mutex_wait 不应该在任务中使用,应该用os前缀的

谢谢,我确认下

juzibaba 发表于 2018-12-17 09:06:46

myxiaonia 发表于 2018-12-14 23:58
rt_mutex_wait 不应该在任务中使用,应该用os前缀的

用的就是带前缀的 打印信息是通过SVC调用执行的实际函数

#define os_mut_init(mutex)         _os_mut_init((U32)rt_mut_init,mutex)
#define os_mut_release(mutex)      _os_mut_release((U32)rt_mut_release,mutex)
#define os_mut_wait(mutex,timeout) _os_mut_wait((U32)rt_mut_wait,mutex,timeout)

juzibaba 发表于 2018-12-17 13:58:54

eric2013 发表于 2018-12-14 17:45
出现这种问题,先排查,可以仅创建1个任务测试的。

调试直接上Event Recorder


请问rtx4怎么在MDK5上看任务的运行情况,你发的例子没太看懂。。。

eric2013 发表于 2018-12-17 15:43:01

juzibaba 发表于 2018-12-17 13:58
请问rtx4怎么在MDK5上看任务的运行情况,你发的例子没太看懂。。。

不能看栈使用情况了,其它都正常。

myxiaonia 发表于 2018-12-19 20:26:11

juzibaba 发表于 2018-12-17 09:06
用的就是带前缀的 打印信息是通过SVC调用执行的实际函数

#define os_mut_init(mutex)         _os_mut ...

rtx的运行时库在使用printf这个标准库是有问题的,建议不要用printf,而是自定义的打印函数

juzibaba 发表于 2018-12-20 09:10:08

myxiaonia 发表于 2018-12-19 20:26
rtx的运行时库在使用printf这个标准库是有问题的,建议不要用printf,而是自定义的打印函数

OK,谢谢提醒!
页: [1]
查看完整版本: HardFault问题求助