rt_thread出现hard fault on thread:

发布于 2021-02-05 09:53:55

keil5仿真出现hardfault,起初以为是数组越界什么的,仔细检查代码没有找到问题,无奈看串口打印的数据,如下:

psr: 0x21000000
r00: 0x2000fac8

r01: 0x10000000
r02: 0xf0000000
r03: 0x00000020
r04: 0x20002474
r05: 0x20002564
r06: 0x00000001
r07: 0x00000000
r08: 0xbdb165b9
r09: 0xdeadbeef
r10: 0xdeadbeef
r11: 0xdeadbeef
r12: 0x0000000a
 lr: 0x08014b33
 pc: 0x08014b32
hard fault on thread: get_R_va

请问大神们这打印的数据是什么意思?我怎么定位到进入hardfault之前的代码,也就是导致死机的代码处?不胜感激

查看更多

关注者
0
被浏览
328
4 个回答
fengying06
fengying06 2021-02-05

版本如下

 \ | /
- RT -     Thread Operating System
 / | \     3.0.3 build Feb  3 2021
 2006 - 2018 Copyright by rt-thread team
HappyTime
HappyTime 2021-02-05

这种一般是 数组越界 非法内存操作引起的吧。先检查一下这个get_R_va线程中有没有异常操作。

YFDI_3560
YFDI_3560 2021-02-05

检查下IPC没初始化就使用了?

答案在风中飘
答案在风中飘 认证专家 2021-02-18

直接在这个hardfault的汇编代码处打断点,看callstack,可以看到是执行到哪死的

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览