# 编译第一个工程( simple_peripheral ) # 成功编译第一个工程对入门开发至关重要,如果失败了可能就是麻烦的开始。TI SimplLink CC13x0/CC26x0 MCU 系列 SDK 组件太多,第一个工程编译出错的概率极高,所以单独陈列一章节,详细讲解如何成功编译第一个工程以及解决常见问题。 编译前确保参考 CC2640R2 BLE 开发环境搭建全部默认安装路径,其他非默认路径极有可能会编译报错。 SDK安装路径 `C:\ti\simplelink_cc2640r2_sdk_1_35_00_33`,确保 Examples 也在默认路径未搬移。 IAR安装路径 `C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.5`,对应版本为 `EWARM-7.80.3` 。 CCS安装路径 `C:\ti\ccsv7\eclipse\ccstudio.exe`,对应版本为 `CCS-7.01.00.00016` 。 同时需要确定 IAR 编译相关的一个自定义参数变量配置集合( IAR -> Tools -> Configure Custom Argument Variables )。所有编译、链接相关命令路径完全依靠该配置选项,如果配置路径错误,会直接导致编译过程报错。该配置很多通过绝对路径引用,这也是暂时都选择默认安装路径的根本原因。如果当前机器历史安装多个 CC13x0/CC26x0 SDK ,可能出现多个自定义参数变量配置集合同时生效的问题,此时需要选择其他不需要的 Disable 掉。 ![](http://www.leconiot.com/md_res/cc2640r2f/get_started/first_build/Images/ArgumentVaribles3.png) 如上图所示,在 Global 标签卡里面,有两个全局( Global )的自定参数配置集合在当前工作空间( Workspace )生效。需要选中tirtos_cc13xx_cc26xx_2_20_01_08(global) -> Disable Group ->最好选择重启 IAR 。 ![](http://www.leconiot.com/md_res/cc2640r2f/get_started/first_build/Images/ArgumentVaribles.png) >**警告**:如上图所示 SIMPLELINK_CC2640R2_SDK 作为当前 Workspace 的使用配置需要唯一 Enable ,其他 Workspace/Global 选项卡无关的 Disable 到灰色。 在 `C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL` 包含 CC2640R2 开发板的所有例程,blestack 和 ble5stack 分别对应 BLE4.2 和 BLE5.0 的样例工程。 这里选择 ble5stack \ ble5_simple_peripheral 和 IAR 编译下载测试。 打开 ble5_simple_peripheral,IAR 工程主要有 App + Stack 两个工程组成(软件框架)已经详细讲解,每个工程又对应不同的编译选项,本文的 FlashROM_Lirary 编译选项是把协议栈作为编译生成一个库文件供 App 工程链接,所以需要先编译 Stack 工程。成功编译 Stack 后再编译 App ,链接 Stack ,成功生成镜像文件后直接下载。 ![](http://www.leconiot.com/md_res/cc2640r2f/get_started/first_build/Images/workspace.png) 成功编译第一个工程后,可以参考下载运行第一个程序下载运行、观察现象。 ## Troubleshooting ## 对于以下非语法错误的编译失败,第一时间检查自定义参数变量配置集合( IAR -> Tools -> Configure Custom Argument Variables )。 ### 编译失败,提示 Could not launch the tool "C:\ti\xdctools_3_50_01_13_core/xs" ### TI BLE SDK 编译需要借助 XDCTools ,该工具通过 SDK 默认安装 "C\ti" ![](http://www.leconiot.com/md_res/cc2640r2f/get_started/first_build/Images/xdc_tools.png) IAR 通过自定义参数变量配置集合(IAR->Tools->Configure Custom Argument Variables)里面的 `XDC_ROOT` 配置路径,如果通过 `XDC_ROOT` 找不到该路径,就会提示该错误。 按照我们的思路检查自定义参数变量配置集合( IAR -> Tools -> Configure Custom Argument Variables )`XDC_ROOT`,配置如下图: ![](http://www.leconiot.com/md_res/cc2640r2f/get_started/first_build/Images/reset_xdc_folder.png) 展开当前工程的配置集合,在资源管理器浏览 `C:\ti\xdctools_3_50_01_13_core` 并不能找到该路径。尝试 Edit Variable 直接更改到电脑存在的最新版本`C:\ti\xdctools_3_50_02_20_core` ,重新编译后正常。 >**注意**:确保当前 Workspace 只有一个配置集合生效 ### 编译失败提示 cannot open source file "xdc/std.h" ### 该问题同 **编译失败提示 cannot open source file "xdc/std.h"** 一样,需要确认 `XDC_ROOT` 路径。 ### 编译协议栈失败,提示找不到 osal_icall_ble.c. ### CC2640R2F SDK 默认 Examples 没有做任何更改,提示找不到 .c/ 很有可能也是自定义参数变量配置集合( IAR -> Tools -> Configure Custom Argument Variables )配置错误。TI IAR 工程部分 .c 通过相对路径 `EXAMPLES_ROOT` 添加,如果该路径配置错误,可能会找不到对应的 .c 文件。 按照思路检查自定义参数变量配置集合( IAR -> Tools -> Configure Custom Argument Variables )`XDC_ROOT`,配置如下图: ![](http://www.leconiot.com/md_res/cc2640r2f/get_started/first_build/Images/two_enable.png) 如上图所示,这里存在两个生效的配置集合,两个生效配置集合都有 `EXAMPLE_ROOT` 变量, Disable 全局的变量重启 IAR ,编译正常。 >**注意**:和 `XDC_ROOT` 不一样,`EXAMPLE_ROOT` 更改后需要重启 IAR ### 编译失败提示 Error while running "c:/ti/xdctools_3_32_00_06_core/xs ### ``` Error while running "c:/ti/xdctools_3_32_00_06_core/xs" --xdcpath="c:/ti/tirtos_cc13xx_cc26xx_2_20_01_08/packages;c:/ti/tirtos_cc13xx_cc26xx_2_20_01_08/products/tidrivers_cc13xx_cc26xx_2_20_01_10/packages;c:/ti/tirtos_cc13xx_cc26xx_2_20_01_08/products/bios_6_46_01_38/packages; ``` 出现该问题,同样还是检查自定义参数变量配置集合( IAR -> Tools -> Configure Custom Argument Variables ),确保当前 Wrospace 只有一个生效,同时可以展开确定路径是否有效。 ### C:/ti/simplelink_cc2640r2_sdk_1_35_00_33/kernel/tirtos/packages/iar/tools/configuro/Main.xs ### ```C js: "C:/ti/simplelink_cc2640r2_sdk_1_35_00_33/kernel/tirtos/packages/iar/tools/configuro/Main.xs", line 133: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted. ``` ### could not open file cc2640r2lp_stack_FlashROM_Library.a### 前面已经详细讲解过工程管理,我们需要切换到 stack 选项卡。编译stack工程后再编译app 工程。 ## 加入我们 ## 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http://shang.qq.com/wpa/qunwpa?idkey=d94f12d37c3b37892af4b757c6dc34bea140f3f3128a8d68e556a3d728148e85)获取更多支持,共同研究CC2640R2F&BLE5.0。

CC2640R2F&BLE5.0-乐控畅联 © Copyright 2017, 成都乐控畅联科技有限公司.