完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在QingKeV4_Processor_Manual文件的第30页,有描述架构编号寄存器(marchid),读取值为:0xDC68D886.
于是在CH32V103上尝试读取,调用core_riscv.c文件中的如下函数: uint32_t __get_MARCHID(void) { uint32_t result; __ASM volatile("csrr %0,""marchid": "=r"(result)); return (result); } __get_MARCHID(); 在程序中运行到这个函数时,似乎是卡死了。不知为何? 请问在CH32V103上如何正确操作,才能读取到架构编号寄存器 ( marchid )的值? |
|
相关推荐
1个回答
|
|
您好,我们的CH32V103是青稞V3A内核的处理器,marchid的值未进行设定,默认为0;
如果您想要读取的话,因为官方的EVT例程默认是工作在用户模式下运行的,当对内核的寄存器进行访问的时候,需要在中断或者机器模式下进行,否则会进hard fault; 关于进入机器模式的方法,在内核手册中有相应的说明,在启动文件startup_ch32v10x.s文件的初始化中把mstatus寄存器的MPP设置为0x3即可;相关改动如下: 已修改好的打印MARCHIP的例程已放在附件中,可以自行下载调试。 CH32V103_MARCHID.zip |
|
|
|
只有小组成员才能发言,加入小组>>
522 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2903 浏览 2 评论
2399 浏览 1 评论
868浏览 2评论
688浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
418浏览 1评论
523浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
814浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:10 , Processed in 0.932997 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号