码迷,mamicode.com
首页 > 其他好文 > 详细

cortex-M3/M4死机位置判断

时间:2014-10-09 15:40:13      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   ar   sp   2014   问题   log   

    用了挺久的M4(nxp的),但是发现有一个问题挺让人讨厌的,就是程序死机了无法判断死机位置,之前看到一篇文章是通过查看SP LR等寄存器,看堆栈内容来查找。还要看memory里的地址再找函数地址,再看汇编代码。觉得很麻烦。ARM7内核还好判断一些(M3内核未验证,应该一样的知识M4多了个FPU)。

    偶然一次死机(数组越界)。发现在Call Stack居然直接保存了死机的函数名称和地址。非常滴方便啊,哈哈。直接右键calle stack就能看到函数死在哪儿了。网上很少看到关于死机判断位置的文章。不知道各位的程序是不死机呢?还是早就知道了,个人觉得挺好的所以分享了。具体请看图!

给0地址赋值让其死机:

int *a = 0;
*a = 3;

bubuko.com,布布扣

图1

死在DOWork函数里

 

 

bubuko.com,布布扣 

图2 右键点击Show Callee Code

bubuko.com,布布扣

图3

位置就在这里,三角箭头那儿 上面就是给0地址赋值的地方,汇编代码显示是在调用 Cmd Parse函数前发生的错误。

cortex-M3/M4死机位置判断

标签:style   blog   http   color   ar   sp   2014   问题   log   

原文地址:http://www.cnblogs.com/dadjun/p/4012663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!