Nordic nRF52840-DK 入门 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Nordic nRF52840-DK 入门

重要

该参考集成托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时,我们建议从此处开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目,请参阅 Amazon-FreeRTOS Github 存储库迁移指南

本教程提供有关 Nordic nRF52840-DK 入门的说明。如果您没有 Nordic nRF52840-DK,请访问 Amazon 合作伙伴设备目录来从我们的合作伙伴购买一个。

在开始之前,您需要为 FreeRTOS 低功耗蓝牙设置 Amazon IoT 和 Amazon Cognito

要运行 FreeRTOS 低功耗蓝牙演示,您还需要具有蓝牙和 Wi-Fi 功能的 iOS 或 Android 移动设备。

注意

如果您使用的是 iOS 设备,则需要 Xcode 来构建演示移动应用程序。如果您使用的是 Android 设备,则可使用 Android Studio 来构建演示移动应用程序。

概述

本教程包含有关以下入门步骤的说明:

  1. 将主板连接到主机。

  2. 在主机上安装软件来开发和调试微控制器主板的嵌入式应用程序。

  3. 将 FreeRTOS 演示应用程序交叉编译为二进制映像。

  4. 将应用程序二进制映像加载到您的主板上,然后运行该应用程序。

  5. 跨串行连接与主板上运行的应用程序进行交互,以便进行监视和调试。

设置 Nordic 硬件

将主机连接到标记了 J2 的 USB 端口(位于 Nordic nRF52840 主板上的钮扣电池座的正上方)。

有关设置 Nordic nRF52840-DK 的更多信息,请参阅 nRF52840 开发工具包用户指南

设置开发环境

下载并安装 Segger Embedded Studio

FreeRTOS 支持将 Segger Embedded Studio 作为 Nordic nRF52840-DK 的开发环境。

要设置您的环境,您需要在主机上下载并安装 Segger Embedded Studio。

下载并安装 Segger Embedded Studio
  1. 转至 Segger Embedded Studio 下载页面,并选择适合您的操作系统的 Embedded Studio for ARM 选项。

  2. 运行安装程序,然后按照提示完成操作。

设置 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序

要跨低功耗蓝牙运行 FreeRTOS 演示项目,您需要在移动设备上运行 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序。

设置 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序
  1. 按照 适用于 FreeRTOS 蓝牙设备的移动开发工具包 中的说明,在您的主机上下载并安装适用于移动平台的开发工具包。

  2. 按照 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序 中的说明,在您的移动设备上设置演示移动应用程序。

建立串行连接

Segger Embedded Studio 包括一个终端仿真器,可用于通过与主板的串行连接来接收日志消息。

建立与 Segger Embedded Studio 的串行连接
  1. 打开 Segger Embedded Studio。

  2. 从顶部菜单中,依次选择 Target (目标)Connect J-Link (连接 J-Link)

  3. 从顶部菜单中,依次选择 Tools (工具)Terminal Emulator (终端仿真器)Properties (属性),然后按照安装终端仿真器中所述设置属性。

  4. 从顶部菜单中,依次选择 Tools (工具)Terminal Emulator (终端仿真器)Connect port (连接 <端口>) (115200,N,8,1)

注意

Segger Embedded Studio 终端模拟器不支持输入功能。为此,请使用诸如 PuTTy、Tera Term 或 GNU Screen 这样的终端模拟器。将终端配置为通过串行连接来连接到主板,如安装终端仿真器中所述。

下载并配置 FreeRTOS

设置硬件和环境后,您可以下载 FreeRTOS。

下载 FreeRTOS

要下载适用于 Nordic nRF52840-DK 的 FreeRTOS,请转至 FreeRTOS GitHub 页面并克隆存储库。有关说明,请参阅 README.md 文件。

重要
  • 在本主题中,FreeRTOS 下载目录的路径称为 freertos

  • freertos 路径中的空格字符可能会导致构建失败。克隆或复制存储库时,请确保您创建的路径不包含空格字符。

  • Microsoft Windows 上的文件路径最大长度为 260 个字符。FreeRTOS 下载目录路径过长可能会导致构建操作失败。

  • 由于源代码可能包含符号链接,因此,如果您使用 Windows 提取存档,则可能必须:

    • 启用开发者模式,或者,

    • 使用已提升为管理员的控制台。

    这样,Windows 就可以在提取存档文件时正确创建符号链接。否则,符号链接将作为普通文件写入,该文件会将符号链接的路径作为文本,或者是空文件。有关更多信息,请参阅博客文章 Windows 10 中的符号链接

    如果您在 Windows 下使用 Git,则必须启用开发者模式,或者必须:

    • 使用以下命令将 core.symlinks 设置为 true:

      git config --global core.symlinks true
    • 每当您使用写入系统的 git 命令(例如,git pullgit clonegit submodule update --init --recursive)时,请使用具有管理员权限的控制台。

