【TI-CCS筆記】工程編譯配置 bin文件的編譯和生成 各種架構的Post-build配置匯總
TI編譯器分類
在CCS按照目錄下 有個名為${CG_TOOL_ROOT}的目錄
其下就是當前工程的編譯器
存放目錄為:
C:\ti\ccs1240\ccs\tools\compiler
按類型分為五種:
ti-cgt-arm_20.2.7.LTS
ti-cgt-armllvm_2.1.3.LTS
ti-cgt-c2000_22.6.0.LTS
ti-cgt-c6000_8.3.12
ti-cgt-msp430_21.6.1.LTS
其中 后綴表示編譯器版本號
每個編譯器的目錄下都有一個bin目錄 用于存放各種編譯器的可執行文件
另外 在CCS安裝目錄下還有一個utils目錄 其下有一個tiobj2bin
存放的是轉為bin文件的腳本和可執行文件
必須同時調用編譯器和tiobj2bin文件才可以進行文件轉換
工程配置
在工程屬性 build-steps下有個post-build 這里就需要寫入腳本(中間每個參數以空格隔開 不能換行)
以TI的毫米波雷達的MSS部分為例(一般為ARM Cortex-R4F架構)
如IWR6843AOP:
其編譯器采用ti-cgt-arm_20.2.7.LTS
且編譯時 采用的是 armofd armhex 兩個可執行文件
注意 第二個參數和第三個參數根據工程實際情況來更改
"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${PROJECT_LOC}/Debug/IWR6843AOP_Demo.out" "${PROJECT_LOC}/Debug/IWR6843AOP_Demo.bin" "${CG_TOOL_ROOT}/bin/armofd" "${CG_TOOL_ROOT}/bin/armhex" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
其中 我的工程名為:IWR6843AOP_Demo
生成的out、bin文件名也為:IWR6843AOP_Demo
首先 需要調用"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin"
腳本
傳入的參數文件就是生成的out文件"${PROJECT_LOC}/Debug/IWR6843AOP_Demo.out"
另外指定生成bin文件的目錄"${PROJECT_LOC}/Debug/IWR6843AOP_Demo.bin"
以及兩個編譯器的鏈接和mkhex4bin腳本"${CG_TOOL_ROOT}/bin/armofd" "${CG_TOOL_ROOT}/bin/armhex" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
最后編譯之后 就能在Debug目錄下找到bin文件
當然 還有個前提就是工程建立和環境配置完成 且能夠生成.out文件
同樣在pre-build中可以填入一些參數 用于預編譯(如編譯前修改或刪除一些文件)
如:
rm -f "${PROJECT_ROOT}/Debug/IWR6843AOP_Demo.bin"
DSS部分代碼則為(C6000架構)
"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${PROJECT_LOC}/Debug/IWR6843AOP_DSS.out" "${PROJECT_LOC}/Debug/IWR6843AOP_DSS.bin" "${CG_TOOL_ROOT}/bin/ofd6x" "${CG_TOOL_ROOT}/bin/hex6x" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
其用到的編譯器為ofd6x和hex6x
Post-build配置
ARM架構
"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "out文件路徑" "bin文件路徑" "${CG_TOOL_ROOT}/bin/armofd" "${CG_TOOL_ROOT}/bin/armhex" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
C6000架構
"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "out文件路徑" "bin文件路徑" "${CG_TOOL_ROOT}/bin/ofd6x" "${CG_TOOL_ROOT}/bin/hex6x" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"