基于env上的rtthread历程,写了一些应用代码,一顿操作后程序偶尔会出现hardfult错误,想定位错误代码。想问一下rics-v怎么跟踪错误,MounRiver怎么查看程序崩溃瞬间的堆栈值,pc的值。
查看: 3128
回复: 2
HardFault_Handler怎么分析解决
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
有什么调试方法吗,单步调试了好久了,分析不出原因
你好,可在HardFault函数中将以下3个状态寄存器的值打印看一下。mepc、mcause、mtval均为CSR寄存器,其中,mepc寄存器值为当前遇到异常时的指令 PC 值,或中断前下一条预执行的指令 PC 值,退出异常或中断后微处理器的返回地址保存在mepc中。mcause寄存器值为当前异常种类或中断编号值,可以通过该值查看引起异常的原因或判断中断的来源。mtval寄存器值主要反映引起当前异常的存储器访问地址或指令编码,当进入异常和中断时,硬件将自动更新mtval的值。关于这三个CSR寄存器的具体介绍,可参考我们QingKeV4微处理器手册,手册下载链接如下:
http://www.wch.cn/downloads/QingKeV4_Processor_Manual_PDF.html
同时为避免不必要错误LD文件里和下载配置里的FLASH和RAM大小分配要一致。后续有问题可把工程发我邮箱我这边测试一下yrl@wch.cn
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录