问题来源:T507需要硬浮点编译链,目前制作文件系统的编译链不支持硬浮点计算,需要更换编译链, 这里我贴出了linaro的下载链接,有需要的自行下载即可Linaro Releases gcc-linaro-7.4.1-2019.02-x86_64_armv8l-linux-gnueabihf.tar.xz 由于更换文件系统的编译链复杂且风险过大,这里使用静态编译来脱离文件系统的限制 ./armv8l-linux-gnueabihf-gcc -static -mfloat-abi=hard -mfloat-abi=hard是调用硬浮点编译的参数 在编译带有浮点参数的函数时,有三种可能的编译选项:
-mfloat-abi=soft
-mfloat-abi=softfp
-mfloat-abi=hard
"soft"选项:表明不使用FPU硬件,而是使用GCC的整数算术运算来模拟浮点运算。
"softfp"选项:表明要使用FPU硬件来做浮点运算,只是,函数的参数传递到整数寄存器中,然后再传递到FPU中。
"hard"选项:表明要使用FPU硬件来做浮点运算,并且,函数的参数直接传递到FPU的寄存器中。 静态编译完成就可以在原文件系统中运行,且运行速度脚软浮点有提升 需要注意的是静态编译 1.程序体积会相对大一些 2.如果静态库需要更新,程序需要重新编译 3.如果多个应用程序使用的话,会被装载多次,浪费内存。 所以如果没有硬性的需求,尽量不替换编译链。 |
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-11-22 12:02
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.