看官网上CH32V203的简介, 支持单周期乘法和硬件除法, 请问在代码中如何实现? 是否要调用什么函数?
热门产品 :
CH585: 集成高速USB和NFC的蓝牙MCU
看官网上CH32V203的简介, 支持单周期乘法和硬件除法, 请问在代码中如何实现? 是否要调用什么函数?
您好,若MCU硬件支持单周期乘法和硬件除法(如CH32V203),工程上需要勾选M扩展,如下图1,编译器会自动将C的乘除法转换为div和mul指令。若不勾选,编译器会将乘除法转换为库函数实现方式。若你要实现求正余弦之类功能,需要调用math.h,同时注意添加math库路径,如下图2 。后续若有问题,可通过邮箱和我沟通(lzs@wch.cn)
图1
图2
您的回答非常有参考价值,非常感谢!
RVM扩展对应的编译选项是什么, -rvm?还是-m?
经过对比发现,这个RVM好像是开启一些内置宏。
__riscv_div=1
__riscv_fdiv=1
__riscv_mul=1
__riscv_muldiv=1
不知道对不对
-march=rv32imac这个是传递给编译器的参数,其中的m就是对应的RVM乘除法扩展。