HPM系列 MCU RISC-V内核支持指令集
RISC-V ISA 看到这些有点懵逼,详细查了一下资料才知道其具体含义:参考链接:Nuclei_N级别指令架构手册 - RISC-V MCU文档中心 (riscv-mcu.com)
RISC-V指令集基于模块化设计,可以根据配置进行灵活组合。Nuclei N级别处理器内核支持的是如下模块化指令集:
-
RV32架构:32位地址空间,通用寄存器宽度32位。
-
I:支持32个通用整数寄存器。
-
M: 支持整数乘法与除法指令
-
C:支持编码长度为16位的压缩指令,提高代码密度。
-
A:支持原子操作指令。
-
F:支持单精度浮点指令。
-
D:支持双精度浮点指令。
-
N:支持用户异常和中断在用户模式下处理。
-
P:支持数字信号处理指令。
按照RISC-V架构命名规则,以上指令子集的组合可表示为RV32IMAC, RV32IMFC, RV32IMAFDC,RV32IMAFDCNP等。RISC-V架构定义IMAFD为通用组合(General Purpose),以字母G表示,因此RV32IMAFDC也可表示为RV32GC。
使用 sdk 的 cmake 配置时,默认使用 rv32imac,不支持浮点运算
# set ses project compile option sdk_ses_compile_options("-mabi=ilp32") #default config sdk_ses_compile_options("-march=rv32imac") #default config
如果需要支持浮点运算需要配置为 rv32gc,支持单精度与双精度浮点运算
sdk_ses_compile_options(-mabi=ilp32d) sdk_ses_compile_options(-march=rv32gc) sdk_ses_compile_options("-mext-dsp")
RISC-V ABI 可配置选项:参考链接:RISC-V Options (Using the GNU Compiler Collection (GCC))
RISC-V简介
RISC-V简介 - RISC-V MCU文档中心 (riscv-mcu.com)
HPM系列支持的指令集
本文来自博客园,作者:求隐,转载请注明原文链接:https://www.cnblogs.com/duguqiuying/articles/17951726