

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

# 赛普拉斯 CY8 CKIT-064S0S2-4343W 套件入门
<a name="getting_started_cypress_psoc64"></a>

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

本教程提供了 [CY8CKIT-064S0S2-4343W](https://www.cypress.com/CY8CKIT-064S0S2-4343W) 套件的入门说明。如果您还没有此工具包，可以使用该链接购买一个。您也可以使用该链接访问有关此工具包的用户指南。

## 开始使用
<a name="getting_started_cypress_psoc64_first"></a>

在开始之前，您必须配置 AWS IoT 和 FreeRTOS 以将您的设备连接到云端。 AWS 有关说明，请参阅[初始步骤](freertos-prereqs.md)。完成先决条件后，您将获得一个带有凭据的 FreeRTOS 软件包。 AWS IoT Core 

**注意**  
在本教程中，在“初始步骤”一节中创建的 FreeRTOS 下载目录的路径称为 `freertos`。

## 设置开发环境
<a name="getting_started_cypress_psoc64_setup"></a>

FreeRTOS 可以与 CMake a 或 Make 构建流程配合使用。你可以用 ModusToolbox 于 Make 构建流程。你可以使用随附的 Eclipse IDE ModusToolbox 或合作伙伴 IDE，例如 IAR ew-arm、Arm MDK 或微软 Visual Studio Code。Eclipse IDE 与 Windows、macOS 和 Linux 操作系统兼容。

在开始之前，请下载并安装最新的[ModusToolbox 软件](https://www.cypress.com/products/modustoolbox-software-environment)。有关更多信息，请参阅《[ModusToolbox 安装指南》](https://www.cypress.com/ModusToolboxInstallGuide)。

### 更新 ModusToolbox 2.1 或更早版本的工具
<a name="getting_started_cypress_psoc64_modus_toolbox_updates"></a>

如果你使用 ModusToolbox 2.1 Eclipse IDE 对该套件进行编程，则需要更新 OpenOCD 和固件加载器工具。

在以下步骤中，`ModusToolbox` 的默认路径为：
+ 在 Windows 上为 `C:\Users\user_name\ModusToolbox`。
+ 在 Linux 上为 `user_home/ModusToolbox`，或您选择的提取存档文件的路径。
+ 在 MacOS 上为您在向导中选择的卷中的“应用程序”文件夹下。

#### 更新 OpenOCD
<a name="getting_started_cypress_psoc64_openocd_update"></a>

该工具包需要 Cypress OpenOCD 4.0.0 或更高版本才能成功对芯片进行擦除和编程。

**更新 Cypress OpenOCD**

1. 转到 [Cypress OpenOCD 发布页面](https://github.com/Infineon/openocd/releases)。

1. 下载适用于您的操作系统的存档文件 (Windows/Mac/Linux)。

1. 删除 `ModusToolbox/tools_2.x/openocd` 中的现有文件。

1. 将 `ModusToolbox/tools_2.x/openocd` 中的文件替换为您在上一步下载的存档中提取的内容。

#### 更新固件加载程序
<a name="getting_started_cypress_psoc64_firmware_loader_update"></a>

此工具包需要 Cypress 固件加载程序 3.0.0 或更高版本。

**更新 Cypress 固件加载程序**

1. 转到 [Cypress 固件加载程序发布页面](https://github.com/cypresssemiconductorco/Firmware-loader/releases)。

1. 下载适用于您的操作系统的存档文件 (Windows/Mac/Linux)。

1. 删除 `ModusToolbox/tools_2.x/fw-loader` 中的现有文件。

1. 将 `ModusToolbox/tools_2.x/fw-loader` 中的文件替换为您在上一步下载的存档中提取的内容。

或者，您可以使用 CMake 从 FreeRTOS 应用程序源代码生成项目构建文件，使用首选的构建工具生成项目，然后使用 OpenOCD 对套件进行编程。如果您更喜欢使用 GUI 工具按照 CMake 流程进行编程，请从 Cypress 编程[解决方案网页下载并安装 Cypress Program](https://www.cypress.com/products/psoc-programming-solutions) menter。有关更多信息，请参阅 [CMake 与 FreeRTOS 一起使用](getting-started-cmake.md)。

## 设置硬件
<a name="getting_started_cypress_psoc64_hardware"></a>

按照以下步骤设置工具包的硬件。

1. 

**配置工具包**  
按照 [ CY8CKIT-064S0S2-4343W 套件配置指南](https://community.cypress.com/docs/DOC-20043)中的说明安全地为其配置套件 AWS IoT。

   此套件需要 CySecureTools 3.1.0 或更高版本。

1. **设置串行连接**

   1. 将工具包连接到主机。

   1. 该工具包的 USB 串行端口会在主机上自动枚举。识别端口号。在 Windows 中，您可以使用**端口**（COM 和 LPT）下的**设备管理器**进行识别。

   1. 启动一个串行终端，使用以下设置建立连接：
      + 波特率：115200
      + 数据：8 位
      + 奇偶校验：无
      + 停止位：1
      + 流控制：无

## 构建并运行 FreeRTOS 演示项目
<a name="getting_started_cypress_psoc64_build_run"></a>

在本节中，您将构建并运行演示。

1. 请务必按照 [ CY8CKIT-064S0S2-4343W 套件配置指南中的步骤进行](https://community.cypress.com/docs/DOC-20043)操作。

1. **构建 FreeRTOS 演示。**

   1. 打开 Eclipse IDE， ModusToolbox 然后选择或创建工作区。

   1. 从**文件**菜单中，选择**导入**。

      展开**常规**，选择**现有项目到工作区**，然后选择**下一步**。

   1. 在**根目录中**，输入 `freertos/projects/cypress/CY8CKIT-064S0S2-4343W/mtb/aws_demos` 并选择项目名称 `aws_demos`。默认情况下会将其选中。

   1. 选择**完成**，以便将项目导入工作区。

   1. 要构建应用程序，请执行以下操作之一：
      + 在**快速面板**中，选择**构建 aws\$1demos 应用程序**。
      + 选择**项目**，然后选择**全部构建**。

      确保编译过程没有错误。

1. 

**在云上监控 MQTT 消息**  
在运行演示之前，您可以在 AWS IoT 控制台中设置 MQTT 客户端，以监控您的设备发送到 AWS 云端的消息。要通过 MQTT 客户端订阅 M AWS IoT QTT 主题，请按照以下步骤操作。

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

   1. 在导航窗格中选择**测试**，然后选择 **MQTT 测试客户端**，以便打开 MQTT 客户端。

   1. 对于**订阅主题**，请输入 ***your-thing-name*/example/topic**，然后选择**订阅主题**。

1. **运行 FreeRTOS 演示项目**

   1. 在工作区中选择项目 `aws_demos`。

   1. 在**快速面板**中，选择 **aws\$1demos 程序 (3) KitProg**。这会对开发主板进行编程，并在编程完成后开始运行演示应用程序。

   1. 您可以在串行终端上查看运行应用程序的状态。下图显示了终端输出的一部分。  
![\[构建 aws_demo 项目后终端输出的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/freertos/latest/userguide/images/gsg-psoc64-terminal-output.png)

      MQTT 演示发布有关四个不同主题（`iotdemo/topic/n`，其中 n=1 到 4）的消息，并订阅所有这些主题以接收相同的消息。收到消息后，该演示会发布一条关于主题 `iotdemo/acknowledgements` 的确认消息。以下列表介绍终端输出中显示的调试消息，并引用了消息的序列号。在输出中，首先输出 WICED 主机驱动程序 (WHD) 的驱动程序详细信息（不带序列号）。

      1. 1 到 4-设备连接到已配置的接入点 (AP)，并通过使用配置的端点和证书连接到 AWS 服务器进行配置。

      1. 5 到 13 – CoreMQTT 库已初始化且设备已建立 MQTT 连接。

      1. 14 到 17 – 设备订阅所有主题以接收发布的消息。

      1. 18 到 30 – 设备发布两条消息并等待接收。收到每条消息后，设备都会发送一条确认消息。

      相同的发布、接收和确认周期一直会持续到所有消息发布为止。在配置的周期数完成之前，每个周期都会发布两条消息。

1. 

**CMake 与 FreeRTOS 一起使用**  
您也可以使用 CMake 来构建和运行演示应用程序。要设置 CMake 和原生构建系统，请参阅[先决条件](getting-started-cmake.md#building-cmake-prereqs)。

   1. 使用以下命令可生成构建文件。使用 `-DBOARD` 选项指定目标主板。

      ```
      cmake -DVENDOR=cypress -DBOARD=CY8CKIT_064S0S2_4343W -DCOMPILER=arm-gcc -S freertos -B build_dir
      ```

      如果你使用的是 Windows，则必须使用`-G`选项指定本机生成系统，因为默认情况下 CMake 使用 Visual Studio。  
**Example**  

      ```
      cmake -DVENDOR=cypress -DBOARD=CY8CKIT_064S0S2_4343W -DCOMPILER=arm-gcc -S freertos -B build_dir -G Ninja
      ```

      如果`arm-none-eabi-gcc`不在你的 shell 路径中，你还需要设置`AFR_TOOLCHAIN_PATH` CMake 变量。  
**Example**  

      ```
       -DAFR_TOOLCHAIN_PATH=/home/user/opt/gcc-arm-none-eabi/bin
      ```

   1. 使用以下命令使用生成项目 CMake。

      ```
      cmake --build build_dir
      ```

   1. 最后，使用 Cypress Programmer 对 `build_dir` 下生成的 `cm0.hex` 和 `cm4.hex` 文件进行编程。

### 运行其他演示
<a name="getting_started_cypress_psoc64_demos"></a>

以下演示应用程序已经过测试和验证，可以与当前版本配合使用。您可以在 `freertos/demos` 目录下找到这些演示。有关如何运行这些演示的信息，请参阅 [FreeRTOS 演示](freertos-next-steps.md)。
+ 低功耗蓝牙演示
+ Over-the-Air 更新演示
+ 安全套接字 Echo 客户端演示
+ AWS IoT Device Shadow 演示

## 调试
<a name="getting_started_cypress_psoc64_debugging"></a>

套件上的 KitProg 3 支持通过 SWD 协议进行调试。
+ **要调试 FreeRTOS 应用程序，请在工作区中选择 **aws\$1demos** 项目，然后从快速面板中**选择 aws\$1demo** s Debug (3)。KitProg**

## OTA 更新
<a name="getting_started_cypress_psoc64_ota_updates"></a>

PSoC 64 MCUs 已通过所有必需的 FreeRTOS 资格测试。但是， PSoC 64 Standard Secure AWS 固件库中实现的可选 over-the-air (OTA) 功能仍有待评估。目前实现的 OTA 功能已通过所有 OTA 资格认证测试，但 [aws\$1ota\$1test\$1case\$1rollback\$1if\$1unable\$1to\$1connect\$1after\$1update.py](https://github.com/aws/amazon-freertos/blob/202012.00/tools/ota_e2e_tests/aws_ota_test/aws_ota_test_case_rollback_if_unable_to_connect_after_update.py) 除外。

当使用 PSo C64 Standard Secure — AWS MCU 将成功验证的 OTA 映像应用于设备并且该设备无法与之通信时 AWS IoT Core，该设备无法自动回滚到原始已知良好的映像。这可能会导致无法访问该设备 AWS IoT Core 以进行进一步的更新。Cypress团队仍在开发此功能。

有关更多信息，请参阅[附带的 OTA 更新 AWS 和 CY8 CKIT-064S0S2-4343W 套件](https://community.cypress.com/docs/DOC-20063)。如果您还有其他问题或需要技术支持，请联系[Cypress 开发人员社区](https://community.cypress.com)。