工具/软件:Code Composer Studio
在成功的编译和链接结束时,我收到tiobj2bin.bat在以下维客页面描述的armofd / armhex问题上失败: processors.wiki.ti.com/.../Tiobj2bin_Failed
到目前为止,此Wiki网页描述了什么是tiobj2bin.bat,它做什么,为什么要这样做,然后突然以"因此,很难说出目前如何无法找到它们。 同样,很难说如何解决问题。 希望此处提供的解释将在跟踪根本原因方面有所帮助。"
嗯...
编译和链接后,输出内容包括:
"C:/ti/ccsv7/utils/tiobj2bin/tiobj2bin""SyncTest.ut""SyncTest.bin""C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/armof""C:/ti/ccsv7/bin/xtran/5cm/ne"编译器
tiobj2bin.bat在C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/armofd上失败
请访问 processors.wiki.ti.com/.../Tiobj2bin_Failed
tiobj2bin.bat在C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/armhex上失败
请访问 processors.wiki.ti.com/.../Tiobj2bin_Failed
出现C:/ti/ccsv7/utils/tiobj2bin/mkhex4bin故障。 放弃。
''
'c:\ti\ccsv7\tools\compiler\gcc-arm-none-eabi-4_9-2015q3\bin\ofd470'未被识别为内部或外部命令,
可操作程序或批处理文件。
文件不存在:在XML_TI_OFD.pm第877行。
****构建已完成****
经过一些调查后,我已经弄清楚了为什么我的特定系统会发生这种情况:
我正在运行CCSv7版本7.1 .0.0.0016万 ,其中包含多个工具链,包括ti-CGT-arm_CCSv.3.LTS 16.9 和gcc-arm-none-eabi-4_9-2015q3。
我的项目最初是在CCSv6的某些版本中创建的,TI编译器是在项目创建过程中选定的。
选中原始调试或发布构建配置后,在项目属性->构建下,第三个选项卡称为步骤。 在此处配置了构建后步骤:
"${cce_install_root}/utils/tiobj2bin/tiobj2bin""${BuildArtifactFileName}""${BuildArtifactFileBaseName}.bin""${CG_tool_root}/bin/armofd""${CG_tool_root}/bin/armhex"
我假定此构建后步骤是在创建项目时创建的。
随后(我不记得是在升级到CCSv7之前还是之后),我按照以下Wiki页面的指示将通过GCC编译添加到项目: processors.wiki.ti.com/.../Using_GCC_with_Tiva_in_CCSv6
添加GCC的过程将创建新的构建配置,因此如果您从调试开始,它将创建Debug__GNU,并且不会影响调试。
上述构建后步骤仍在Debug__GNU中进行配置。
使用TI (调试或发布)进行编译时,一切都正常。
使用GCC (Debug__gnu)编译时,一切都正常,但tiobj2bin失败。 为什么? 因为,上面显示的生成后步骤使用路径变量CG_TOOL_ROOT (在项目属性->链接资源下定义)。 显然,此变量的值会根据所选的版本配置(以及编译器)而变化。 选择gcc时,该变量将被扩展,使其最终尝试调用GCC bin目录(C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/)下的armhex和armhex,并且那里没有此类程序。 (TI编译器的bin目录下有此类程序。 但不在GCC的bin目录下。)
现在,这就引出了一个问题,在GNU下,要将.out转换为.bin,需要什么命令?