This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器:Linaro 工具- FPU 库与放大器;CCS

Guru**** 2039500 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/794763/compiler-linaro-tools---fpu-library-ccs

工具/软件:TI C/C++编译器

您好!

使用适用于 TDA2xx 上 A15的 Linaro 工具。

我希望您能帮助您了解 Linaro 工具文件夹树、特别是如何选择合适的 FPU 库。

在版本4_9_2015q3上、有几个包含 FPU 库的 FPU 文件夹(即一个在 gcc 文件夹下、一个在 lib 下、 在某些架构文件夹下)-对于所有这些文件夹的存在原因以及如何知道哪一个是正确的选择(如果需要选择的话-是否可以根据其他配置在内部定义它?)、这是非常令人困惑的。

除了较新的 Linaro 工具版本之外、gcc 文件夹下的 FPU 不再存在、并且通常文件夹树会发生更改、因此这会增加对如何正确地知道应使用什么以及如何使用的混淆。

另一个问题是,我已经尝试安装新的 CCS 9,在 CCS 8上有 CG_GCC_SEART_PATH 的自动变量定义,但在新的 CCS 9上,这不再存在。 您能解释一下区别吗?

谢谢

家伙

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Guy Mardiks">除了更新的 Linaro 工具版本、 gcc 文件夹下的 FPU 不再存在、并且通常文件夹树已发生更改、因此这会增加对如何正确了解应使用什么以及如何使用的混淆。 GCC multilib 用于选择要链接的库、 基于命令行参数。  在 CCS 安装的不同 GCC ARM 版本上使用-print-multi-lib 选项会显示以下内容:

    ~/ti/ccs830/ccsv8/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -print-multi-lib
    。
    ;thumb;@mthumb
    FPU;@mfloat-abi= hard
    armv6-m;@mthumb@March = armv6s-m
    armv7-m;@msp=armv7-mspu armv7e-mspumb@armv7e-mfpu
    
    
    
    
    
    
    ;@msp=armv7msps armv7msp/mspumb@armv7mfpf-mfpu@armbotip-msp=armv-msp=armv7-msps armv7empf-mfpu;armv7msp=armv7msp=msp/mspumb@armv-mspumpf-mspumb@armv7mspumb@armv-msp/mspumb@armv7empf-mfpf-mfpf-mfpu@@@@@@@@@@@armbotip-msp=armv7empf-msp=armv7empf-msp=armv7empf-msp=armv
    
    
    
    @@@@@@@@@@@@@@@@@@@@ 
    ~/ti/ccs830/ccsv8/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/arm-none-eabi-gcc -print-multi-lib
    ;
    thumb;@mthumb
    hard;@mfloat-abi=hard
    thum/v6-m;@mthum=armv6s-m
    thumb/v7-m;@msp=armv7-msp/mspumb@msp/v7e-msp=armv7msp/msp=msp/msp/mspumb
    @msp=msp/msp/msp/mfthumb@@
    @@
    @@
    @@
    @@@@
    @@@@msp/msp=msp/msp/msp=msp-msp-msp=msp=msp/v7msp=msp/msp/msp=msp/msp-msp=msp/msp/msp/msp/msp/msp/msp/mspumb v7msp=msp=msp=msp/msp/msp=msp/msp/msp/msp/msp/msp/mspum=msp/fthum=msp=msp/msp=msp/
    
    
    
    
    
    
    
    
    
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
    ~/ti/ccs830/ccsv8/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major/bin/arm-none-eabi-gcc -print-multi-lib
    ;
    thumb;@mthumb
    hard;@mfloat-abi=hard
    thum/v6-m;@mthum=armv6s-m
    thumb/v7-m;@msp=armv7-m thum/v7e-msp=armv7e/msp=msp=msp/mspumb@mv7msp/msp=msp/mspumb
    @
    
    
    
    msp/mspumb@msp/v7mspumb fumb@msp=msp/msp=msp/msp/mspumb@msp-msp/v7mfumb@msp=msp/msp/msp=msp/msp/mspumb@msp-msp/msp/mspumb@msp/msp/msp/mspumb fthumb fumb@@@@@@
    @@@@
    @msp/v7msp/msp/msp=msp=msp/msp=msp/msp/msp=msp/msp
    
    
    
    
    
    
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 

    因此、虽然库的文件夹树在不同版本之间发生了变化、但工程应根据编译器选项选择适当的库、而无需将特定的编译器库目录添加到搜索路径。

    例如、对于使用-marm  -mfloat-abi=hard 选项的 Cortex-A15项目、则:

    a:使用 v4.9.0进行编译时、链接器映射文件显示 FPU 目录中的库已链接

    b.使用 v7.2.1编译时、链接器映射文件会显示已链接的硬目录中的库。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、感谢您的回答。
    我还不确定-例如、对于 v4.9.3中的 FPU 目录-它是哪个 FPU 目录(正如我提到过的、在不同的文件夹树分支下有几个名为 FPU 的文件夹)?

    谢谢
    家伙
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    '例如、关于 v4.9.0中的 FPU 目录-它是哪个 FPU 目录(正如我提到过的、在不同的文件夹树分支下有多个名为 FPU 的文件夹)?

    是传递给链接器的选项、用于选择运行时库链接的目录、 其中 -print-multi-lib 的输出显示了用于选择库的选项。

    使用 -mfloat-abi=hard -mfpu=none-vfpv4来针对 ARM 模式的 Cortex-A15、那么:

    v4.9.0链接 gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/lib/FPU 中的库

    v7.2.1链接 gcc-arm-none-eabi-7-2017-Q4-majer-Win32/arm-no-eabi/lib/hard 中的库

    虽然 v4.4.3安装中有多个名为 FPU 的目录、 但 arm-none-eabi/lib/fpu 用于 ARM 模式、而在链接时选择 Thumb 模式时则使用其他目录。

    查看   为经验编译的 FPU 库的 multilib March 和 mfpu 选项、这些库适用于 Cortex-M 或上一代 FPU、而不是 Cortex-A15中的 VFPv4-D32。 因此、建议将-marm 保留 为传递给链接器的选项、以选择支持-mfloat-abi=硬硬件浮点的 ARM 模式库(交互工作意味着程序可以包含 ARM 和 Thumb 模式函数的组合)。

    在深入了解这一点的同时、发现 了《揭秘 ARM 浮点编译器选项  》、其中包含-mfpu 和-mfloat-abi 选项的有用概述。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的回答。

    此致
    家伙