CCS工具链包含的许多功能超出了本文档范围。更多信息和文档可以在CCS Webpage上找到 。
检查BLE5-Stack 1.00.00发行说明,查看需要的CCS版本和任何要求的工作环境。与IAR生成的目标代码相比,CCS生成的目标代码的大小和性能可能不同。
以下过程介绍如何安装和配置CCS的正确版本和必要的工具。
注意:所需版本在发行说明中有陈述。
要安装特定的TI ARM编译器,请参阅以下步骤和图1。
图1. Code Composer Studio中的TI ARM编译器版本
本节介绍如何导入和编译现有工程并引用multi_role工程。开发套件中包含的所有BLE5-Stack工程都具有相似的结构。
注意:确保CCS工作空间路径不包含空格。
Software->SimpleLink CC2640R2 SDK->Examples->CC2640R2 Launchpad->ble5stack->multi_role->TI-RTOS->CCS Compiler->multi_role_app
注意:如果本地版本不存在,导入过程也将安装SimpleLink CC2640R2 SDK。您必须接受最终用户许可协议才能执行,如图3所示。
图3. 安装SimpleLink CC2640R2 SDK
注意: 不要使用CCS中的Rename选项来重命名项目。这可能会改变其中某些编译参数,从而导致编译不可逆的错误。要重命名一个工程,你应该使用CCS内部的Copy和paste选项。当你Paste的工程,你就会有一个选择新的工程名称的选项。这些过程对于应用程序和协议栈栈工程来说都是一样的。粘贴这两个工程后,您需要修改应用程序工程的属性并更新其Project Reference(在高级设置中)才能选择新粘贴的协议栈工程。
如果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
变量必须重新定义。
重新定义此变量:
COM_TI_SIMPLELINK_CC2640R2_SDK_INSTALL_DIR
,并将其指向您导入的根目录位置。所有BLE5-Stack工程工作区都包含了如表1所示的各种工程和编译配置。*_StackLibrary
编译配置将协议栈编译成库的形式供应用程序调用,如 软件架构中的协议栈编译成库文件配置中所述一样。
表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
这些工程中的每一个都生成一个单独的可下载的镜像。
simple_peripheral
示例工程是本文档中作为通用应用程序主要描述的示例应用程序。simple_peripheral
工程实现了一个基本的低能耗蓝牙外围设备,包括有GATT服务的GATT服务器。该工程可用作开发外围相关应用程序的框架。
对于所有编译配置,协议栈工程应始终在应用程序工程之前编译。
对于把协议栈编译成库的工程:
注意:以库形式使用协议栈的应用程序项目没有严格的镜像边界。初始化编译之后,如果协议栈工程未被修改,则只需要重新编译下载应用程序工程。
对于协议栈和应用程序作为两个镜像文件(而不是库)的工程:
注意:协议栈工程定义了在应用程序工程中使用的Flash和RAM的边界参数。对协议栈工程的任何修改都需要重新编译下载协议栈工程,然后再重新编译下载应用程序工程以便使用新的边界设置。了解更多详细信息可以在存储架构中的边界工具操作中查看。
初始编译后,如果协议栈工程未被修改,则只需要重新编译下载应用程序工程。
警告:不要在工程配置中修改CPU变量。所有示例工程都配置了CPU类型,更改此配置(在这里就是CC2640R2F)可能会导致编译错误。
要实现空中下载(OAD)固件更新功能的示例应用程序需要编译Boot Image Manager(BIM)项目。有关详细信息,请参阅OAD部分。
在工程级别中C预处理器符号可能需要设置或调整。以下过程描述了如何访问或修改预处理器符号。
为了控制生成的镜像文件的内存布局,链接器符号可能需要在项目级别中进行设置或调整。以下过程描述了如何访问和修改链接器符号。
在复位菜单中选择Board Reset来进行板级复位
图9. CCS板级复位
有关Code Composer Studio的其他培训和技术支持,请参阅:Code Composer Studio Wiki Code Composer Studio Training
文章所有代码、工具、文档开源。加入我们QQ群 591679055获取更多支持,共同研究CC2640R2F&BLE5.0。