RISC-V MCU中文社区

【分享】 GCC工具链编译的-mabi选项和-march选项

发表于 全国大学生集成电路创新创业大赛 2023-05-31 22:55:25
0
2241
2

队伍CICC2259 队员:刘宇轩 周嘉琪 冷思远

-march选项
-march可以指定目标RISC-V目标平台支持的模块化指令集组合,有效的选项值如下。
rv32i[m][a][f[d]][c]
rv32g[c]
rv64im][a][f[d]][c]
rv64g[c]
在上述选项值中,rv32表示目标平台是 32位架构,rv64表示目标平台是64位架构,i、m、a、f、d、c和g分别是 RISC-V 模块化指令子集的字母简称。我们要加入单精度浮点指令集,则需要在后面增添f
-mabi
-mabi可以指定RISC-V目标平台支持的ABI函数调用规则。在RISC-V中,定义了两种对于整数的ABI调用规则和四种对于浮点数的ABI调用规则。分别是整数的ilp32,lp64;浮点数的ilp32f,ilp32d,lp32f,lp64d。
本次项目中我们添加浮点指令集,应当改变GCC编译过程中的支持指令集架构选项,否则还是会用软件浮点来模拟浮点操作,硬件浮点的作用没有落到实处,所以我们的-mabi选项应该选择后缀f。综上,SDK的代码修改如下图所示。
DEFAULT_RISCV_ARCH ?= rv32imafc
DEFAULT_RISCV_ABI ?= ilp32f
图片alt
下图可以看出,在相同的地方,使用配置不同的GCC链编译的结果是不同的。
图片alt
图片alt

喜欢2
用户评论
zjq88584656

zjq88584656 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板