完善资料让更多小伙伴认识你,还能领取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的例程已放在附件中,可以自行下载调试。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
350 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
863 浏览 0 评论
1461 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3418 浏览 2 评论
2822 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1808浏览 1评论
1461浏览 1评论
350浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
863浏览 0评论
468浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 09:29 , Processed in 0.705886 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3417