美文网首页
MCU Hardfault

MCU Hardfault

作者: 紫軒遊_夢 | 来源:发表于2018-11-01 20:25 被阅读0次

    Hardfault错误

    查看SP寄存器,定位出错原因。

    定义一个全局变量,在可能出错的地方赋值不同,以此定位错误原因。

    Scatter压缩解压缩

    ROM常量和code

    RAM全局变量和

    起始地址字节未4字节对齐定义错误导致的。

    应该对每个区域进行起始地址和长度的合理分配。

    注意寄存器只读,只写操作。对于此种情况,不要做读写的额外操作。

    system_init里做SCB->SHCSR改动,不直接进hardfault。

    野指针赋值操作等

    大数组超过栈大小,用内存申请

    共享资源加锁,以防资源并发被共用,被另一个进程的数值改变。

    递归函数内部的局部变量导致栈溢出。

    inline函数,用于一句话执行句子,可不用再SP LR重新赋值,压栈操作。

    内存申请非空判断操作,以防对空指针操作导致的异常。

    注意锁和解锁匹配使用,特别是函数中异常推出的出口,记得解锁。

    编译器未报出错误的类型传参导致的hardfault

    相关文章

      网友评论

          本文标题:MCU Hardfault

          本文链接:https://www.haomeiwen.com/subject/umhfxqtx.html