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.

[参考译文] CCS/AM3359:从代码中读取项目选项

Guru**** 2601915 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/628434/ccs-am3359-read-project-options-from-code

部件号:AM3359

工具/软件:Code Composer Studio

 我的代码如何获得 用于构建它的实际CCS优化选项? 这样,我的代码就可以向其他进程报告此情况。 我不想将此硬编码为构建配置或#define的一部分,而是从构建该代码的实际工具设置中获取。

链接 与我要执行的操作类似,但我不知道 如何使用 CCS执行此操作,因此我需要逐步说明。 其目的是将编译器设置捆绑到一个目标文件中,然后可以从代码访问该文件。

stackoverflow.com/.../get-the-compiler-options-from-a-compiled-executable

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

    CCS随附GCC ARM编译器。  如果使用该编译器,则可以使用在该堆栈溢出链接中显示的相同解决方案。

    TI ARM编译器没有以类似方式工作的解决方案。  您可以在生成属性中看到部分(但不是全部)生成选项。  例如...

    C:\work\dir>armofd --obj_display=none,battrs file.out
    
    对象文件:file.out
    
    在".arm.attributes"中生成属性
    
    格式版本:'A'
    
    供应商名称:"TI"(德州仪器(TI))
    
    标记文件:
    属性:
    标记生成方名称 链接器
    Tag_Producer_VMajor 6. (生产商主要版本+1)
    Tag_Producer_VMinor 3. (生产商次版本+1)
    Tag_Producer_VPatch 10. (生成方修补程序版本+1)
    标记_ABI 3. (ARM EABI)
    Tag_Isa 10. (ARM v7)
    Tag_CPU_arch_profile 65 (应用程序配置文件)
    标记_是_是_ 1. (BE-8编码)
    Tag_Bitfield_layout 2. (与任何位字段布局兼容)
    Tag_arm_Mode 34. (此模式中生成的输入文件数)
    tag_data_syms_exist (存在数据映射符号)
    
    <1>供应商名称:"aeabi"(ARM架构的ABI)
    
    标记文件:
    属性:
    Tag_CPU_arch 10 (ARM v7)
    Tag_CPU_arch_profile 65 (应用程序配置文件)
    tag_arm_isa_use 1 (使用了某些ARM说明)
    Tag_PCS_config 1 (裸平台配置)
    Tag_abI_PCS_wchar_t 2 (wchar_t的大小为2)
    Tag_abI_FP_number_model 1 (仅使用IEEE 754格式的FP编号)
    Tag_abI_align_needed 1 (需要8字节数据的8字节对齐)
    Tag_abI_align_preserved 1 (保留所有所需的8字节对齐,叶功能中的SP除外)
    Tag_abI_optimization_goals 4 (针对小尺寸,速度和牺牲的调试假象进行了积极优化)
    Tag_CPU_unaligned_access 1 (允许不对齐的数据访问)
    Tag_DIV_使用 1 (不允许使用SDIV和UDIV说明) 

    命令armofd是目标文件显示实用程序。  它只能从命令行运行。  它是编译器软件包中的可执行文件之一。  它记录在ARM组装语言工具手册中。

    谢谢,此致,

    -George