我正在使用 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 选项。
配置 gcc 构建时,我应该为 cpu/arch/tune 标志使用什么?
从数据表中可以看出,AT91SAM9G45包括一个旧的ARM926EJ-S内核。GCC 通过arm926ej-s
名称支持它(在此处搜索支持的-mtune
值(。所以我建议使用--with-cpu=arm926ej-s
.
至于--with-tune
、--with-arch
和--with-cpu
的区别,请看这个答案,TLDR是首选--with-cpu
(。
使用 --不要混淆 ARM9with-arch=armv9 返回使用的未知 arch。
和 ARMv9 - 它们是完全不同的东西。
另外,我应该为 --with-fpu 选项使用什么?
我不认为 ARM9 在硬件中支持 FP,所以你应该使用 --with-float=soft
.