硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1970|回复: 9
收起左侧

[RL-RTX] HardFault问题求助

[复制链接]

2

主题

19

回帖

25

积分

新手上路

积分
25
发表于 2018-12-14 14:40:47 | 显示全部楼层 |阅读模式
HardFault求助

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

错误日志如下:
错误日志.png
APNT209上说的参考BFAR的值,不晓得这个值意义什么,还有这精确的总线异常请问是啥意思?

2  call stack视图如下

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


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

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-12-14 17:45:08 | 显示全部楼层
出现这种问题,先排查,可以仅创建1个任务测试的。

调试直接上Event Recorder
http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

2

主题

19

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2018-12-14 17:53:49 | 显示全部楼层
eric2013 发表于 2018-12-14 17:45
出现这种问题,先排查,可以仅创建1个任务测试的。

调试直接上Event Recorder

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

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2018-12-14 23:58:01 | 显示全部楼层
rt_mutex_wait 不应该在任务中使用,应该用os前缀的
回复

使用道具 举报

2

主题

19

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2018-12-17 09:01:18 | 显示全部楼层
myxiaonia 发表于 2018-12-14 23:58
rt_mutex_wait 不应该在任务中使用,应该用os前缀的

谢谢,我确认下
回复

使用道具 举报

2

主题

19

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 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)
回复

使用道具 举报

2

主题

19

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2018-12-17 13:58:54 | 显示全部楼层
eric2013 发表于 2018-12-14 17:45
出现这种问题,先排查,可以仅创建1个任务测试的。

调试直接上Event Recorder

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-12-17 15:43:01 | 显示全部楼层
juzibaba 发表于 2018-12-17 13:58
请问rtx4怎么在MDK5上看任务的运行情况,你发的例子没太看懂。。。

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

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2018-12-19 20:26:11 | 显示全部楼层
juzibaba 发表于 2018-12-17 09:06
用的就是带前缀的 打印信息是通过SVC调用执行的实际函数

#define os_mut_init(mutex)         _os_mut ...

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

使用道具 举报

2

主题

19

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2018-12-20 09:10:08 | 显示全部楼层
myxiaonia 发表于 2018-12-19 20:26
rtx的运行时库在使用printf这个标准库是有问题的,建议不要用printf,而是自定义的打印函数

OK,谢谢提醒!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 02:58 , Processed in 0.230969 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表