我正在为开发板设计一个工具链: Sabre-lite,它基于飞思卡尔的iMX6q四核处理器,我正在尝试为这个工具链寻找合适的选择。
现在我知道iMX6基本上是一个cortex A9处理器,它有vfpv3和neon协处理器,也有矢量图形,2D甚至3D引擎。
然而,发行说明和使用指南文档并没有太清楚地说明如何启用在gcc中可以启用的任何选项。
事实上,我可以“玩”的选项如下。
-march= armv7-a - ok this one is pretty obvious.
-mfpu= vfpv3/neon - i can use only the vfpv3 co-processor, or both (respectively, depends on option)
-mfloat-abi=softfp/soft/hard - I guess I can choose hard here, as there is hardware for fp operations
-mcpu=cortex-a9 - is it option even necessary? it is not clear if it just an alias for -march or something else.是否还有其他我应该启用的选项?为什么工具链具有默认选项来构建linux内核/uboot/包,如下所示:
-march= armv7-a -mfpu= vfpv3 -mfloat-abi=softfp谢谢你的帮助
发布于 2013-02-20 01:30:16
使用-mthumb -O3 -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mvectorize-with-neon-quad -mfloat-abi=softfp。请注意,默认情况下,编译器不会使用霓虹灯向量化浮点操作,因为霓虹灯不支持非规格化数字。如果你不介意失去一些精度,你可以通过添加-ffast-math开关让gcc使用霓虹灯进行浮点运算。
发布于 2015-05-07 06:35:34
我不能回答所有问题,但'--softfp‘意味着使用FPU,但要保持与不使用FPU的代码的兼容性。
https://stackoverflow.com/questions/14962447
复制相似问题