完善资料让更多小伙伴认识你,还能领取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 |
|
|
|
只有小组成员才能发言,加入小组>>
254 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2735 浏览 2 评论
2250 浏览 1 评论
请问一下CH573的PA9引脚用作TMR0功能可以做输入捕获用来进行红外解码吗?
1278浏览 7评论
BLE-Dongle与CH9141-A核心板进行双向透传,无法接收到串口数据怎么解决?
485浏览 7评论
221浏览 4评论
mounriver编译ch579M通过,但是找不到链接库是为什么?
432浏览 3评论
主机NRF52832从机ch9141,ch9141断电后无法发送数据怎么解决?
403浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 04:18 , Processed in 0.663317 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号