用户工具

站点工具


cc2640r2f:development_with_iar

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
cc2640r2f:development_with_iar [2017/09/02 10:59]
long
cc2640r2f:development_with_iar [2021/06/22 23:14] (当前版本)
行 1: 行 1:
 <markdown> <markdown>
-# 使用IAR开发 # 
-## 安装IAR ## 
-IAR工具链包含的许多功能不在本文档的讨论范围之内。更多信息和文档可以在[IAR.com](www.iar.com)找到。 
  
-查看BLE5-Stack 1.00.00的发行说明,弄清楚需要使用IAR版本和一些要求的工作环境。与CCS生成的目标代码相比,IAR生成的目标代码的大小和性能可能不同。+使用 IAR 开发 #
  
-关于如何下载安装IAR,搭建开发环境在[CC2640R2 BLE5.0 开发环境搭建](http://docs.leconiot.com/doku.php?id=cc2640r2f:get_started:development_environment_set_up:development_environment_set_up)中有详细描述,这里不再赘述。+## 安装 IAR ##
  
-我们建议编译过程中显示所有编译输出消息以便获得完整详细信息在IAR的**Tools->Options**中将**Show Build Messages**设置为**All**来设置此功能(请参见图1) +IAR 工具链包含的许多功能不本文档讨论范围之内,更多信息和文档可以IAR.com ](www.iar.com)找到。
-![图1在IAR中显示所有编译消息](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/image15.png)+
  
