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系列支持的指令集

 

 

posted @ 2024-01-08 09:44  求隐  阅读(94)  评论(0编辑  收藏  举报