ch32v203运行rtthread进入HardFault

具体log如下:

E/IRQ   [1589.218s] HardFault_Handler

E/IRQ   [1589.218s] mepc:000052f4

E/IRQ   [1589.218s] mcause:00000004

E/IRQ   [1589.218s] mtval:0000003f

在.lst文件的位置为:

报错的.lst文件如下

000052f0 :

    52f0: 8f8fd2ef          jal t0,23e8 <__riscv_save_0>

    52f4: 4950                lw a2,20(a0)

    52f6: 4d14                lw a3,24(a0)

    52f8: 5779                li a4,-2

    52fa: d918                sw a4,48(a0)

    52fc: c254                sw a3,4(a2)

    52fe: 01450713          addi a4,a0,20

    5302: c290                sw a2,0(a3)

    5304: cd18                sw a4,24(a0)

    5306: c958                sw a4,20(a0)

    5308: f03ff0ef          jal ra,520a

    530c: e57ff0ef          jal ra,5162

    5310:8fcfd06f          j240c <__riscv_restore_0>


我想问一下,问题大概出在哪里了


您好,根据mcause的值,应该是load指令访存地址不对齐导致的,可参考下贴介绍具体看一下,或可将你的工程发我(lzs@wch.cn)具体看一下。

https://www.cnblogs.com/wchmcu/p/17545931.html



邮箱发你了,可以看一眼


不是栈穿了,就是数组越界了。


只有登录才能回复,可以选择微信账号登录