代码拉取完成,页面将自动刷新
通过riscv-gnu-toolchain-58c9d86使能multi-lib之后,编译出来的库包括如下组合,
float FPU_sin(float Radian){
int k;
float sin, a, b, x, pi = 3.141592653589793;
a = Radian*(float)512.0/((float)2.0*pi);
k = 0x1FF & ((int)a);
b = a - (int)a;
x = b * ((float)2.0*pi)/(float)512.0;
sin = FPUsinTable[k] + x*(FPUcosTable[k] + x*(-0.5*FPUsinTable[k] - (float)0.166667*x*FPUcosTable[k]));
return sin;
}
对于上面的代码,如果对于常量,如512.0等,强制类型转换,则可以调用fdiv.s指令,否则,会默认调用double库,也就是会先转成double,然后再计算,计算后再转会float。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
可以在GCC的编译选项中增加-fsingle-precision-constant,则常量就会编译成float类型。
但是Haawking IDE中使用的时候,需要在常量后面增加f标志,如512.0f。
登录 后才可以发表评论