本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Nordic nRF52840-DK 入门
此参考集成托管在 Amazon-FreeRTOS 存储库中,该存储库已过时。建议您在创建新项目时从这里开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的现有 FreeRTOS 项目,请参阅亚马逊 FreeRTOS Github 存储库迁移指南。
本教程提供有关 Nordic nRF52840-DK 入门的说明。如果您没有 Nordic nrf52840-DK,请访问Amazon合作伙伴设备目录从我们的合作伙伴处购买一台
在开始之前,您需要为 FreeRTOS 蓝牙低功耗设置Amazon IoT并使用 Amazon 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 蓝牙低功耗移动 SDK 演示应用程序
要在低功耗蓝牙上运行 FreeRTOS 演示项目,您需要在移动设备上运行 FreeRTOS 蓝牙低功耗移动 SDK 演示应用程序。
设置 FreeRTOS 低功耗蓝牙移动 SDK 演示应用程序
-
按照 适用于 FreeRTOS 蓝牙设备的移动 SDK 中的说明,在您的主机上下载并安装适用于移动平台的开发工具包。
-
按照 FreeRTOS 蓝牙低功耗移动 SDK 演示应用程序 中的说明,在您的移动设备上设置演示移动应用程序。
建立串行连接
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,请前往 F reeRTOS 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 submodule update --init --recursive)时,都要使用升级为管理员的控制台。git clone
-
配置项目
要启用演示,您需要配置要使用的项目Amazon IoT。要将项目配置为使用 Amazon IoT,必须将设备注册为 Amazon IoT 事物。您在 为 FreeRTOS 蓝牙低功耗设置Amazon IoT并使用 Amazon Cognito 时,应该已对设备进行了注册。
配置 Amazon IoT 终端节点
-
登录到 Amazon IoT 控制台
。 -
在导航窗格中,选择 Settings (设置)。
您的Amazon IoT终端节点显示在设备数据端点文本框中。它应该类似于
。记下此终端节点。1234567890123
-ats.iot.us-east-1
.amazonaws.com -
在导航窗格中,选择管理,然后选择事物。记下设备的 Amazon IoT 事物名称。
-
利用您拥有的 Amazon IoT 终端节点和 Amazon IoT 事物名称,在 IDE 中打开
,并为以下freertos
/demos/include/aws_clientcredential.h#define
常量指定值:clientcredentialMQTT_BROKER_ENDPOINT
您的 Amazon IoT 终端节点
clientcredentialIOT_THING_NAME
您的主板的 Amazon 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_ATTR_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 over Bluetooth 低功耗演示应用程序的说明完成演示,将 FreeRTOS 低功耗蓝牙移动 SDK 演示应用程序作为移动 MQTT 代理。
问题排查
有关 FreeRTOS 入门的一般疑难解答信息,请参阅问题排查入门。