

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Cypress CY8CKIT-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)。 FreeRTOS 

本教學課程提供開始使用 [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)。完成先決條件後，您將擁有具有 AWS IoT Core 登入資料的 FreeRTOS 套件。

**注意**  
在本教學課程中，在「第一個步驟」區段中建立的 FreeRTOS 下載目錄路徑稱為 `freertos`。

## 設定開發環境
<a name="getting_started_cypress_psoc64_setup"></a>

FreeRTOS 適用於 CMake 或建立建置流程。您可以使用 ModusToolbox 進行建立流程。您可以使用與 ModusToolbox 一起交付的 Eclipse IDE 或合作夥伴 IDE，例如 IAR EW-Arm、Arm MDK 或 Microsoft 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`在上一個步驟中下載的封存擷取內容。

#### 更新 Firmware-loader
<a name="getting_started_cypress_psoc64_firmware_loader_update"></a>

此套件需要 Cypress Firmware-loader 3.0.0 或更新版本。

**更新 Cypress Firmware-loader**

1. 前往 [Cypress Firmware-loader 版本頁面](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 程式設計](https://www.cypress.com/products/psoc-programming-solutions)器。如需詳細資訊，請參閱[搭配 FreeRTOS 使用 CMake](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) 下的 **Device Manager** 來識別它。

   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. 開啟適用於 ModusToolbox 的 Eclipse IDE，然後選擇或建立工作區。

   1. 從 **File (檔案)** 功能表中，選擇 **Import (匯入)**。

      展開**一般**，選擇**現有專案到工作區**，然後選擇**下一步**。

   1. 在**根目錄中**，輸入 `freertos/projects/cypress/CY8CKIT-064S0S2-4343W/mtb/aws_demos` ，然後選取專案名稱 `aws_demos`。預設應該選取它。

   1. 選擇**完成**，將專案匯入您的工作區。

   1. 執行下列其中一項操作來建置應用程式：
      + 從**快速面板**中，選取**建置 aws\$1demos 應用程式**。
      + 選擇**專案**，然後選擇**全部建置**。

      確保專案編譯時不會發生錯誤。

1. 

**監控雲端的 MQTT 訊息**  
執行示範之前，您可以在 AWS IoT 主控台中設定 MQTT 用戶端，以監控裝置傳送至 AWS 雲端的訊息。若要使用 MQTT 用戶端訂閱 AWS IoT MQTT 主題，請遵循下列步驟。

   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 Program (KitProg3)**。這會在程式設計完成後，開始對電路板和示範應用程式進行程式設計。

   1. 您可以在序列終端機中檢視執行中應用程式的狀態。下圖顯示終端機輸出的一部分。  
![\[建置aws_demo專案後終端機輸出的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/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. 

**搭配 FreeRTOS 使用 CMake**  
您也可以使用 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更新示範
+ Secure Sockets Echo 用戶端示範
+ AWS IoT 裝置影子示範

## 除錯
<a name="getting_started_cypress_psoc64_debugging"></a>

套件上的 KitProg3 支援透過 SWD 通訊協定進行偵錯。
+ 若要偵錯 FreeRTOS 應用程式，請在工作區中選取 **aws\$1demos 專案**，然後從**快速面板**中選取 **aws\$1demos Debug (KitProg3)**。

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

PSoC 64 MCUs 已通過所有必要的 FreeRTOS 資格測試。不過，在 PSoC 64 標準安全 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) 除外。

當成功驗證的 OTA 映像使用 PSoC64 標準安全 – AWS MCU 套用至裝置，且裝置無法與之通訊時 AWS IoT Core，裝置就無法自動轉返至原始已知的良好映像。這可能會導致無法從 連線裝置 AWS IoT Core 以進行進一步更新。Cypress 團隊仍在開發此功能。

如需詳細資訊，請參閱 [的 OTA 更新 AWS 和 CY8CKIT-064S0S2-4343W 套件](https://community.cypress.com/docs/DOC-20063)。如果您有其他問題或需要技術支援，請聯絡 [Cypress 開發人員社群](https://community.cypress.com)。