# 用 CCS 开发 # ## 安装 Code Composer Studio(CCS) ## CCS 工具链包含的许多功能超出了本文档范围,更多信息和文档可以在[ CCS Webpage ](http://www.ti.com/tool/CCSTUDIO)上找到。 检查 BLE5-Stack 1.00.00 发行说明,查看需要的 CCS 版本和任何要求的工作环境。与 IAR 生成的目标代码相比,CCS 生成的目标代码的大小和性能可能不同。 下面介绍如何安装和配置 CCS 的正确版本和必要的工具。 1. 安装用于 ARM 的 Code Composer Studio * 下载[ Code Composer Studio ](http://processors.wiki.ti.com/index.php/Download_CCS) * 开始安装过程并接受许可协议,建议将 CCS 安装在默认位置。(具体安装步骤这里不赘述,在[ CC2640R2 BLE5.0 开发环境搭建](http://docs.leconiot.com/doku.php?id=cc2640r2f:get_started:development_environment_set_up:development_environment_set_up)中有详细的描述) * 在** Processor Support **部分,选择** SimpleLink CC13xx 和 CC26xx 无线 MCU **。 * 在** Debug Probes **部分,CCS 将安装支持** TI XDS Debug Probe Support **。此选项支持 XDS110 调试器。 * 选择** Finish **开始安装。 >**注意**:所需版本在发行说明中有陈述。 2. 校验 ARM 编译器工具版本 * 如果需要,CCS 和 ARM 编译器版本可以通过进入** Help -> About Code Composer Studio **进行验证。在** Installation Details **按钮下,可以确定** ARM Compiler Tools **版本。请确保此版本满足发行说明中所述的版本要求。 * 如果需要更新,请参阅下面**安装特定的 TI ARM 编译器**以获取安装所需的 TI ARM 编译器版本。 ## 安装特定的 TI ARM 编译器 ## 要安装特定的 TI ARM 编译器,请参阅以下步骤和图1。 1. ** Help -> Install New Software ** 2. 在** Work with **下拉列表中,选择** Code Generation Tools Update ** 3. 取消选中 ** Show only the latest versions of available software ** 4. 展开** TI Compiler Update **。 5. 根据发行说明中的​​要求选择所需的 ARM 编译器工具版本。 6. 按下一步完成安装,您可能需要重新启动 CCS 。 图1. Code Composer Studio 中的 TI ARM 编译器版本 ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/ti-arm-compiler-version.jpg) ## 导入 CCS 项目 ## 本节介绍如何导入和编译现有工程并引用 multi_role 工程。开发套件中包含的所有 BLE5-Stack 工程都具有相似的结构。 1. 打开 CCS 。 2. 创建一个工作区。 >**注意**:确保 CCS 工作空间路径不包含空格。 3. 使用资源浏览器导入 CCS 项目 * 打开资源浏览器** View -> Resource Explorer ** * 导航到 CCS 文件夹为您选择的示例: `Software -> SimpleLink CC2640R2 SDK -> Examples -> CC2640R2 Launchpad -> ble5stack -> multi_role -> TI-RTOS -> CCS Compiler -> multi_role_app ` 图2. 导入 CCS 项目 ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/import_multi_role.png) 4. 点击 CCS 按钮将项目导入到 Project Explorer >**注意**:如果本地版本不存在,导入过程也将安装 SimpleLink CC2640R2 SDK 。您必须接受最终用户许可协议才能执行,如图 3 所示。 图3. 安装 SimpleLink CC2640R2 SDK ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/eula.png) * 如果导入正常,在资源管理器中应该出现两个项目:一个是应用程序代码,一个是协议栈代码(协议栈代码要么是 stack 工程要么是 stack_library 工程) 图4. 导入 CCS 的项目 ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/project_explorer_after_import.png) >**注意**: 不要使用 CCS 中的** Rename **选项来重命名项目。这可能会改变其中某些编译参数,从而导致编译不可逆的错误。要重命名一个工程,你应该使用 CCS 内部的** Copy **和** Paste **选项。当你** Paste **工程时,会有一个选择新的工程名称的选项。这些过程对于应用程序和协议栈栈工程来说都是一样的。粘贴这两个工程后,您需要修改应用程序工程的属性并更新其** Project Reference **(在高级设置中)才能选择新粘贴的协议栈工程。 ## 找到 CCS 工程(配置工程路径) ## 如果 CCS 安装在默认安装目录( c:/ti )下,它会自动发现 `SimpleLink CC2640R2 SDK` 。一旦被 CCS 发现,它会定义一个名为 `COM_TI_SIMPLELINK_CC2640R2_SDK_INSTALL_DIR` 的配置环境变量供 BLE5-Stack 工程使用。 如果是从 `SimpleLink CC2640R2 SDK` 安装路径之外的指定路径导入 BLE5-Stack 工程,在工程逐个导入之后 `COM_TI_SIMPLELINK_CC2640R2_SDK_INSTALL_DIR` 变量必须重新定义。 重新定义此变量: 1. 打开 CCS 工程的属性(** Project -> Properties **) 2. 定位到** Resource -> Linked Resources **,编辑` COM_TI_SIMPLELINK_CC2640R2_SDK_INSTALL_DIR `,并将其指向您导入的根目录位置。 图5. 重新定义 COM_TI_SIMPLELINK_CC2640R2_SDK_INSTALL_DIR ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/redefine-ccs-linked-resources.jpg) ## BLE5-Stack CCS 工程编译配置 ## 所有 BLE5-Stack 工程工作区都包含了如表 1 所示的各种工程和编译配置。`*_StackLibrary` 编译配置将协议栈编译成库的形式供应用程序调用,如 [软件架构](http://docs.leconiot.com/doku.php?id=cc2640r2f:cc2640r2f_architecture:software_and_hardware:software:software_architecture)中的**协议栈编译成库文件配置**中所述一样。 表1. 可用的CCS项目构建配置 |工程类型|工程命名约定|工程的编译配置|兼容的对应工程的编译配置| |:-----|:-----|:-----|:-----| |Application|`*_cc2640r2lp_app`|FlashROM|`*_CC2640R2lp_stack`| |Application|`*_cc2640r2lp_app`|FlashROM_StackLibrary|`*_cc2640r2lp_stack_library`| |Application|`*_cc2640r2lp_app`|FlashROM_StackLibrary_RCOSC|`*_cc2640r2lp_stack_library`| |Application|`*_cc2640r2lp_app_oad_onchip`|FlashROM_OAD_ImgB|`*_cc2640r2lp_stack`搭配 FlashROM配置| |Application|`*_cc2640r2lp_app_oad_offchip`|FlashROM_OAD_Offchip|`*_cc2640r2lp_stack`搭配 FlashROM配置| |Stack|`*_cc2640r2lp_stack_library`|FlashROM_Library|`*_cc2640r2lp_app`搭配FlashROM_StackLibrary配置| |Stack|`*_cc2640r2lp_stack`|FlashROM|`*_CC2640r2lp_app`搭配FlashROM配置| 单击文件资源管理器中的工程名称,选择一个工程作为激活的工程。在图 6 中,应用程序被选为激活工程。 图6. CCS Project Explorer ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/image33.jpeg) 这些工程中的每一个都生成一个单独的可下载的镜像。 `simple_peripheral` 示例工程是本文档中作为通用应用程序主要描述的示例应用程序。 `simple_peripheral` 工程实现了一个基本的低能耗蓝牙外围设备,包括有 GATT 服务的 GATT 服务器。该工程可用作开发外围相关应用程序的框架。 ## 编译和下载 ## 对于所有编译配置,协议栈工程应始终在应用程序工程之前编译。 对于把协议栈编译成库的工程: 1. 编译协议栈库工程。 * 激活协议栈工程。 * 选择** Project -> Build All **来编译协议栈工程。 2. 编译应用程序工程。 * 激活应用程序工程。 * 选择** Project -> Build All **编译应用程序工程。 3. 下载整个应用程序 * 选择** Run -> Debug **下载应用程序 >**注意**:以库形式使用协议栈的应用程序项目没有严格的镜像边界。初始化编译之后,如果协议栈工程未被修改,只需要重新编译下载应用程序工程。 对于协议栈和应用程序作为两个镜像文件(而不是库)的工程: 1. 编译协议栈工程。 * 激活协议栈工程。 * 选择** Project -> Build All **来编译协议栈工程。 2. 编译应用程序工程。 * 激活应用程序工程。 * 选择** Project -> Build All **来编译应用程序工程。 3. 下载协议栈工程 * 激活协议栈工程。 * 选择** Run -> Debug **来下载协议栈。 4. 下载应用程序工程 * 激活应用程序工程。 * 选择** Run -> Debug **来下载应用程序 >**注意**:协议栈工程定义了在应用程序工程中使用的 Flash 和 RAM 的边界参数。对协议栈工程的任何修改都需要重新编译下载协议栈工程,然后再重新编译下载应用程序工程以便使用新的边界设置。了解更多详细信息可以在[存储架构](http://docs.leconiot.com/doku.php?id=cc2640r2f:cc2640r2f_architecture:memroy_map:flash_map)中的**边界工具操作**中查看。 初始编译后,如果协议栈工程未被修改,则只需要重新编译下载应用程序工程。 >**警告**:不要在工程配置中修改 CPU 变量。所有示例工程都配置了 CPU 类型,更改此配置(在这里就是 CC2640R2F )可能会导致编译错误。 要实现空中下载( OAD )固件更新功能的示例应用程序需要编译** Boot Image Manager **( BIM )项目。有关详细信息,请参阅[ OAD ](http://docs.leconiot.com/doku.php?id=cc2640r2f:oad:oad_concept:oad_concept)部分。 ## 访问预处理器符号 ## 在工程级别中 C 预处理器符号可能需要设置或调整。以下过程描述了如何访问或修改预处理器符号。 1. 打开** Project Properties ** 2. 定位到** Build -> ARM Compiler -> Predefined Symbols ** 3. 使用图 7 中箭头所指的按钮来添加,删除或编辑预处理器。 图7. CCS 预定义符号 ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/image42.jpeg) ## 访问链接器符号 ## 为了控制生成的镜像文件的内存布局,链接器符号可能需要在项目级别中进行设置或调整。以下过程描述了如何访问和修改链接器符号。 1. 打开** Project Properties ** 2. 定位到** Build -> ARM Linker -> Command File Preprocessing ** 3. 使用图 8 中箭头所指的按钮添加,删除或编辑链接符号。 图8. CCS 链接器符号 ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/ccs_linker_opts.png) ## 重置 CCS 中的 CC2640R2F ## 在复位菜单中选择** Board Reset **来进行板级复位 图9. CCS 板级复位 ![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/ccs/images/image183.jpeg) ## CCS 的额外培训和技术支持 ## 有关 Code Composer Studio 的其他培训和技术支持,请参阅:[ Code Composer Studio Wiki Code Composer Studio Training ](http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v6) ## 加入我们 ## 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http://shang.qq.com/wpa/qunwpa?idkey=d94f12d37c3b37892af4b757c6dc34bea140f3f3128a8d68e556a3d728148e85)获取更多支持,共同研究CC2640R2F&BLE5.0。

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