目录

使用 IAR 开发

安装 IAR

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 中显示所有编译消息

打开 IAR 项目

注意:TI-RTOS 驱动程序和内核示例文件是导入到 IAR 中的,而不是作为预配置的 IAR 工作区文件提供的。有关如何创建这些项目的说明,请参见: Creating TI-RTOS (driver/kernel) Applications in IAR Embedded Workbench

本节以 simple_peripheral 工程为例介绍如何打开和编译现有项目。开发套件中包含的所有 BLE5-Stack 例程项目都具有相似的结构。

  1. 首先打开 IAR 。
  2. 打开一个 IAR 工作区工程: File -> Open -> Workspace...
    • 对于 simple_peripheral 示例,请选择 <SDK_INSTALL_DIR>\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral \tirtos\iar\ble5_simple_peripheral.eww是低功耗蓝牙 SDK 的存放路径)

图2. IAR 工作区窗格

该工作区的文件用的是 simple_peripheral 工程。在选择后,与工作区相关联的文件在屏幕左侧的“工作区”窗格中可见。参见图 2 。

通过单击工作区窗格底部相应的工程选项卡来激活任一工程。图 2 中如果选择了 Overview 选项卡,此选项卡会同时显示两个工程的文件结构。在这种情况下,请使用工作区窗格顶部的下拉菜单来选择激活相应的工程。这里的每个工程都会生成一个单独的可下载对象。simple_peripheral 项目实现了一个基本的低功耗蓝牙外围设备,包括有 GATT 服务的 GATT 服务器。该项目可用作开发外围相关应用程序的框架。

BLE5-Stack IAR 工程编译配置

该工程以及所有的 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

编译和下载

对于所有编译的配置,协议栈工程必须要在应用程序工程之前进行配置编译。

对于将协议栈编译成库的形式:

  1. 编译协议栈库工程。
    • 选中协议栈工程,在工作区顶部的下拉菜单中选择 FlashROM_Library
    • 选择 Project -> Make 编译协议栈。
  2. 编译应用程序工程。
    • 选中应用程序工程。
    • 选择 Project -> Mak e编译应用程序。
  3. 下载整个应用程序
    • 下载并调试:选择 Project -> Download and Debug
    • 只下载,无需调试:选择 Project -> Download -> Download Active Application

注意:以库形式使用协议栈的应用程序工程没有严格的镜像边界了。初始化编译之后,如果协议栈工程未被修改,只需要重新编译下载应用程序工程即可。

对于协议栈和应用程序是镜像分离(而不是库)的工程:

  1. 编译协议栈工程。
    • 选中协议栈工程,在工作区顶部的下拉菜单中选择 FlashROM
    • 选择 Project -> Make 来编译协议栈。
  2. 编译应用程序工程。
    • 选中应用程序工程。
    • 选择 Project -> Make 编译应用程序。
  3. 下载协议栈工程。
    • 选择 Project -> Download -> Download Active Application 来下载协议栈工程。
  4. 下载应用程序工程。
    • 下载并调试:选择 Project -> Download and Debug
    • 只下载,无需调试:选择 Project -> Download -> Download Active Application

      注意:协议栈工程定义了在应用程序工程中使用的 Flash 和 RAM 的边界参数。对协议栈项目的任何修改都需要重新编译下载协议栈工程,然后再重新编译下载应用程序工程以便使用新的边界设置。请参阅 Frontier Tool Operation
      初始编译后,如果协议栈工程未被修改,则只需要重新编译下载应用程序工程。
      当应用程序下载(即 Flash 编程)之后,您可以选择 Project -> Debug without Downloading 在不重新刷新设备的情况下进行调试。

警告:不要在工程设置中修改 CPU 变量,所有示例项目都配置了 CPU 类型,更改此配置(在这里就是 CC2640R2F )可能会导致编译错误。

要实现空中下载( OAD )固件更新功能的示例应用程序需要编译 Boot Image Manager ( BIM )项目。有关更多的详细信息,请参阅 OAD 部分。

访问预处理器符号

对于不同的工程级别各种 C 预处理器符号可能需要设置或调整。以下过程描述了如何访问或修改预处理器符号。

  1. 打开 Project -> Options 选择 C/C++ Compiler
  2. 打开 Preprocessor 选项卡。
  3. 查看 Defined symbols 框(见图 3 )。
  4. 可在这里添加或编辑预处理符号。

图3. IAR 定义的符号框

访问链接器符号

链接器符号可能需要在项目级别进行设置或调整,以便控制生成的镜像的内存布局。以下过程描述了如何访问和修改链接器符号。

  1. 打开 Project -> Options 并选择 Linker 类别。
  2. 打开 Config 选项卡。
  3. 查看 Configuration File symbol definitions 框(参见图 4 )。
  4. 可在这里添加或编辑预处理符号。

图4. IAR 定义的符号框

在 IAR 中复位 CC2640R2F

Debug界面下,从 Reset (back arrow) Debug 下拉框中选择 Board Reset 选项,进行复位。

图5. IAR 板复位

加入我们

文章所有代码、工具、文档开源。加入我们QQ群 591679055获取更多支持,共同研究CC2640R2F&BLE5.0。

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