

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

# Nordic n RF52840-DK 入门
<a name="getting_started_nordic"></a>

**重要**  <a name="deprecation-message"></a>
该参考集成托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时，我们建议[从此处开始](freertos-getting-started-modular.md)。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目，请参阅 [Amazon-FreeRTOS Github 存储库迁移指南](github-repo-migration.md)。

本教程提供了 Nordic n RF52840-DK 入门的说明。如果您没有 Nordic n RF52840-DK，请访问 AWS 合作伙伴设备目录，从我们的[合作伙伴](https://devices.amazonaws.com/detail/a3G0L00000AANtrUAH/nRF52840-Development-Kit)处购买。

在开始之前，您需要[为 FreeRTOS 低功耗蓝牙设置 AWS IoT 和 Amazon Cognito](ble-demo.md#set-up-ble-demo-aws)。

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

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

## 概述
<a name="getting_started_nordic-overview"></a>

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

1. 将主板连接到主机。

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

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

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

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

## 设置 Nordic 硬件
<a name="nordic-setup-hardware"></a>

将您的主机连接到标有 J2 的 USB 端口，该端口位于 Nordic n 主RF52840 板纽扣电池座的正上方。

有关设置 Nordic n RF52840-DK 的更多信息，请参阅 [n RF52840 开发套件用户指南](http://infocenter.nordicsemi.com/pdf/nRF52840_DK_User_Guide_v1.2.pdf)。

## 设置开发环境
<a name="nordic-setup-env"></a>

### 下载并安装 Segger Embedded Studio
<a name="install-embedded-studio"></a>

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

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

**下载并安装 Segger Embedded Studio**

1. 转至 [Segger Embedded Studio 下载](https://www.segger.com/downloads/embedded-studio/)页面，并选择适合您的操作系统的 Embedded Studio for ARM 选项。

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

### 设置 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序
<a name="install-mobile-sdks"></a>

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

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

1. 按照 [SDKs 适用于 FreeRTOS 蓝牙设备的移动设备](freertos-ble-mobile.md) 中的说明，在您的主机上下载并安装适用于移动平台的开发工具包。

1. 按照 [FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序](ble-demo.md#ble-sdk-app) 中的说明，在您的移动设备上设置演示移动应用程序。

## 建立串行连接
<a name="nordic-serial-connection"></a>

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

**建立与 Segger Embedded Studio 的串行连接**

1. 打开 Segger Embedded Studio。

1. 从顶部菜单中，依次选择 **Target (目标)**、**Connect J-Link (连接 J-Link)**。

1. 从顶部菜单中，依次选择 **Tools (工具)**、**Terminal Emulator (终端仿真器)** 和 **Properties (属性)**，然后按照[安装终端仿真器](gsg-troubleshooting.md#uart-term)中所述设置属性。

1. 从顶部菜单中选择 “**工具**”、“**终端仿真器**”、“**Connect” *port* (115200、N** ,8,1)。

**注意**  
Segger Embedded Studio 终端模拟器不支持输入功能。为此，请使用像 Pu TTy、Tera Term 或 GNU Screen 这样的终端仿真器。将终端配置为通过串行连接来连接到主板，如[安装终端仿真器](gsg-troubleshooting.md#uart-term)中所述。

## 下载并配置 FreeRTOS
<a name="nordic-download-and-configure"></a>

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

### 下载 FreeRTOS
<a name="nordic-download"></a>

要下载适用于 RF52840 Nordic n-DK 的 FreeRTOS，请前往 [FreeRTOS 页面并克隆存储库 GitHub ](https://github.com/aws/amazon-freertos)。有关说明，请参阅 [README.md](https://github.com/aws/amazon-freertos/blob/main/README.md) 文件。

**重要**  
在本主题中，FreeRTOS 下载目录的路径称为 `freertos`。
`freertos` 路径中的空格字符可能会导致构建失败。克隆或复制存储库时，请确保您创建的路径不包含空格字符。
Microsoft Windows 上的文件路径最大长度为 260 个字符。FreeRTOS 下载目录路径过长可能会导致构建操作失败。
由于源代码可能包含符号链接，因此，如果您使用 Windows 提取存档，则可能必须：  
启用[开发者模式](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development)，或者，
使用已提升为管理员的控制台。
这样，Windows 就可以在提取存档文件时正确创建符号链接。否则，符号链接将作为普通文件写入，该文件会将符号链接的路径作为文本，或者是空文件。有关更多信息，请参阅博客文章 [Windows 10 中的符号链接](https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/)。  
如果您在 Windows 下使用 Git，则必须启用开发者模式，或者必须：  
使用以下命令将 `core.symlinks` 设置为 true：  

    ```
    git config --global core.symlinks true
    ```
每当您使用写入系统的 git 命令（例如，**git pull**、**git clone** 和 **git submodule update --init --recursive**）时，请使用具有管理员权限的控制台。

### 配置项目
<a name="nordic-freertos-config-project"></a>

要启用演示，您需要配置要使用的项目 AWS IoT。要配置要使用的项目 AWS IoT，必须将您的设备注册为 AWS IoT 事物。您在 [为 FreeRTOS 低功耗蓝牙设置 AWS IoT 和 Amazon Cognito](ble-demo.md#set-up-ble-demo-aws) 时，应该已对设备进行了注册。

**配置您的 AWS IoT 终端节点**

1. 登录 [AWS IoT 控制台](https://console.aws.amazon.com/iotv2/)。

1. 在导航窗格中，选择**设置**。

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

1. 在导航窗格中，选择**管理**，然后选择**事物**。记下设备 AWS IoT 的事物名称。

1. 准备好 AWS IoT 端点和 AWS IoT 事物名称后，`freertos/demos/include/aws_clientcredential.h`在 IDE 中打开，然后为以下`#define`常量指定值：
   + `clientcredentialMQTT_BROKER_ENDPOINT` *Your AWS IoT endpoint*
   + `clientcredentialIOT_THING_NAME` *Your board's AWS IoT thing name*

**启用演示**

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

1. 打开 `vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/aws_demo_config.h`，然后定义 `CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED` 或 `CONFIG_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
   ```

1. 由于 Nordic 芯片只带有很少的 RAM (250 KB)，因此可能需要更改 BLE 配置，以允许比每个属性更大的 GATT 表条目。通过这种方式，您可以调整应用程序获取的内存量。为此，请覆盖文件 `freertos/vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/sdk_config.h` 中以下属性的定义：
   + NRF\$1SDH\$1BLE\$1VS\$1UUID\$1COUNT

     特定于供应商 UUIDs的数量。添加特定于供应商的新 UUID 时，将此计数增加 1。
   + NRF\$1SDH\$1BLE\$1GATTS\$1ATTR\$1TAB\$1SIZE

     属性表大小（以字节为单位）。大小必须是 4 的倍数。该值表示专为属性表设置的内存量（包括特征大小），因此这会因项目而异。如果超过属性表的大小，则会出现 NRF\$1ERROR\$1NO\$1MEM 错误。如果您修改 NRF\$1SDH\$1BLE\$1GATTS\$1ATTS\$1ATTS\$1TAB\$1SIZE，通常还必须重新配置 RAM 设置。

   （对于测试，文件的位置为 `freertos/vendors/nordic/boards/nrf52840-dk/aws_tests/config_files/sdk_config.h`。） 

## 构建并运行 FreeRTOS 演示项目
<a name="nordic-build-and-run-example"></a>

在下载 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`

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

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

1. 在**项目资源管理器**中，右键单击 `aws_demos` 演示项目，然后选择**构建**。
**注意**  
如果这是您首次使用 Segger Embedded Studio，您可能会看到警告“No license for commercial use (无商业使用许可证)”。可免费将 Segger Embedded Studio 用于 Nordic 半导体设备。[申请免费许可证](http://license.segger.com/Nordic.cgi)，在设置过程中选择**激活您的免费许可证**，然后按照说明进行操作。

1. 选择 **Debug (调试)**，然后选择 **Go (开始)**。

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

1. 按照[低功耗蓝牙 MQTT 演示应用程序](https://docs.aws.amazon.com/freertos/latest/userguide/ble-demo.html#ble-demo-mqtt)中的说明操作，将 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序作为移动 MQTT 代理完成演示。

## 问题排查
<a name="nordic-troubleshooting"></a>

有关 FreeRTOS 入门的常规故障排除信息，请参阅[问题排查入门](gsg-troubleshooting.md)。