IAR 工具链包含的许多功能不在本文档的讨论范围之内,更多信息和文档可以在 IAR.com 找到。
查看 BLE5-Stack 1.00.00 的发行说明,弄清楚需要使用的 IAR 版本和一些要求的工作环境。与 CCS 生成的目标代码相比,IAR 生成的目标代码的大小和性能可能不同。
关于如何下载安装 IAR 、搭建开发环境在 CC2640R2 BLE5.0 开发环境搭建中有详细描述,这里不再赘述。
建议在编译过程中显示所有编译输出消息以便获得完整的详细信息。在 IAR 的 Tools -> Options 中将 Show Build Messages 设置为 All 来设置此功能。(请参见图1)
图1.在 IAR 中显示所有编译消息
注意:TI-RTOS 驱动程序和内核示例文件是导入到 IAR 中的,而不是作为预配置的 IAR 工作区文件提供的。有关如何创建这些项目的说明,请参见: Creating TI-RTOS (driver/kernel) Applications in IAR Embedded Workbench
本节以 simple_peripheral
工程为例介绍如何打开和编译现有项目。开发套件中包含的所有 BLE5-Stack 例程项目都具有相似的结构。
simple_peripheral
示例,请选择 <SDK_INSTALL_DIR>\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral \tirtos\iar\ble5_simple_peripheral.eww
(图2. IAR 工作区窗格
该工作区的文件用的是 simple_peripheral
工程。在选择后,与工作区相关联的文件在屏幕左侧的“工作区”窗格中可见。参见图 2 。
通过单击工作区窗格底部相应的工程选项卡来激活任一工程。图 2 中如果选择了 Overview 选项卡,此选项卡会同时显示两个工程的文件结构。在这种情况下,请使用工作区窗格顶部的下拉菜单来选择激活相应的工程。这里的每个工程都会生成一个单独的可下载对象。simple_peripheral
项目实现了一个基本的低功耗蓝牙外围设备,包括有 GATT 服务的 GATT 服务器。该项目可用作开发外围相关应用程序的框架。
该工程以及所有的 BLE5-Stack 工程在工作区都包含了不同的工程以及编译配置,如表 1 所示。*_StackLibrary
编译配置会将协议栈编译为库的形式供应用程序调用,如软件架构中的协议栈编译成库文件配置所述。由于协议栈工程与应用程序工程是分开的,为了使这两个工程编译后能够在一起正常的工作,连个工程的编译配置需要对应好,具体的编译配置对应关系如表1所示。
表1.可用的 IAR 编译配置
工程类型 | 工程的编译配置 | 兼容的对应工程的编译配置 |
---|---|---|
Application | FlashROM | Stack-FlashROM |
Application | FlashROM_StackLibrary | Stack-FlashROM_StackLibrary |
Application | FlashROM_StackLibrary_RCOSC | Stack-FlashROM_StackLibrary |
Application | FlashROM_OAD_ImgB | Stack-FlashROM |
Application | FlashROM_OAD_Offchip | Stack-FlashROM |
Stack | FlashROM_Library | Application-FlashROM_Library |
Stack | FlashROM | Application_FlashROM |
对于所有编译的配置,协议栈工程必须要在应用程序工程之前进行配置编译。
对于将协议栈编译成库的形式:
注意:以库形式使用协议栈的应用程序工程没有严格的镜像边界了。初始化编译之后,如果协议栈工程未被修改,只需要重新编译下载应用程序工程即可。
对于协议栈和应用程序是镜像分离(而不是库)的工程:
注意:协议栈工程定义了在应用程序工程中使用的 Flash 和 RAM 的边界参数。对协议栈项目的任何修改都需要重新编译下载协议栈工程,然后再重新编译下载应用程序工程以便使用新的边界设置。请参阅 Frontier Tool Operation 。
初始编译后,如果协议栈工程未被修改,则只需要重新编译下载应用程序工程。
当应用程序下载(即 Flash 编程)之后,您可以选择 Project -> Debug without Downloading 在不重新刷新设备的情况下进行调试。
警告:不要在工程设置中修改 CPU 变量,所有示例项目都配置了 CPU 类型,更改此配置(在这里就是 CC2640R2F )可能会导致编译错误。
要实现空中下载( OAD )固件更新功能的示例应用程序需要编译 Boot Image Manager ( BIM )项目。有关更多的详细信息,请参阅 OAD 部分。
对于不同的工程级别各种 C 预处理器符号可能需要设置或调整。以下过程描述了如何访问或修改预处理器符号。
图3. IAR 定义的符号框
链接器符号可能需要在项目级别进行设置或调整,以便控制生成的镜像的内存布局。以下过程描述了如何访问和修改链接器符号。
图4. IAR 定义的符号框
Debug界面下,从 Reset (back arrow) Debug 下拉框中选择 Board Reset 选项,进行复位。
图5. IAR 板复位
文章所有代码、工具、文档开源。加入我们QQ群 591679055获取更多支持,共同研究CC2640R2F&BLE5.0。