搜索
bottom↓
回复: 6

【经验分享】CW10.x编译环境查找HardFault异常原因

[复制链接]

出0入0汤圆

发表于 2014-11-18 15:00:57 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_Robin 于 2014-11-18 15:19 编辑

已经遇到很多客户反映:CodeWarrior10.x编译环境调试Processor Expert软件生成的Kinetis芯片程序时经常会进入PE_ISR(Cpu_Interrupt) PE_DEBUGHALT中断,但仅从这个中断服务函数名上又无法辨别到底是什么原因导致的。参考以往问题反馈和同事Erich Styger的博文Debugging Hard Faults on ARM Cortex-M并经过几番尝试之后发现这往往是芯片由于各种原因导致的Hard Fault异常中断。在此与大家分享一下使用 CodeWarrior10.6编译环境调试PE生成的程序时,查找Hard Fault异常中断原因的方法。

此处简略介绍文档内容:
一、CodeWarrior10.x编译环境背景知识


二、Cortex M0+内核异常中断背景知识


三、人工查找HardFault异常原因
借鉴ARM官网专为Keil MDK编译环境提供的应用手册apnt209里提到的方法,在CodeWarrior10.x编译环境里展示:通过查看进入异常中断函数后的LR值来观察被栈入Main Stack 或 Process Stack的进入异常前的R0-R3,R12, LR, PC,PSR寄存器值。被栈入的LR链接寄存器存储着进入异常前调用的子程序地址信息,被栈入的返回地址PC寄存器存储着进入异常前将执行的那条代码。



四、程序查找HardFault异常原因
使用汇编代码在异常中断函数里将引起Hard Fault的代码地址或子程序地址存入R1寄存器以便大家观察。


完整文档及测试代码请下载:







PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2014-11-18 15:01:46 | 显示全部楼层
希望对使用飞思卡尔Kinetis微控制器遇到Hard Fault异常中断的用户有所帮助,不足之处还请大家在帖子中予以指出。

出0入0汤圆

发表于 2014-11-18 15:27:09 | 显示全部楼层
CW10.x编译器已经下载下来了,正准备使用的 软件有点大 工程需要转换

出0入0汤圆

发表于 2014-12-23 14:21:33 | 显示全部楼层
这种调试经验挺值得学习的 不错

出0入0汤圆

发表于 2014-12-23 14:28:33 | 显示全部楼层
这才是真金白银的干货,支持楼主

出100入101汤圆

发表于 2014-12-23 14:37:29 | 显示全部楼层
下载,慢慢学习!

出0入0汤圆

发表于 2015-2-17 12:58:40 | 显示全部楼层
谢谢楼主分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 14:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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