-## 打开IAR项目 ## +查看 BLE5-Stack 1.00.00 发行说明弄清楚需要使用的 IAR 版本和一些要求的工作环境。与 CCS 生成的目标代码相比,IAR 生成的目标代码的大小和性能可能不同。
->**注意**:TI-RTOS驱动程序和内核示例文件是导入到IAR中的,而不是作为预配置的IAR工作区文件提供。有关如何创建这些项的说明请参见:[Creating TI-RTOS (driver/kernel) Applications in IAR Embedded Workbench](http://processors.wiki.ti.com/index.php/Creating_TI-RTOS_Applications_in_IAR_Embedded_Workbench)+
  
-本节以`simple_peripheral`工程为例介绍如何和编译现有项目。开发套件包含的所有BLE5-Stack例程项目都具相似的结构+关于如何下载安装 IAR 、搭建发环境在[ CC2640R2 BLE5.0 开发环境搭建](http://docs.leconiot.com/doku.php?id=cc2640r2f:get_started:development_environment_set_up:development_environment_set_up)中有详细描述,这里不再赘述
  
-1. 首先打开IAR +建议在编译过程中显示所有编译输出消息以便获得完整的详细信息在 IAR ** Tools -> Options **中将** Show Build Messages **设置为** All **来设置此能。(请参见图1
-2. 打开一个IAR工作区工程:**File->Open->Workspace...** +
-  对于`simple_peripheral`示例,请选择`<SDK_INSTALL_DIR>\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral \tirtos\iar\ble5_simple_peripheral.eww`(<SDK_INSTALL_DIR>是低耗蓝牙SDK的存放路径+
  
-![2. IAR工作区窗格](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/iar_workspace_pane.png)+1.在 IAR 中显示所有编译消息
  
-该工作区的文件用的是`simple_peripheral`工程。在选择后,与工作区相关联的文件在屏幕左侧的“工作区”窗格中可见。参见图17。+![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/image15.png)
  
-通过单击工作区窗格底部相应的工程选项卡来激活任一工程。在图17中,如果选择了Overview选项卡。此选项卡会同时显示两个工程的文件结构。在这种情况下,请使用工作区窗格顶部的下拉菜单来选择激活相应的工程。这里的每个工程都会生成一个单独的可下载对象。`simple_peripheral`项目实现了一个基本的低功耗蓝牙外围设备,包括有GATT服务的GATT服务器。该项目可用作开发外围相关应用程序的框架。+## 打开 IAR 项目 ##
  
-## BLE5-Stack IAR工程编译配置 ## +>**注意**:TI-RTOS 驱动程序和内核示例文件是导入到 IAR 中的,而不是作为预配置的 IAR 工作区文件提供的。有关如何创建这些项目的说明,请参见:[ Creating TI-RTOS (driver/kernel) Applications in IAR Embedded Workbench ](http://processors.wiki.ti.com/index.php/Creating_TI-RTOS_Applications_in_IAR_Embedded_Workbench) 
-该工程以及所有的BLE5-Stack工程在工作区都包含了不同的工程以及编译配置,如表7所示。`*_StackLibrary`编译配置会将协议栈编译为库的形式供应用程序调用,如[软件架构](http://docs.leconiot.com/doku.php?id=cc2640r2f:cc2640r2f_architecture:software_and_hardware:software:software_architecture)中的**协议栈编译成库文件配置**所述。由于协议栈工程与我们的应用程序工程是分开的,为了使这两个工程编译后能够在一起正常的工作,连个工程的编译配置需要对应好,具体的编译配置对应关系如表7所示。 + 
-7.可用的IAR编译配置+本节以 `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_INSTALL_DIR>是低功耗蓝牙 SDK 的存放路径) 
 + 
 +图2. IAR 工作区窗格 
 + 
 +![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/iar_workspace_pane.png) 
 + 
 +该工作区的文件用的是 `simple_peripheral` 工程。在选择后,与工作区相关联的文件在屏幕左侧的“工作区”窗格中可见。参见图 2 。 
 + 
 +通过单击工作区窗格底部相应的工程选项卡来激活任一工程。图 2 中如果选择了 Overview 选项卡,此选项卡会同时显示两个工程的文件结构。在这种情况下,请使用工作区窗格顶部的下拉菜单来选择激活相应的工程。这里的每个工程都会生成一个单独的可下载对象。`simple_peripheral` 项目实现了一个基本的低功耗蓝牙外围设备,包括有 GATT 服务的 GATT 服务器。该项目可用作开发外围相关应用程序的框架。 
 + 
 +## BLE5-Stack IAR 工程编译配置 ## 
 + 
 +该工程以及所有的 BLE5-Stack 工程在工作区都包含了不同的工程以及编译配置,如表 所示。`*_StackLibrary` 编译配置会将协议栈编译为库的形式供应用程序调用,如[软件架构](http://docs.leconiot.com/doku.php?id=cc2640r2f:cc2640r2f_architecture:software_and_hardware:software:software_architecture)中的**协议栈编译成库文件配置**所述。由于协议栈工程与应用程序工程是分开的,为了使这两个工程编译后能够在一起正常的工作,连个工程的编译配置需要对应好,具体的编译配置对应关系如表1所示。 
 + 
 +1.可用的 IAR 编译配置
  
 |工程类型|工程的编译配置|兼容的对应工程的编译配置| |工程类型|工程的编译配置|兼容的对应工程的编译配置|
行 41: 行 52:
  
 ## 编译和下载 ## ## 编译和下载 ##
 +
 对于所有编译的配置,协议栈工程必须要在应用程序工程之前进行配置编译。 对于所有编译的配置,协议栈工程必须要在应用程序工程之前进行配置编译。
  
 对于将协议栈编译成库的形式: 对于将协议栈编译成库的形式:
 1. 编译协议栈库工程。 1. 编译协议栈库工程。
-  * 选中协议栈工程,在工作区顶部的下拉菜单中选择FlashROM_Library +  * 选中协议栈工程,在工作区顶部的下拉菜单中选择 FlashROM_Library 
-  * 选择**Project->Make**编译协议栈。+  * 选择** Project -> Make **编译协议栈。
 2. 编译应用程序工程。 2. 编译应用程序工程。
   * 选中应用程序工程。   * 选中应用程序工程。
-  * 选择**Project->Make**编译应用程序。+  * 选择** Project -> Mak e**编译应用程序。
 3. 下载整个应用程序 3. 下载整个应用程序
-  * 下载并调试:选择**Project->Download and Debug** +  * 下载并调试:选择** Project -> Download and Debug ** 
-  * 只下载,无需调试:选择**Project->Download->Download Active Application**+  * 只下载,无需调试:选择** Project -> Download -> Download Active Application **
  
->**注意**:以库形式使用协议栈的应用程序工程没有严格的镜像边界了。初始化编译之后,如果协议栈工程未被修改,则以后只需要重新编译下载应用程序工程即可。+>**注意**:以库形式使用协议栈的应用程序工程没有严格的镜像边界了。初始化编译之后,如果协议栈工程未被修改,只需要重新编译下载应用程序工程即可。
  
 对于协议栈和应用程序是镜像分离(而不是库)的工程: 对于协议栈和应用程序是镜像分离(而不是库)的工程:
 1. 编译协议栈工程。 1. 编译协议栈工程。
-  * 选中协议栈工程,在工作区顶部的下拉菜单中选择FlashROM +  * 选中协议栈工程,在工作区顶部的下拉菜单中选择 FlashROM 
-  * 选择**Project->Make**来编译协议栈。+  * 选择** Project -> Make **来编译协议栈。
 2. 编译应用程序工程。 2. 编译应用程序工程。
   * 选中应用程序工程。   * 选中应用程序工程。
-  * 选择**Project->Make**编译应用程序。+  * 选择** Project -> Make **编译应用程序。
 3. 下载协议栈工程。 3. 下载协议栈工程。
-  * 选择**Project->Download->Download Active Application**来下载协议栈工程。+  * 选择** Project -> Download -> Download Active Application **来下载协议栈工程。
 4. 下载应用程序工程。 4. 下载应用程序工程。
-  * 下载并调试:选择**Project->Download and Debug** +  * 下载并调试:选择** Project -> Download and Debug ** 
-  * 只下载,无需调试:选择**Project->Download->Download Active Application** +  * 只下载,无需调试:选择** Project -> Download -> Download Active Application ** 
->**注意**:协议栈工程定义了在应用程序工程中使用的Flash和RAM的边界参数。对协议栈项目的任何修改都需要重新编译下载协议栈工程,然后再重新编译下载应用程序工程以便使用新的边界设置。请参阅**Frontier Tool Operation**。+>**注意**:协议栈工程定义了在应用程序工程中使用的 Flash 和 RAM 的边界参数。对协议栈项目的任何修改都需要重新编译下载协议栈工程,然后再重新编译下载应用程序工程以便使用新的边界设置。请参阅** Frontier Tool Operation **。
 >初始编译后,如果协议栈工程未被修改,则只需要重新编译下载应用程序工程。 >初始编译后,如果协议栈工程未被修改,则只需要重新编译下载应用程序工程。
->当应用程序下载(即Flash编程)之后,您可以选择**Project->Debug without Downloading**在不重新刷新设备的情况下进行调试。+>当应用程序下载(即 Flash 编程)之后,您可以选择** Project -> Debug without Downloading **在不重新刷新设备的情况下进行调试。
  
->**警告**:不要在工程设置中修改CPU变量所有示例项目都配置了CPU类型,更改此配置(在这里就是CC2640R2F)可能会导致编译错误。+>**警告**:不要在工程设置中修改 CPU 变量所有示例项目都配置了 CPU 类型,更改此配置(在这里就是 CC2640R2F )可能会导致编译错误。
  
-要实现空中下载(OAD)固件更新功能的示例应用程序需要编译**Boot Image Manager** (BIM)项目。有关更多的详细信息,请参阅[OAD](http://docs.leconiot.com/doku.php?id=cc2640r2f:oad:oad_concept:oad_concept)部分。+要实现空中下载( OAD )固件更新功能的示例应用程序需要编译** Boot Image Manager ** ( BIM )项目。有关更多的详细信息,请参阅[ OAD ](http://docs.leconiot.com/doku.php?id=cc2640r2f:oad:oad_concept:oad_concept)部分。
  
 ## 访问预处理器符号 ## ## 访问预处理器符号 ##
-对于不同的工程级别各种C预处理器符号可能需要设置或调整。以下过程描述了如何访问或修改预处理器符号。 
  
-1. 打开**Project->Options**选择**C/C++ Compiler**。 +对于不同的工程级别各种 C 预处理器符号可能需要设置或调整。以下过程描述了如何访问或修改预处理器符号。 
-2. 打开**Preprocessor**选项卡。 + 
-3. 查看**Defined symbols**框(见图18)。+1. 打开** Project -> Options **选择** C/C++ Compiler **。 
 +2. 打开** Preprocessor **选项卡。 
 +3. 查看** Defined symbols **框(见图 )。
 4. 可在这里添加或编辑预处理符号。 4. 可在这里添加或编辑预处理符号。
-![图3. IAR定义的符号框](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/image38.jpeg)+ 
 +图3. IAR 定义的符号框 
 + 
 +![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/image38.jpeg)
  
 ## 访问链接器符号 ## ## 访问链接器符号 ##
 +
 链接器符号可能需要在项目级别进行设置或调整,以便控制生成的镜像的内存布局。以下过程描述了如何访问和修改链接器符号。 链接器符号可能需要在项目级别进行设置或调整,以便控制生成的镜像的内存布局。以下过程描述了如何访问和修改链接器符号。
  
-1. 打开**Project->Options**并选择**Linker**类别。 +1. 打开** Project -> Options **并选择** Linker **类别。 
-2. 打开**Config**选项卡。 +2. 打开** Config **选项卡。 
-3. 查看**Configuration File symbol definitions**框(参见图19)。+3. 查看** Configuration File symbol definitions **框(参见图 )。
 4. 可在这里添加或编辑预处理符号。 4. 可在这里添加或编辑预处理符号。
-![图4. IAR定义的符号框](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/iar_linker_opts.png) 
  
-## 在IAR中复位CC2640R2F ## +图4. IAR 定义的符号框 
-在debug界面下,从**Reset (back arrow) Debug**下拉框中选择**Board Reset**选项,进行复位。 + 
-![图5. IAR板复位](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/image182.png)+![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/iar_linker_opts.png) 
 + 
 +## 在 IAR 中复位 CC2640R2F ## 
 + 
 +Debug界面下,从** Reset (back arrow) Debug **下拉框中选择** Board Reset **选项,进行复位。 
 + 
 +图5. IAR 板复位 
 + 
 +![](http://www.leconiot.com/md_res/cc2640r2f/cc2640r2f_architecture/iar/images/image182.png)
  
 ## 加入我们 ## ## 加入我们 ##
 +
 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http://shang.qq.com/wpa/qunwpa?idkey=d94f12d37c3b37892af4b757c6dc34bea140f3f3128a8d68e556a3d728148e85)获取更多支持,共同研究CC2640R2F&BLE5.0。 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http://shang.qq.com/wpa/qunwpa?idkey=d94f12d37c3b37892af4b757c6dc34bea140f3f3128a8d68e556a3d728148e85)获取更多支持,共同研究CC2640R2F&BLE5.0。
 <div> <div>
行 107: 行 132:
 </div> </div>
 </markdown> </markdown>
- 
cc2640r2f/development_with_iar.1504321154.txt.gz · 最后更改: 2021/06/22 23:14 (外部编辑)