liugu 发表于 2018-11-13 16:06:59

arm9与A9编译器中-mcpu参数如何查看默认值的问题

各位好:
    我在学习嵌入式linux时,突然产生了一个问题。
    我用的是arm-linux-gcc 4.4.4 编译器,这个编译器是周立功 imx283开发板给的,不用制定-mcup参数,就默认产生arm9架构的机器代码。
    但是看关于gcc的编译器资料,里面说制定 -mcpu=cortex-a9 就可以产生A9的机器代码。
    而我在网上看到 有人用的4.4.3的编译器也不用-mcpu参数就产生A9的机器代码,我现在很困惑,对于一个编译器我怎么知道默认产生的机器代码是什么?
   怎么查看默认的-mcpu 参数?

liugu 发表于 2018-11-13 22:08:36

自己回答一下,我也没找到答案。
但是我目前得到的结果是,编译器有版本,不同的版本支持的ARM 类型不一样,例如4.4.3默认支持的是arm9,4.5.1 默认支持的是cortex-A。 5.4支持cortex——M 、R 、A,所以还是要看编译器的版本和相应的说明文档。

dukelec 发表于 2018-11-14 02:17:03

……-gcc -v 会打印出 编译 gcc 自身时所跟的默认参数,它们控制 gcc 的默认行为。

gcc 完全可以自己编译,当然有现成的可用就用现成的好了。

liugu 发表于 2018-11-14 10:23:45

dukelec 发表于 2018-11-14 02:17
……-gcc -v 会打印出 编译 gcc 自身时所跟的默认参数,它们控制 gcc 的默认行为。

gcc 完全可以自己编译 ...

-V 选项,4.4.3下可以给出 默认选项,但4.4.4以上就看不出默认的-mcpu 选项是什么了。

l@ubuntu:~$ arm-linux-gcc -v
Using built-in specs.
Target: arm-fsl-linux-gnueabi
Configured with: /work/arm-toolchains/tmp/src/gcc-4.4.4/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-fsl-linux-gnueabi --prefix=/work/arm_fsl_gcc_4.4.4_multilib --with-sysroot=/work/arm_fsl_gcc_4.4.4_multilib/arm-fsl-linux-gnueabi/multi-libs --enable-languages=c,c++ --with-pkgversion=4.4.4_09.06.2010 --enable-__cxa_atexit --disable-libmudflap --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-gmp=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-mpfr=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-ppl=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-cloog=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --enable-threads=posix --enable-target-optspace --with-local-prefix=/work/arm_fsl_gcc_4.4.4_multilib/arm-fsl-linux-gnueabi/multi-libs --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long --enable-multilib --with-system-zlib --enable-lto
Thread model: posix
gcc version 4.4.4 (4.4.4_09.06.2010)

@ubuntu:~/test/opt/FriendlyARM/toolschain/4.4.3/bin$ ./arm-linux-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace
Thread model: posix
gcc version 4.4.3 (ctng-1.6.1)

可以看到4.4.3下有--with-cpu=arm920t --with-tune=arm920t --,而4.4.4 下没有

dr2001 发表于 2018-11-14 10:33:05

默认编译选项用-with自己加,和-m是一样的。可以看GCC的帮助。

liugu 发表于 2018-11-14 11:33:36

dr2001 发表于 2018-11-14 10:33
默认编译选项用-with自己加,和-m是一样的。可以看GCC的帮助。

能讲的清楚些吗,我刚学,不是很懂,也没查到-with 怎么用。
是用-with 这个 查到-mcpu的默认值吗

liugu 发表于 2018-11-14 11:42:15

不纠结这个问题了,可能我上边的4.4.3和4.4.4是不同厂家做的编译器。 自然-v 输出的结果不一样。
页: [1]
查看完整版本: arm9与A9编译器中-mcpu参数如何查看默认值的问题