这里会显示出您选择的修订版和当前版本之间的差别。
cc2640r2f:development_with_iar [2019/08/29 19:51] jaylee ↷ 页面cc2640r2f:cc2640r2f_architecture:iar:development_with_iar被移动至cc2640r2f:development_with_iar |
cc2640r2f:development_with_iar [2021/06/22 23:14] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | < | ||
- | # 使用 IAR 开发 # | ||
- | |||
- | ## 安装 IAR ## | ||
- | |||
- | IAR 工具链包含的许多功能不在本文档的讨论范围之内,更多信息和文档可以在[ IAR.com ](www.iar.com)找到。 | ||
- | |||
- | 查看 BLE5-Stack 1.00.00 的发行说明,弄清楚需要使用的 IAR 版本和一些要求的工作环境。与 CCS 生成的目标代码相比,IAR 生成的目标代码的大小和性能可能不同。 | ||
- | |||
- | 关于如何下载安装 IAR 、搭建开发环境在[ CC2640R2 BLE5.0 开发环境搭建](http:// | ||
- | |||
- | 建议在编译过程中显示所有编译输出消息以便获得完整的详细信息。在 IAR 的** Tools -> Options **中将** Show Build Messages **设置为** All **来设置此功能。(请参见图1) | ||
- | |||
- | 图1.在 IAR 中显示所有编译消息 | ||
- | |||
- | ![](http:// | ||
- | |||
- | ## 打开 IAR 项目 ## | ||
- | |||
- | > | ||
- | |||
- | 本节以 `simple_peripheral` 工程为例介绍如何打开和编译现有项目。开发套件中包含的所有 BLE5-Stack 例程项目都具有相似的结构。 | ||
- | |||
- | 1. 首先打开 IAR 。 | ||
- | 2. 打开一个 IAR 工作区工程:** File -> Open -> Workspace... ** | ||
- | * 对于 `simple_peripheral` 示例,请选择 `< | ||
- | |||
- | 图2. IAR 工作区窗格 | ||
- | |||
- | ![](http:// | ||
- | |||
- | 该工作区的文件用的是 `simple_peripheral` 工程。在选择后,与工作区相关联的文件在屏幕左侧的“工作区”窗格中可见。参见图 2 。 | ||
- | |||
- | 通过单击工作区窗格底部相应的工程选项卡来激活任一工程。图 2 中如果选择了 Overview 选项卡,此选项卡会同时显示两个工程的文件结构。在这种情况下,请使用工作区窗格顶部的下拉菜单来选择激活相应的工程。这里的每个工程都会生成一个单独的可下载对象。`simple_peripheral` 项目实现了一个基本的低功耗蓝牙外围设备,包括有 GATT 服务的 GATT 服务器。该项目可用作开发外围相关应用程序的框架。 | ||
- | |||
- | ## BLE5-Stack IAR 工程编译配置 ## | ||
- | |||
- | 该工程以及所有的 BLE5-Stack 工程在工作区都包含了不同的工程以及编译配置,如表 1 所示。`*_StackLibrary` 编译配置会将协议栈编译为库的形式供应用程序调用,如[软件架构](http:// | ||
- | |||
- | 表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. 编译协议栈工程。 | ||
- | * 选中协议栈工程, | ||
- | * 选择** Project -> Make **来编译协议栈。 | ||
- | 2. 编译应用程序工程。 | ||
- | * 选中应用程序工程。 | ||
- | * 选择** Project -> Make **编译应用程序。 | ||
- | 3. 下载协议栈工程。 | ||
- | * 选择** Project -> Download -> Download Active Application **来下载协议栈工程。 | ||
- | 4. 下载应用程序工程。 | ||
- | * 下载并调试:选择** Project -> Download and Debug ** | ||
- | * 只下载,无需调试:选择** Project -> Download -> Download Active Application ** | ||
- | > | ||
- | > | ||
- | > | ||
- | |||
- | > | ||
- | |||
- | 要实现空中下载( OAD )固件更新功能的示例应用程序需要编译** Boot Image Manager ** ( BIM )项目。有关更多的详细信息,请参阅[ OAD ](http:// | ||
- | |||
- | ## 访问预处理器符号 ## | ||
- | |||
- | 对于不同的工程级别各种 C 预处理器符号可能需要设置或调整。以下过程描述了如何访问或修改预处理器符号。 | ||
- | |||
- | 1. 打开** Project -> Options **选择** C/C++ Compiler **。 | ||
- | 2. 打开** Preprocessor **选项卡。 | ||
- | 3. 查看** Defined symbols **框(见图 3 )。 | ||
- | 4. 可在这里添加或编辑预处理符号。 | ||
- | |||
- | 图3. IAR 定义的符号框 | ||
- | |||
- | ![](http:// | ||
- | |||
- | ## 访问链接器符号 ## | ||
- | |||
- | 链接器符号可能需要在项目级别进行设置或调整,以便控制生成的镜像的内存布局。以下过程描述了如何访问和修改链接器符号。 | ||
- | |||
- | 1. 打开** Project -> Options **并选择** Linker **类别。 | ||
- | 2. 打开** Config **选项卡。 | ||
- | 3. 查看** Configuration File symbol definitions **框(参见图 4 )。 | ||
- | 4. 可在这里添加或编辑预处理符号。 | ||
- | |||
- | 图4. IAR 定义的符号框 | ||
- | |||
- | ![](http:// | ||
- | |||
- | ## 在 IAR 中复位 CC2640R2F ## | ||
- | |||
- | Debug界面下,从** Reset (back arrow) Debug **下拉框中选择** Board Reset **选项,进行复位。 | ||
- | |||
- | 图5. IAR 板复位 | ||
- | |||
- | ![](http:// | ||
- | |||
- | ## 加入我们 ## | ||
- | |||
- | 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http:// | ||
- | <div> | ||
- | <p align=" | ||
- | <a target=" | ||
- | © Copyright 2017, 成都乐控畅联科技有限公司. | ||
- | </p> | ||
- | </ | ||
- | </ |