WCH沁恒单片机
直播中

李萍

7年用户 1439经验值
私信 关注
[问答]

CH573一旦跑到startup_CH573.s的csrr mstatus就会reset是为什么?

这个问题折腾了我好几天了,实在不解
我写了个带 dfu 的boot, 这里实现跳转到用户的firmware



我gdb在这里打断点,然后 set $pc = 0x20000,continue 以后没问题,但是如果让他正常跑,跳过去以后好像一旦跑到 startup_CH573.s 的 csrr mstatus就会reset

0x20000 我已经放了合法的固件,user firmware 的 ld 也改了

实在是不能理解为什么 gdb 手动跳就没问题,jalr 跳过去就有奇怪的我呢提
  

回帖(1)

李牧喜

2022-9-2 09:22:24
CH573官方的例程里面, 代码都是跑在用户模式,如果需要跳转有下面两种方式:
1,在中断里面跳转
2,boot的启动文件修改一下,让boot 的代码运行在机器模式:
举报

更多回帖

发帖
×
20
完善资料,
赚取积分