1. 程式人生 > >將堆疊庫專案轉變為分離映象專案實現OAD

將堆疊庫專案轉變為分離映象專案實現OAD

1.更改協議棧工程

1.1.選擇專案中的stack工程,建立一個新的工程編譯配置:Project->Edit Configurations->New,為編譯配置提供一個新的名稱。

1.2.開啟專案屬性:Project->Options

1.3.選擇General Options->Output,在Output file中選擇Executable。這裡將啟用偵錯程式設定,並且成為模擬器的預設設定。在General Options->Target中的Device選擇自己的開發板。

1.4.選擇C/C++ Compiler->Preprocessor,在Defined symbols中刪除STACK_LIBRARY

1.5.選擇Build Actions,在Post Build步驟中新增Frontier作為邊界工具:
“$TOOLS_BLE_DIR$\frontier.exe” iar “$PROJ_DIR$\$CONFIG_NAME$\List\$TARGET_BNAME$.map” “$PROJ_DIR$\..\config\iar_boundary.bdef” “$PROJ_DIR$\..\config\iar_boundary.xcl”

該工具會將協議棧入口地址的資訊交給應用程式

1.6.選擇Linker->Extra Options選項
選擇Use command line options
在Command line options中寫入以下內容:

-f $PROJ_DIR$\..\config\lib_linker.cmd

1.7.選擇Debugger選項
根據自己使用的偵錯程式重新配置偵錯程式設定。TI通常使用的模擬器偵錯程式是TI XDS110,在TI XDS中做相應更改。

2.更改應用程式工程

2.1.選擇專案中的APP工程,建立一個新的工程配置,Project->Edit Configurations->New,為新的配置起一個新名字,但切記要與STACK工程對應

2.2.去掉工程下的StackLibrary資料夾:右鍵選中StackLibrary->Options,勾選Exclude from build,選擇ok即可

2.3.開啟工程屬性:選擇Project->Options,在C/C++ Compiler Options->Preprocessor選項下的Defined symbols列表中刪除STACK_LIBRARY,在Extra Options下的Command line options中加入

-f $PROJ_DIR$\..\config\iar_boundary.bdef

2.4.選擇Linker ->Config,使用Linker configuration file這個.icf連結器檔案:選擇cc26xx_app.icf檔案,我的路徑是在

C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\source\ti\ble5stack\common\cc26xx\iar\cc26xx_app_oad.icf

在Configuration file symbol definitions中刪除FLASH_ROM_BUILD=2,新增RTOS_ROM=1、APP_IMAGE_START=0x0000。

選擇Extra Options,在Command line options,新增
-f $PROJ_DIR$\..\config\iar_boundary.xcl

刪除

-f $PROJ_DIR$\..\config\lib_linker.cmd

選中Library選項卡,從Additional libraries中刪除以下內容:

$PROJ_DIR$\..\config\ble_r2.symbols

將以下內容新增到Additional libraries:

$ROM_DIR$\ble_rom_releases\cc26xx_r2\Final_Release\common_r2.symbols

2.5.選擇Options->Build Actions,在Post-build中新增

cmd /C "$TOOLS_BLE_DIR$\output_converter\output_converter.exe $EXE_DIR$\$TARGET_BNAME$.bin -a 0x10 & $TOOLS_BLE_DIR$\oad\oad_image_tool.exe $EXE_DIR$\$TARGET_BNAME$.hex -t offchip -i app --imgVer 0 -ob $EXE_DIR$\$TARGET_BNAME$.bin -m 0x0000 --r 0x0000"

這樣我們就把堆疊庫專案轉變為分離映象專案,在專案中新增OAD功能請參照我的上一篇部落格,新增完成後就可以實現APP工程升級。