提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、riscv是什么?
RISC-V是一种开源指令集架构(ISA),支持多种拓展指令,有基本指令集和扩展指令集组成,具有以下特点。
-
简单性:RISC-V架构采用精简指令集(RISC)设计理念,指令集相对简单,易于理解、实现和优化。
-
可扩展性:RISC-V架构支持可扩展性,允许开发者根据需求自由地添加新的指令集扩展,从而满足各种应用的需求。
-
开放性:RISC-V是开源的,没有专利限制,任何人都可以自由地使用、修改和分发,这使得它成为了开源处理器设计和实现的重要基础。
-
易于实现:RISC-V架构的指令集相对简单,易于实现,同时开发者还可以根据需求自由选择硬件实现方式,如FPGA、ASIC等。
-
移植性:RISC-V架构具有极高的移植性,可在不同的处理器架构上实现,并且可以运行在不同的操作系统上。
-
多语言支持:RISC-V架构支持多种编程语言,如C、C++、Rust等,开发者可以根据自己的需求选择适合自己的编程语言。
其与ARM架构最大的不同在于模块化设计,以及开放性
二、架构学习
1.指令学习
一些常见的指令和伪指令如下:
2.寄存器学习
通用寄存器
riscv架构共有32个通用寄存器,记x0-x31,图中表明了各寄存器的作用,有几个寄存器有特殊的用法,下面将对介绍:
- ra:ra寄存器是调用返回的地址,在实现栈回溯功能时有较大作用,ra保存的地址-4就是函数跳转指令,可以回溯函数整个调用流程。
- sp:栈指针,启动时赋值指向栈顶。
- gp:用于管理全局变量数据。
- tp:用于多线程的上下文切换。
csr寄存器
学习csr寄存器必须要了解的是riscv架构的三种特权模式,也就是M模式、U模式、S模式。
- 在 M 模式下运行的 hart 对内存, I/O 和一些对于启动和配置系统来说必要的底层功能有着完全的使用权。因此它是唯一所有标准RISC-V 处理器都必须实现的权限模式。
- 因为 M 模式可以自由地访问硬件平台。更常见的情况是,不能信任所有的应用程序代码,因为不能事先得知这一点,或者它太大,难以证明正确性。因此, RISC-V 提供了保护系统免受不可信的代码危害的机制,也就是U模式。
- S 模式比 U 模式权限更高,但比 M 模式低。与 U 模式一样,支持虚拟内存。
注意
1、hart 是 硬 件 线 程(hardware thread)的缩略形式。
2、三种特权模式,分别有着各自的csr寄存器,但是一般情况下异常处理都在m模式下进行处理。
M模式csr寄存器介绍
总结
1、简单介绍了RISC-V架构的一些特点。
2、列举riscv常见汇编指令。
3、简单介绍riscv的通用寄存器和csr寄存器的功能及特点。