本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Nordic nRF52840-DK 入门
本教程提供有关 Nordic nRF52840-DK 入门的说明。如果您没有 Nordic nRF52840-DK,请访问 AWS 合作伙伴设备目录来从我们的合作伙伴
在开始之前,您需要为 AWS IoT 低功耗蓝牙设置 Amazon Cognito 和 FreeRTOS。
要运行 FreeRTOS 低功耗蓝牙演示,您还需要具有蓝牙和 Wi-Fi 功能的 iOS 或 Android 移动设备。
如果您使用的是 iOS 设备,则需要 Xcode 来构建演示移动应用程序。如果您使用的是 Android 设备,则可使用 Android Studio 来构建演示移动应用程序。
Overview
本教程包含有关以下入门步骤的说明:
-
将主板连接到主机。
-
在主机上安装软件来开发和调试微控制器主板的嵌入式应用程序。
-
将 FreeRTOS 演示应用程序交叉编译为二进制映像。
-
将应用程序二进制映像加载到您的主板上,然后运行该应用程序。
-
跨串行连接与主板上运行的应用程序进行交互,以便进行监视和调试。
设置 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
-
转至 Segger Embedded Studio 下载
页面,并选择适合您的操作系统的 Embedded Studio for ARM 选项。 -
运行安装程序,然后按照提示完成操作。
设置 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序
要跨低功耗蓝牙运行 FreeRTOS 演示项目,您需要在移动设备上运行 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序。
设置 FreeRTOS 蓝牙低功耗移动SDK演示应用
-
按照 适用于 SDKs 蓝牙设备的移动FreeRTOS 中的说明,在您的主机上下载并安装适用于移动平台的开发工具包。
-
按照 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序 中的说明,在您的移动设备上设置演示移动应用程序。
建立串行连接
Segger Embedded Studio 包括一个终端仿真器,可用于通过与主板的串行连接来接收日志消息。
建立与 Segger Embedded Studio 的串行连接
-
打开 Segger Embedded Studio。
-
从顶部菜单中,依次选择 Target (目标)、Connect J-Link (连接 J-Link)。
-
从顶部菜单中,依次选择 Tools (工具)、Terminal Emulator (终端仿真器) 和 Properties (属性),然后按照安装终端仿真器中所述设置属性。
-
从顶部菜单中选择 工具, 端子仿真器, 连接
port
(115200、N、8、1).
Segger Embedded Studio 终端模拟器不支持输入功能。为此,请使用诸如 PuTTy、Tera Term 或 GNU Screen 这样的终端模拟器。将终端配置为通过串行连接来连接到主板,如安装终端仿真器中所述。
下载并配置 FreeRTOS
设置硬件和环境后,您可以下载 FreeRTOS。
下载 FreeRTOS
要下载适用于 Nordic nRF52840-DK 的 FreeRTOS,请转至 FreeRTOS GitHub 页面
-
在本主题中,FreeRTOS 下载目录的路径称为
。freertos
-
路径中的空格字符可能会导致构建失败。克隆或复制存储库时,请确保您创建的路径不包含空格字符。freertos
-
Microsoft Windows 上的文件路径最大长度为 260 个字符。长的 FreeRTOS 下载目录路径可能会导致构建操作失败。
配置项目
要运行演示,您需要将项目配置为使用 AWS IoT。要将项目配置为使用 AWS IoT,必须将设备注册为 AWS IoT 事物。您在 为 AWS IoT 低功耗蓝牙设置 Amazon Cognito 和 FreeRTOS 时,应该已对设备进行了注册。
配置 AWS IoT 终端节点
-
登录到 AWS IoT 控制台
。 -
在导航窗格中,选择 Settings。
您的 AWS IoT 终端节点显示在 Endpoint (终端节点) 文本框中。应该看起来像是
。记下此端点。1234567890123
-ats.iot.us-east-1
.amazonaws.com -
在导航窗格中,选择管理,然后选择事物。记下设备的 AWS IoT 事物名称。
-
利用您拥有的 AWS IoT 终端节点和 AWS IoT 事物名称,在 IDE 中打开
,并为以下freertos
/demos/include/aws_clientcredential.h#define
常量指定值:-
clientcredentialMQTT_BROKER_ENDPOINT
Your AWS IoT endpoint
-
clientcredentialIOT_THING_NAME
Your board's AWS IoT thing name
-
启用演示
-
确保已启用了低功耗蓝牙 GATT 演示。在
vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/iot_ble_config.h
中,添加#define IOT_BLE_ADD_CUSTOM_SERVICES ( 1 )
到列表以定义语句。 -
打开
vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/aws_demos_config.h
并定义CONFIG_MQTT_DEMO_ENABLED
。 -
由于 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 的数量。
-
NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE
属性表大小(以字节为单位)。大小必须是 4 的倍数。
(对于测试,文件的位置为
。)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 低功耗蓝牙演示
-
打开 Segger Embedded Studio。从顶部菜单中,选择 File (文件),再选择 Open Solution (打开解决方案),然后导航到项目文件
projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject
-
如果您使用的是 Segger Embedded Studio 终端仿真器,请从顶部菜单中选择 Tools (工具),然后依次选择 Terminal Emulator (终端仿真器)、Terminal Emulator (终端仿真器) 以显示来自您串行连接的信息。
如果使用的是其他终端工具,您可以从串行连接监控该工具的输出。
-
在 Project Explorer (项目浏览器) 中右键单击
aws_demos
演示项目,然后选择 Build (生成)。注意 如果这是您首次使用 Segger Embedded Studio,您可能会看到警告“No license for commercial use (无商业使用许可证)”。可免费将 Segger Embedded Studio 用于 Nordic 半导体设备。选择 Activate Your Free License (激活您的免费许可证),然后按照说明进行操作。
-
选择 Debug (调试),然后选择 Go (开始)。
演示开始时,它等待通过低功耗蓝牙与移动设备配对。
-
按照低功耗蓝牙 MQTT 演示应用程序中的说明操作,将 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序作为移动 MQTT 代理完成演示。
Troubleshooting
有关 FreeRTOS 入门的常规故障排除信息,请参阅 问题排查入门。