

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

# 初始步骤
<a name="freertos-prereqs"></a>

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

要开始使用 FreeRTOS，你必须拥有 AWS 一个帐户、一个有权访问权限的用户 AWS IoT 和 FreeR AWS IoT TOS 云服务。您还必须下载 FreeRTOS 并配置开发板的 FreeRTOS 演示项目才能使用。 AWS IoT以下各节将引导您了解这些要求。

**注意**  
如果您使用的是 Espressif 或 ESP32-DevKitC ESP-WROVER-KIT ESP32-WROOM-32SE，请跳过这些步骤并转到。[开始使用 Espressif 和 ESP32-DevKitC ESP-WROVER-KIT](getting_started_espressif.md)
如果你使用的是 Nordic nRF52840-DK，请跳过这些步骤并转到[Nordic n 入门 RF52840-DK](getting_started_nordic.md)。

1. [设置你的 AWS 账户和权限](#freertos-account-and-permissions) 

1. [注册您的 MCU 主板 AWS IoT](#get-started-freertos-thing)

1. [下载 FreeRTOS](#freertos-download)

1. [配置 FreeRTOS 演示](#freertos-configure)

## 设置你的 AWS 账户和权限
<a name="freertos-account-and-permissions"></a>

### 注册获取 AWS 账户
<a name="sign-up-for-aws"></a>

要开始使用 AWS，你需要一个 AWS 账户。有关创建的信息 AWS 账户，请参阅《*AWS 账户管理 参考指南》 AWS 账户中的[入门](https://docs.aws.amazon.com//accounts/latest/reference/getting-started.html)指南*。

要提供访问权限，请为您的用户、组或角色添加权限：
+ 中的用户和群组 AWS IAM Identity Center：

  创建权限集合。按照《AWS IAM Identity Center 用户指南》**中[创建权限集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)的说明进行操作。
+ 通过身份提供者在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供者创建角色（联合身份验证）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》**中[向用户添加权限（控制台）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

## 注册您的 MCU 主板 AWS IoT
<a name="get-started-freertos-thing"></a>

您的董事会必须注册 AWS IoT 才能与 AWS 云端通信。要注册您的董事会 AWS IoT，您必须：

**一项 AWS IoT 政策**  
该 AWS IoT 政策授予您的设备访问 AWS IoT 资源的权限。它存储在 AWS 云端。

**一 AWS IoT 件事**  
一个 AWS IoT 东西可以让你在中管理你的设备 AWS IoT。它存储在 AWS 云端。

**私钥和 X.509 证书**  
私钥和证书允许您的设备进行身份验证 AWS IoT。

要注册主板，请按照以下过程操作。

**要创建 AWS IoT policy**

1. 要创建 IAM 策略，您必须知道您的 AWS 地区和 AWS 账号。

   要查找您的 AWS 账号，请打开[AWS 管理控制台](https://console.aws.amazon.com/)，找到并展开右上角账户名称下方的菜单，然后选择**我的**账户。您的账户 ID 显示在 **Account Settings (账户设置)** 下。

   要查找您 AWS 账户所在 AWS 的地区，请使用 AWS Command Line Interface。要安装 AWS CLI，请按照《[AWS Command Line Interface 用户指南》](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)中的说明进行操作。安装后 AWS CLI，打开命令提示符窗口并输入以下命令：

   ```
   aws iot describe-endpoint --endpoint-type=iot:Data-ATS
   ```

   输出应该如下所示：

   ```
   {
       "endpointAddress": "xxxxxxxxxxxxxx-ats.iot.us-west-2.amazonaws.com"
   }
   ```

   在此示例中，区域为 `us-west-2`。
**注意**  
我们建议使用 ATS 端点，如示例所示。

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

1. 在导航窗格中依次选择**安全**、**策略**和**创建**。

1. 输入用于标识您的策略的名称。

1. 在**添加语句**部分中，选择**高级模式**。将以下 JSON 复制并粘贴到策略编辑器窗口中。`{{aws-account}}`用您的 AWS 地区`{{aws-region}}`和账户 ID 替换和。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iot:Connect",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Publish",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Subscribe",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Receive",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           }
       ]
   }
   ```

------

   此策略授予以下权限：  
**`iot:Connect`**  
向您的设备授予使用任何客户端 ID 连接 AWS IoT 消息代理的权限。  
**`iot:Publish`**  
授予设备在任何 MQTT 主题上发布 MQTT 消息的权限。  
**`iot:Subscribe`**  
授予设备订阅到任何 MQTT 主题筛选条件的权限。  
**`iot:Receive`**  
授予设备从 AWS IoT 消息代理接收有关任何 MQTT 主题的消息的权限。

1. 选择**创建**。

**为设备创建 IoT 事物、私有密钥和证书**

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

1. 在导航窗格中，选择**管理**，然后选择**事物**。

1. 如果您的账户中未注册任何 IoT 事物，此时将显示**您还没有任何事物**页面。如果您看到此页面，请选择**注册事物**。否则，选择**创建**。

1. 在**创建 AWS IoT 事物**页面上，选择**创建单个事物**。

1. 在**将设备添加到事物注册表**页面上，输入您事物的名称，然后选择**下一步**。

1. 在 “**为你的事物添加证书**” 页面上，在 “**One-click 证书创建**” 下，选择 “**创建证书**”。

1. 选择各项的**下载**链接来下载私有密钥和证书。

1. 选择**激活**来激活您的证书。必须先激活证书，然后才能使用它们 。

1. 选择 Att **ach a** policy，将策略附加到您的证书，该策略允许您的设备访问 AWS IoT 操作。

1. 选择您刚刚创建的策略，然后选择**注册事物**。

在您的董事会注册后 AWS IoT，您可以继续[下载 FreeRTOS](#freertos-download)。

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

[你可以从 FreeRTOS 存储库中下载 FreeRTOS。 GitHub ](https://github.com/freertos/freertos)

下载 FreeRTOS 后，您可以继续[配置 FreeRTOS 演示](#freertos-configure)。

## 配置 FreeRTOS 演示
<a name="freertos-configure"></a>

您需要在 FreeRTOS 目录中编辑一些配置文件，然后才能在主板上编译和运行演示。

**要配置你的 AWS IoT 端点**

您必须向FreeRTOS提供终端节点，以便在 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. 打开 `demos/include/aws_clientcredential.h`。

1. 为以下常量指定值：
   + `#define clientcredentialMQTT_BROKER_ENDPOINT "{{Your AWS IoT endpoint}}";`
   + `#define clientcredentialIOT_THING_NAME "{{The AWS IoT thing name of your board}}"`

**要配置你的 Wi-Fi**

如果您的主板通过连接连接到互联网，则必须向 FreeRTOS 提供连接网络 Wi-Fi 的凭据。 Wi-Fi 如果您的主板不支持 Wi-Fi，则可以跳过这些步骤。

1. `demos/include/aws_clientcredential.h`.

1. 为以下 `#define` 常量指定值：
   + `#define clientcredentialWIFI_SSID "{{The SSID for your Wi-Fi network}}"`
   + `#define clientcredentialWIFI_PASSWORD "{{The password for your Wi-Fi network}}"`
   + `#define clientcredentialWIFI_SECURITY` {{The security type of your Wi-Fi network}}

     有效安全类型为：
     + `eWiFiSecurityOpen`（开放，不安全）
     + `eWiFiSecurityWEP`（WEP 安全性）
     + `eWiFiSecurityWPA`（WPA 安全性）
     + `eWiFiSecurityWPA2`（WPA2 安全性）

**要格式化你的 AWS IoT 凭证**

FreeRTOS 必须 AWS IoT 将证书和私钥与您注册的内容及其权限策略相关联，才能代表您的设备成功 AWS IoT 与之通信。
**注意**  
要配置您的 AWS IoT 凭据，您必须拥有注册设备时从 AWS IoT 控制台下载的私钥和证书。将设备注册为 AWS IoT 事物后，您可以从 AWS IoT 控制台检索设备证书，但无法检索私钥。

FreeRTOS 是 C 语言项目，证书和私有密钥必须经过专门格式化才能添加到项目中。

1. 在浏览器窗口中，打开 `tools/certificate_configuration/CertificateConfigurator.html`。

1. 在 **Certificate PEM file (证书 PEM 文件)** 下，选择您从 AWS IoT 控制台下载的 `{{ID}}-certificate.pem.crt`。

1. 在 **Private Key PEM file (私有密钥 PEM 文件)** 下，选择您从 AWS IoT 控制台下载的 `{{ID}}-private.pem.key`。

1. 选择 **Generate and save aws\_clientcredential\_keys.h (生成并保存 aws\_clientcredential\_keys.h)**，然后将文件保存到 `demos/include` 中。这将覆盖目录中的现有文件。
**注意**  
证书和私钥是硬编码的，仅用于演示目的。 Production-level 应用程序应将这些文件存储在安全的位置。

完成 FreeRTOS 配置后，您可以继续参阅适用于您主板的入门指南，以便设置平台的硬件及其软件开发环境，然后在主板上编译并运行演示。有关主板特定的说明，请参阅[Board-specific 入门指南](getting-started-guides.md)。本入门教程中使用的演示应用程序为 coreMQTT 双向身份验证演示，位于 `demos/coreMQTT/mqtt_demo_mutual_auth.c` 中。