RTT各种错误排查(个人方法)

  1. 试图切入ARM状态造成的用法Fault
    问题:1.可能是内存泄漏 程序中有野指针,导致堆栈破坏;
    个人工程中 排查发现为数组拷贝溢出数组大小,野指针导致堆栈破坏。
    相应报错可能有:
    1.RT_ASSERT 断言死机
    2.rt_object_get_type((rt_object_t)thread) == RT_Object_Class_Thread) has assert failed at
    都是内存泄漏,导致其他变量被改写。导致错误。
    3.使用memchec命令 打印Memory block wrong:
    怀疑到内存管理算法问题,改变内存管理算法。报错会不一样哦。
  2. sr: 0x00000000
    r00: 0x20001268
    r01: 0x10000000
    r02: 0xf0000000
    r03: 0x00000000
    r04: 0x0801a130
    r05: 0x0801a130
    r06: 0x00000000
    r07: 0x0000008c
    r08: 0x00000000
    r09: 0x00000000
    r10: 0x00000000
    r11: 0x00000000
    r12: 0x00000000
    lr: 0x080120f7
    pc: 0x20000170
    hard fault on handler

usage fault:
SCB_CFSR_UFSR:0x02 INVSTATE
在这里插入图片描述

其实就是试图切入ARM状态造成的用法Fault。但是CM组件无效,系统初始化失败。这种问题个人排查为:线程堆栈不足导致。可以对相应文件选择不优化与最小优化编译后看看能不能用。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值