本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Nordic nRF52840-DK 入门
重要
该参考集成托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时,我们建议从此处开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目,请参阅 亚马逊免费版 RTOS Github 存储库迁移指南。
本教程提供有关 Nordic nRF52840-DK 入门的说明。如果您没有 Nordic nRF52840-DK,请访问 AWS 合作伙伴设备目录来从我们的合作伙伴
在开始之前,您需要为 FreeRTOS 低功耗蓝牙设置 AWS IoT 和亚马逊 Cognito。
要运行 FreeRTOS 低功耗蓝牙演示,您还需要具有蓝牙和 Wi-Fi 功能的 iOS 或 Android 移动设备。
注意
如果您使用的是 iOS 设备,则需要 Xcode 来构建演示移动应用程序。如果您使用的是 Android 设备,则可使用 Android Studio 来构建演示移动应用程序。
概述
本教程包含有关以下入门步骤的说明:
-
将主板连接到主机。
-
在主机上安装软件来开发和调试微控制器主板的嵌入式应用程序。
-
将 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 低功耗蓝牙移动开发工具包演示应用程序
-
按照 适用于 FreeRTOS 蓝牙设备的移动开发工具包 中的说明,在您的主机上下载并安装适用于移动平台的开发工具包。
-
按照 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序 中的说明,在您的移动设备上设置演示移动应用程序。
建立串行连接
Segger Embedded Studio 包括一个终端仿真器,可用于通过与主板的串行连接来接收日志消息。
建立与 Segger Embedded Studio 的串行连接
-
打开 Segger Embedded Studio。
-
从顶部菜单中,依次选择 Target (目标)、Connect J-Link (连接 J-Link)。
-
从顶部菜单中,依次选择 Tools (工具)、Terminal Emulator (终端仿真器) 和 Properties (属性),然后按照安装终端仿真器中所述设置属性。
-
从顶部菜单中,依次选择 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 页面
重要
-
在本主题中,FreeRTOS 下载目录的路径称为
。freertos
-
路径中的空格字符可能会导致构建失败。克隆或复制存储库时,请确保您创建的路径不包含空格字符。freertos
-
Microsoft Windows 上的文件路径最大长度为 260 个字符。FreeRTOS 下载目录路径过长可能会导致构建操作失败。
-
由于源代码可能包含符号链接,因此,如果您使用 Windows 提取存档,则可能必须:
-
启用开发者模式
,或者, -
使用已提升为管理员的控制台。
这样,Windows 就可以在提取存档文件时正确创建符号链接。否则,符号链接将作为普通文件写入,该文件会将符号链接的路径作为文本,或者是空文件。有关更多信息,请参阅博客文章 Windows 10 中的符号链接
。 如果您在 Windows 下使用 Git,则必须启用开发者模式,或者必须:
-
使用以下命令将
core.symlinks
设置为 true:git config --global core.symlinks true
-
每当您使用写入系统的 git 命令(例如,git pull、git clone 和 git submodule update --init --recursive)时,请使用具有管理员权限的控制台。
-
配置项目
要启用演示,您需要将项目配置为使用 AWS IoT。要将项目配置为使用 AWS IoT,必须将设备注册为 AWS IoT 事物。您在 为 FreeRTOS 低功耗蓝牙设置 AWS IoT 和亚马逊 Cognito 时,应该已对设备进行了注册。
配置 AWS IoT 终端节点
-
登录到 AWS IoT 控制台
。 -
在导航窗格中,选择 Settings (设置)。
您的 AWS IoT 端点显示在设备数据端点文本框中。它应该类似于
。记下此终端节点。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
您的 AWS IoT 终端节点
clientcredentialIOT_THING_NAME
您的主板的 AWS IoT 事物名称
启用演示
-
确保已启用了低功耗蓝牙 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_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
-
由于 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 低功耗蓝牙演示
-
打开 Segger Embedded Studio。从顶部菜单中,选择 File (文件),再选择 Open Solution (打开解决方案),然后导航到项目文件
projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject
-
如果您使用的是 Segger Embedded Studio 终端仿真器,请从顶部菜单中选择 Tools (工具),然后依次选择 Terminal Emulator (终端仿真器)、Terminal Emulator (终端仿真器) 以显示来自您串行连接的信息。
如果使用的是其他终端工具,您可以从串行连接监控该工具的输出。
-
在项目资源管理器中,右键单击
aws_demos
演示项目,然后选择构建。注意
如果这是您首次使用 Segger Embedded Studio,您可能会看到警告“No license for commercial use (无商业使用许可证)”。可免费将 Segger Embedded Studio 用于 Nordic 半导体设备。申请免费许可证
,在设置过程中选择激活您的免费许可证,然后按照说明进行操作。 -
选择 Debug (调试),然后选择 Go (开始)。
演示开始时,它等待通过低功耗蓝牙与移动设备配对。
-
按照低功耗蓝牙 MQTT 演示应用程序中的说明操作,将 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序作为移动 MQTT 代理完成演示。
故障排除
有关 FreeRTOS 入门的常规故障排除信息,请参阅问题排查入门。