配置项目

要启用演示,您需要将项目配置为使用 Amazon IoT。要将项目配置为使用 Amazon IoT,必须将设备注册为 Amazon IoT 事物。您在 为 FreeRTOS 低功耗蓝牙设置 Amazon IoT 和 Amazon Cognito 时,应该已对设备进行了注册。

配置 Amazon IoT 终端节点
  1. 登录到 Amazon IoT 控制台

  2. 在导航窗格中,选择 Settings (设置)

    您的 Amazon IoT 端点显示在设备数据端点文本框中。它应该类似于 1234567890123-ats.iot.us-east-1.amazonaws.com。记下此终端节点。

  3. 在导航窗格中,选择管理,然后选择事物。记下设备的 Amazon IoT 事物名称。

  4. 利用您拥有的 Amazon IoT 终端节点和 Amazon IoT 事物名称,在 IDE 中打开 freertos/demos/include/aws_clientcredential.h,并为以下 #define 常量指定值:

    • clientcredentialMQTT_BROKER_ENDPOINT 您的 Amazon IoT 终端节点

    • clientcredentialIOT_THING_NAME 您的主板的 Amazon IoT 事物名称

启用演示
  1. 确保已启用了低功耗蓝牙 GATT 演示。在 vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/iot_ble_config.h 中,添加 #define IOT_BLE_ADD_CUSTOM_SERVICES ( 1 ) 到列表以定义语句。

  2. 打开 vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/aws_demo_config.h,然后定义 CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLEDCONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED,如本例中所示。

    /* To run a particular demo you need to define one of these. * Only one demo can be configured at a time * * CONFIG_BLE_GATT_SERVER_DEMO_ENABLED * CONFIG_MQTT_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_SHADOW_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_POSIX_DEMO_ENABLED * * These defines are used in iot_demo_runner.h for demo selection */ #define CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED
  3. 由于 Nordic 芯片只带有很少的 RAM (250 KB),因此可能需要更改 BLE 配置,以允许比每个属性更大的 GATT 表条目。通过这种方式,您可以调整应用程序获取的内存量。为此,请覆盖文件 freertos/vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/sdk_config.h 中以下属性的定义:

    • NRF_SDH_BLE_VS_UUID_COUNT

      供应商特定的 UUID 的数量。添加特定于供应商的新 UUID 时,将此计数增加 1。

    • NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE

      属性表大小(以字节为单位)。大小必须是 4 的倍数。该值表示专为属性表设置的内存量(包括特征大小),因此这会因项目而异。如果超过属性表的大小,则会出现 NRF_ERROR_NO_MEM 错误。如果您修改 NRF_SDH_BLE_GATTS_ATTS_ATTS_TAB_SIZE,通常还必须重新配置 RAM 设置。

    (对于测试,文件的位置为 freertos/vendors/nordic/boards/nrf52840-dk/aws_tests/config_files/sdk_config.h。)

构建并运行 FreeRTOS 演示项目

在下载 FreeRTOS 并配置演示项目后,可以在主板上构建和运行演示项目。

重要

如果这是您首次在此主板上运行演示,则需要先将启动加载程序刷写到主板,然后才能运行演示。

要构建和刷写启动加载程序,请按照以下步骤操作,但不要使用 projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject 项目文件,而是使用 projects/nordic/nrf52840-dk/ses/aws_demos/bootloader/bootloader.emProject

从 Segger Embedded Studio 构建并运行 FreeRTOS 低功耗蓝牙演示
  1. 打开 Segger Embedded Studio。从顶部菜单中,选择 File (文件),再选择 Open Solution (打开解决方案),然后导航到项目文件 projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject

  2. 如果您使用的是 Segger Embedded Studio 终端仿真器,请从顶部菜单中选择 Tools (工具),然后依次选择 Terminal Emulator (终端仿真器)Terminal Emulator (终端仿真器) 以显示来自您串行连接的信息。

    如果使用的是其他终端工具,您可以从串行连接监控该工具的输出。

  3. 项目资源管理器中,右键单击 aws_demos 演示项目,然后选择构建

    注意

    如果这是您首次使用 Segger Embedded Studio,您可能会看到警告“No license for commercial use (无商业使用许可证)”。可免费将 Segger Embedded Studio 用于 Nordic 半导体设备。申请免费许可证,在设置过程中选择激活您的免费许可证,然后按照说明进行操作。

  4. 选择 Debug (调试),然后选择 Go (开始)

    演示开始时,它等待通过低功耗蓝牙与移动设备配对。

  5. 按照低功耗蓝牙 MQTT 演示应用程序中的说明操作,将 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序作为移动 MQTT 代理完成演示。

故障排除

有关 FreeRTOS 入门的常规故障排除信息,请参阅问题排查入门