您尚未登录。

楼主 # 2022-11-08 08:39:44

echo
会员
注册时间: 2020-04-16
已发帖子: 348
积分: 353.5

GCC 12把CSR相关指令放到扩展Zicsr中了

用GCC 12的时候提示找不到csrrw这些指令,查了下,原来20191213版本的spec把csr相关指令放到Zicsr扩展中了。原文如下:

While CSRs are primarily used by the privileged architecture, there are several uses in unprivi-
leged code including for counters and timers, and for floating-point status.
The counters and timers are no longer considered mandatory parts of the standard base
ISAs, and so the CSR instructions required to access them have been moved out of the base ISA
chapter into this separate chapter.

问题是,CSR中不光有计数器和定时器呀,还有别的寄存器,比如mstatus、mepc、mcause、mtvec等等,这些寄存器都是必不可少的。
扩展的意思是可以不用,难道不用Zicsr指令能构建一颗能用的MCU?退一步来说即使是定时器和计数器作为强制部分也没什么不妥,隔壁ARM的SysTick计数器也是核心的一部分。
RISC-V这个CSR感觉和51的SFR有点神似,标准定义访问这段空间的指令和一些通用的寄存器,厂家再根据自己的需要进行扩展,增加一些寄存器,但是访问这些寄存器的指令肯定是必不可少的,不太理解CSR访问指令为什么要作为扩展。大家怎么理解?

离线

#1 2022-11-08 10:01:42

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 446
积分: 313.5
个人网站

Re: GCC 12把CSR相关指令放到扩展Zicsr中了

>不太理解CSR访问指令为什么要作为扩展。大家怎么理解?

感觉还真可以不要

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn