首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lpc1788中硬故障的原因分析

lpc1788中硬故障的原因分析
EN

Stack Overflow用户
提问于 2014-05-02 14:49:19
回答 1查看 1.3K关注 0票数 1

我一直在开发一个在lpc1788上移植了大量GUI库的固件。我使用32 MB SDRAM处理字体和图像,使用NAND闪存存储字体和bmp的二进制文件以及设备配置数据。

我已经禁用了使用故障,MemManage故障和总线故障。因此,有时当任何GUI功能出错时,执行就会出现严重错误。现在,我所使用的图形用户界面库是emWin,我无法知道是什么函数导致了硬故障。如果NAND闪存被破坏,库试图获取任何要显示的内容,比如背景图像,那么它就会出现严重故障。我可以处理这种情况,因为我可以肯定地知道(通过一些带有标志的代码实现)我的NAND闪存已经损坏,我需要将二进制文件重新编程到其中,因为如果不这样做,每当设备启动时,它就会出现严重故障。

但是,如果其他一些例程导致硬错误,那么我实际上不应该重新编程整个闪存的全部。因此,如果我知道导致硬故障的原因,我将能够相应地修改处理程序,决定是否需要重新编写它,或者只是修改一些参数,然后继续进行最后的已知配置。

有没有办法确定什么功能导致了硬故障,运行时间?即使是地址也足够了。这能办到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-02 16:07:06

实现一个报告堆叠寄存器的硬故障处理程序。PC寄存器将指示异常发生的执行地址。

可以找到这里的一个例子,尽管在这个示例中使用printf可能是不明智的;您可能想要一些直接写到UART的东西--系统已经坏了--让诊断出来所需的代码越少越好。类似的解决方案这里只需将值复制到变量,并要求您在调试器中设置断点来检查它们。

要查看报告的PC地址上的代码,可以参考编译器的映射和列表输出文件,或者直接将地址输入调试器中的PC寄存器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23430963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档