打印
[文档下载]

Nuvoton单片机调试

[复制链接]
1229|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cowboy2014|  楼主 | 2016-5-4 22:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、用keil debug调试Nano系列MCU时,偶尔进入HardFault_Handler中程序死掉了。
   原因:
   1)定义变量时的类型是char,外部文件调用时声明的是extern int,同一变量定义与外部声明不一致而导致错误。
   2)用DMA时,1byte传输,数据手册中要求地址要字对齐,由于是外设与内存之间使用dma,定义的数组在程序中换了定义的位置结果导致数据不正确,debug时还进入HardFault_Handler中,调整数组定义的地址就可以了。

摘抄总结:
        Cortex-M3/4的Fault异常是由于非法的存储器访问(比如访问0地址、写只读存储位置等)和非法的程序行为(比如除以0等)等造成的。常见的4种异常及产生异常的情况如下:
        Bus Fault:在fetch指令、数据读写、fetch中断向量或中断时存储恢复寄存器栈情况下,检测到内存访问错误则产生Bus Fault。
        Memory Management Fault:访问了内存管理单元(MPU)定义的不合法的内存区域,比如向只读区域写入数据。
       Usage Fault:检测到未定义指令或在存取内存时有未对齐。
沙发
yiyigirl2014| | 2018-8-13 19:00 | 只看该作者
多谢分享,看来保持一致很重要,做好数据类型规划太重要了。

使用特权

评论回复
板凳
zhuomuniao110| | 2018-8-14 07:57 | 只看该作者
遇到过一次后来不知道怎么就好了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

821

帖子

5

粉丝