新手请教关于hardfault怎么查

发布于 2013-06-30 11:28:07
自己加了几个线程,以前都好着,然后一个线程(mech)加了点比较复杂的运算,就让其他线程hardfault了
看不太明白下面输出的是什么含义,psr、pc、lr等都是什么意思呢?求高手指点一下现在该怎么查。
跟线程的优先级、时间片有没有关系呢?
谢谢大家~~~
psr: 0x21000000
pc: 0xdeadbeee
lr: 0x0801edd3
r12: 0x0000000a
r03: 0x0000000c
r02: 0x08000a2b
r01: 0x00000038
r00: 0x00000001
hard fault on thread: rwfls
thread pri status sp stack size max used left tick error
-------- ---- ------- ---------- ---------- ---------- ---------- ---
tshell 0x14 suspend 0x00000114 0x00001000 0x00000114 0x0000000a 000
tidle 0x1f ready 0x000000e4 0x00000200 0x000000e4 0x0000001b 000
mech 0x12 ready 0x00000160 0x00001000 0x00000160 0x00000005 000
rwfls 0x12 ready 0x00000168 0x00001000 0x00000168 0x00000005 000
rcgnz 0x12 suspend 0x00000318 0x00001000 0x00000368 0x00000005 000

查看更多

关注者
0
被浏览
2.4k
6 个回答
bernard
bernard 2013-06-30
LR、PC分别是寄存器的值,后面的是线程的列表。rwfls是当前出错的线程
lisn0416
lisn0416 2013-06-30
LR、PC分别是寄存器的值,后面的是线程的列表。rwfls是当前出错的线程

能不能再详细一些呢?知道了这些寄存器的值,去程序哪里看问题出在什么地方呢……
或者哪里有相关的内容可以学习呢?别笑话我……
lisn0416
lisn0416 2013-06-30
ARM cortex-M 系列 HardFault的诊断

感谢~~这部分代码应该加在什么位置呢?
lisn0416
lisn0416 2013-07-01
ARM cortex-M 系列 HardFault的诊断

我把那部分代码加进cpuport.c里面了,打印出来没有任何新的诊断内容呀……

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览