

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

# 初始步骤
<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-DevKit C ESP-WROVER-KIT、或 ESP32-WROOM-32SE，请跳过这些步骤转到。[开始使用 Espressif ESP32-C 和 DevKit ESP-WROVER-KIT](getting_started_espressif.md)
如果你使用的是 Nordic n RF5284 0-DK，请跳过这些步骤并转到。[Nordic nRF52840-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 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.aws.amazon.com/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 [https://aws.amazon.com/](https://aws.amazon.com/)并选择 “**我的账户”，查看您当前的账户活动并管理您的账户**。

### 创建具有管理访问权限的用户
<a name="create-an-admin"></a>

注册后，请保护您的安全 AWS 账户 AWS 账户根用户AWS IAM Identity Center，启用并创建管理用户，这样您就不会使用 root 用户执行日常任务。

**保护你的 AWS 账户根用户**

1.  选择 **Root 用户**并输入您的AWS 账户电子邮件地址，以账户所有者的身份登录。[AWS 管理控制台](https://console.aws.amazon.com/)在下一页上，输入您的密码。

   要获取使用根用户登录方面的帮助，请参阅《AWS 登录 用户指南》**中的 [Signing in as the root user](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 为您的根用户启用多重身份验证（MFA）。

   有关说明，请参阅 I [A *M* 用户指南中的为AWS 账户根用户启用虚拟 MFA 设备（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**创建具有管理访问权限的用户**

1. 启用 IAM Identity Center。

   有关说明，请参阅**《AWS IAM Identity Center 用户指南》中的 [Enabling。AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)

1. 在 IAM Identity Center 中，为用户授予管理访问权限。

   有关使用IAM Identity Center 目录作为身份源的教程，请参阅《[用户*指南》IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center用户*访问权限](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理访问权限的用户身份登录**
+ 要使用您的 IAM Identity Center 用户身份登录，请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录 URL。

  有关使用 IAM Identity Center 用户[登录的帮助，请参阅*AWS 登录用户指南*中的登录AWS访问门户](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**将访问权限分配给其他用户**

1. 在 IAM Identity Center 中，创建一个权限集，该权限集遵循应用最低权限的最佳做法。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 将用户分配到一个组，然后为该组分配单点登录访问权限。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.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策略**

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. 在**添加事物的证书**页面上的**一键式创建证书**下，选择**创建证书**。

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 "YourAWS IoTendpoint";`
   + `#define clientcredentialIOT_THING_NAME "TheAWS IoTthing name of your board"`

**配置 Wi-Fi**

如果您的主板通过 Wi-Fi 连接到 Internet，则必须向 FreeRTOS 提供 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\$1clientcredential\$1keys.h (生成并保存 aws\$1clientcredential\$1keys.h)**，然后将文件保存到 `demos/include` 中。这将覆盖目录中的现有文件。
**注意**  
仅出于演示目的对证书和私有密钥进行了硬编码。生产级应用程序应将这些文件存储在安全位置。

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