RISC-V学习整理
目前网上关于risc-v架构概念介绍的文章比较多,本文从开发角度把学习中的记录整理出来。
以下为作者为自学记录内容,文章仅抛砖引玉,有学习需要的同学还需以官网及risc-v专家的书籍为准。
有错误欢迎指出,共同学习进步。
RISC-V:
- RV32I RV32E
RV32G表示RV32IMAFD
I – 32位地址空间,32个通用寄存器
M – 整数乘,整数除
A – 原子操作指令
F – 单精度浮点
D – 双精度浮点
C – 压缩指令,长度16 - RISC-V仅支持小端
RISC-V不支持地址自增自减
RISC-V有2条无条件跳转指令,6条条件跳转指令
汇编部分:
1.伪操作,汇编结束伪操作就结束
2. .option rvc 表示接下来的汇编程序可以被汇编生成16位宽的压缩指令
.option norvc 表示接下来的汇编程序不可以被汇编生成16位宽的压缩指令
3. li 赋值
la 标签地址赋值
中断和异常:
- 广义中断和异常都称为异常
同步:非法地址空间,访问地址属性,取指非对齐,非法指令,断点
异步:外部中断(精确),读写存储器(非精确) - 异常发生 --> 硬件更改寄存器 --> 软件读取寄存器判断 --> 异常处理
系统会读取mcause寄存器判断何种异常从而跳转异常处理
RISC-V硬件不会保存上下文,需要软件保存和