我正在使用gcc 6.3.0源代码构建arm-eabi-gcc
,目标是Atmel AT91SAM9G45处理器。
配置gcc构建时,我应该对cpu
/ arch
/ tune
标志使用什么?
使用--with-arch=armv9
返回Unknown arch used
。它似乎接受--with-cpu=armv9
,并且没有传递arch
标志,但我不确定这是否适合这个特定的CPU。它也接受--with-cpu=arm9
并且我不确定两者之间的区别是什么,或者是否适合我的CPU。
另外,我应该为--with-fpu
选项使用什么?我的软件不会使用任何浮点运算,因此我使用的是--with-float=hard
,但在这种情况下我不知道如何处理fpu选项。
答案 0 :(得分:1)
配置gcc构建时,我应该对cpu / arch / tune标志使用什么?
从the datasheet可以看出,AT91SAM9G45包含一个旧的ARM926EJ-S内核。 GCC通过arm926ej-s
名称支持它(搜索支持的-mtune
值here)。所以我建议使用--with-cpu=arm926ej-s
。
至于--with-tune
,--with-arch
和--with-cpu
之间的区别,请参阅this answer,TLDR是首选--with-cpu
。
使用--with-arch = armv9返回使用的未知拱。
不要混淆ARM9和ARMv9 - 它们完全不同。
另外,我应该将什么用于--with-fpu选项?
我认为ARM9不支持硬件中的FP,因此您应该使用--with-float=soft
。