首次準備測試微型控制器主機板 - FreeRTOS

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

首次準備測試微型控制器主機板

重要

這是 FreeRTOS 使用者指南的封存版本,可與 FreeRTOS 版本 202012.00 搭配使用。如需本文件的最新版本,請參閱 FreeRTOS 使用者指南

您可以在移植 FreeRTOS 介面時,使用 IDT for FreeRTOS 進行測試。在您為電路板的裝置驅動程式移植 FreeRTOS 介面之後,您可以使用 在微型控制器電路板上 AWS IoT Device Tester 執行資格測試。

新增程式庫移植層

若要為您的裝置移植 FreeRTOS,請遵循 FreeRTOS 移植指南中的指示。

設定您的 AWS 登入資料

您需要設定 的 AWS 登入資料 AWS IoT Device Tester ,才能與 AWS 雲端通訊。如需詳細資訊,請參閱設定 AWS 用於開發的登入資料和區域。必須在devicetester_extract_location/devicetester_afreertos_[win|mac|linux]/configs/config.json組態檔案中指定有效的 AWS 登入資料。

在 IDT for FreeRTOS 中建立裝置集區

系統會將要測試的裝置整理為裝置集區,每個裝置集區都包含一個或多個相同的裝置。您可以設定 IDT for FreeRTOS 來測試集區中的單一裝置或集區中的多個裝置。為了加速資格程序,IDT for FreeRTOS 可以平行測試具有相同規格的裝置。該工具會採用循環配置資源方法,在裝置集區的每個裝置上執行不同的測試群組。

您可以在 configs 資料夾中編輯 device.json 範本的 devices 區段,進而新增一或多個裝置至裝置集區。

注意

同一個集區中的所有裝置皆需採用相同技術規格和 SKU。

若要為不同的測試群組啟用來源碼的平行建置,IDT for FreeRTOS 會將來源碼複製到 IDT for FreeRTOS 解壓縮資料夾內的結果資料夾。您必須使用 testdata.sourcePathsdkPath變數來參考建置或 Flash 命令中的原始程式碼路徑。IDT for FreeRTOS 會將此變數取代為複製來源碼的暫時路徑。如需詳細資訊,請參閱 IDT for FreeRTOS 變數

下方範例 device.json 檔案可用來建立具有多個裝置的裝置集區。

[ { "id": "pool-id", "sku": "sku", "features": [ { "name": "WIFI", "value": "Yes | No" }, { "name": "Cellular", "value": "Yes | No" }, { "name": "OTA", "value": "Yes | No", "configs": [ { "name": "OTADataPlaneProtocol", "value": "HTTP | MQTT | Both" } ] }, { "name": "BLE", "value": "Yes | No" }, { "name": "TCP/IP", "value": "On-chip | Offloaded | No" }, { "name": "TLS", "value": "Yes | No" }, { "name": "PKCS11", "value": "RSA | ECC | Both | No" }, { "name": "KeyProvisioning", "value": "Import | Onboard | No" } ], "devices": [ { "id": "device-id", "connectivity": { "protocol": "uart", "serialPort": "/dev/tty*" }, ***********Remove the section below if the device does not support onboard key generation*************** "secureElementConfig" : { "publicKeyAsciiHexFilePath": "absolute-path-to/public-key-txt-file: contains-the-hex-bytes-public-key-extracted-from-onboard-private-key", "secureElementSerialNumber": "secure-element-serialNo-value", "preProvisioned" : "Yes | No" }, ********************************************************************************************************** "identifiers": [ { "name": "serialNo", "value": "serialNo-value" } ] } ] } ]

以下是 device.json 檔案中使用的屬性:

id

使用者定義的英數字 ID,可唯一識別裝置集區。屬於集區的裝置必須為相同類型。執行測試套件時,集區中的裝置將用來將工作負載平行化。

sku

可唯一識別您要測試之主機板的英數字元值。SKU 用來追蹤合格的主機板。

注意

如果您想要在 AWS Partner Device Catalog 中列出您的電路板,您在此處指定的 SKU 必須符合您在列出程序中使用的 SKU。

features

包含裝置支援功能的陣列。 AWS IoT Device Tester 會使用此資訊選取要執行的資格測試。

支援的值如下:

TCP/IP

指出您的面板是否支援 TCP/IP 堆疊,以及支援晶載 (MCU) 或轉移到另一個模組。你需要 TCP/IP 才能符合資格。

WIFI

指出您的面板是否具有 Wi-Fi 功能。No 如果 設定為 ,則必須Cellular設定為 Yes

Cellular

指出您的電路板是否具有行動功能。No 如果 設定為 ,則必須WIFI設定為 Yes。當此功能設為 時Yes,將使用 AWS t2.micro EC2 執行個體執行 FullSecureSockets 測試,這可能會對您的帳戶產生額外費用。如需詳細資訊,請參閱 Amazon EC2 定價

TLS

指出您的面板是否支援 TLS。您需要 TLS 才能獲得資格。

PKCS11

指出面板支援的公有金鑰密碼編譯演算法。您需要 PKCS11 才能獲得資格。支援的值為 ECCRSABothNoBoth 表示主機板同時支援 ECCRSA 演算法。

KeyProvisioning

指出將受信任的 X.509 用戶端憑證寫入面板的方法。有效值為 ImportOnboardNo。需有主要佈建才能符合資格。

  • 如果主機板可允許匯入私有金鑰,請使用 Import。IDT 將建立私有金鑰,並將其建置至 FreeRTOS 原始程式碼。

  • 如果主機板可支援產生內建私有金鑰 (例如,如果裝置有安全元素,或您偏好產生自己的裝置金鑰對和憑證),請使用 Onboard。請務必在每個裝置區段中新增一個 secureElementConfig 元素,並在 publicKeyAsciiHexFilePath 欄位中放置公有金鑰檔案的絕對路徑。

  • 如果主機板不支援金鑰佈建,請使用 No

OTA

指出您的面板是否支援無線 (OTA) 更新功能。OtaDataPlaneProtocol 屬性指出裝置支援哪個 OTA 資料平面通訊協定。如果裝置不支援 OTA 功能,則會忽略此屬性。選取 "Both" 時,由於同時執行 MQTT、HTTP 和混合測試,OTA 測試執行時間會延長。

BLE

指出您的面板是否支援低功耗藍牙 (BLE)。

devices.id

使用者定義的唯一識別符,用於識別要測試的裝置。

devices.connectivity.protocol

用來與此裝置通訊的通訊協定。支援的值為:uart

devices.connectivity.serialPort

要測試用於連接到裝置之主機電腦的序列埠。

devices.secureElementConfig.PublicKeyAsciiHexFilePath

檔案的絕對路徑,此檔案包含從內建私有金鑰擷取的十六進位位元組公有金鑰。

範例格式:

3059 3013 0607 2a86 48ce 3d02 0106 082a 8648 ce3d 0301 0703 4200 04cd 6569 ceb8 1bb9 1e72 339f e8cf 60ef 0f9f b473 33ac 6f19 1813 6999 3fa0 c293 5fae 08f1 1ad0 41b7 345c e746 1046 228e 5a5f d787 d571 dcb2 4e8d 75b3 2586 e2cc 0c

如果您的公有金鑰是 .der 格式,您可以直接對公有金鑰進行十六進位編碼,以產生十六進位檔案。

.der 公有金鑰產生十六進位檔案的範例命令:

xxd -p pubkey.der > outFile

如果您的公有金鑰是 .pem 格式,您可以擷取 base64 編碼的部分,將其解碼為二進位格式,然後進行十六進位編碼以產生十六進位檔案。

例如,使用這些命令來產生 .pem 公有金鑰的十六進位檔案:

  1. 取出金鑰的 base64 編碼部分 (略過標頭和頁尾 ),並將其存放在檔案中,例如將其命名為 base64key,請執行此命令將其轉換為 .der 格式:

    base64 —decode base64key > pubkey.der
  2. 執行 xxd命令,將其轉換為十六進位格式。

    xxd -p pubkey.der > outFile
devices.secureElementConfig.SecureElementSerialNumber

(選用) 安全元素的序號。當您執行 FreeRTOS 示範/測試專案時,請在序號與裝置公有金鑰一起印出時提供此欄位。

devices.secureElementConfig.preProvisioned

(選用) 如果裝置具有具有鎖定登入資料的預先佈建安全元素,且無法匯入、建立或銷毀物件,請設定為「是」。此組態只有在 features KeyProvisioning設為 "Onboard" 且 PKCS11 設為 "ECC" 時才會生效。

identifiers

(選用) 任意的名稱/值組的陣列。您可以在下一節所述的建置和刷新命令中使用這些值。

設定建置、刷新和測試設定

若要讓 IDT for FreeRTOS 自動在您的主機板上建置和刷新測試,您必須設定 IDT 來執行硬體的建置和刷新命令。您可以在位於 config 資料夾的 userdata.json 範本檔案中配置建置和刷新命令設定。

配置設定以測試裝置

您可以在 configs/userdata.json 檔案中進行建置、刷新和測試設定。我們透過在 中載入用戶端和伺服器憑證和金鑰來支援 Echo Server 組態customPath。如需詳細資訊,請參閱 FreeRTOS 移植指南中的設定 echo 伺服器。下列 JSON 範例示範如何設定 IDT for FreeRTOS 來測試多個裝置:

{ "sourcePath": "/absolute-path-to/freertos", "vendorPath": "{{testData.sourcePath}}/vendors/vendor-name/boards/board-name", // ***********The sdkConfiguration block below is needed if you are not using the default, unmodified FreeRTOS repo. // In other words, if you are using the default, unmodified FreeRTOS repo then remove this block*************** "sdkConfiguration": { "name": "sdk-name", "version": "sdk-version", "path": "/absolute-path-to/sdk" }, "buildTool": { "name": "your-build-tool-name", "version": "your-build-tool-version", "command": [ "/absolute-path-to/build-parallel.sh {{testData.sourcePath}} {{enableTests}}" ] }, "flashTool": { "name": "your-flash-tool-name", "version": "your-flash-tool-version", "command": [ "/absolute-path-to/flash-parallel.sh {{testData.sourcePath}} {{device.connectivity.serialPort}} {{buildImageName}}" ], "buildImageInfo" : { "testsImageName": "tests-image-name", "demosImageName": "demos-image-name" } }, "clientWifiConfig": { "wifiSSID": "ssid", "wifiPassword": "password", "wifiSecurityType": "eWiFiSecurityOpen | eWiFiSecurityWEP | eWiFiSecurityWPA | eWiFiSecurityWPA2 | eWiFiSecurityWPA3" }, "testWifiConfig": { "wifiSSID": "ssid", "wifiPassword": "password", "wifiSecurityType": "eWiFiSecurityOpen | eWiFiSecurityWEP | eWiFiSecurityWPA | eWiFiSecurityWPA2 | eWiFiSecurityWPA3" }, //********** //This section is used to start echo server based on server certificate generation method, //When certificateGenerationMethod is set as Automatic specify the eccCurveFormat to generate certifcate and key based on curve format, //When certificateGenerationMethod is set as Custom specify the certificatePath and PrivateKeyPath to be used to start echo server //********** "echoServerCertificateConfiguration": { "certificateGenerationMethod": "Automatic | Custom", "customPath": { "clientCertificatePath":"/path/to/clientCertificate", "clientPrivateKeyPath": "/path/to/clientPrivateKey", "serverCertificatePath":"/path/to/serverCertificate", "serverPrivateKeyPath": "/path/to/serverPrivateKey" }, "eccCurveFormat": "P224 | P256 | P384 | P521" }, "echoServerConfiguration": { "securePortForSecureSocket": 33333, // Secure tcp port used by SecureSocket test. Default value is 33333. Ensure that the port configured isn't blocked by the firewall or your corporate network "insecurePortForSecureSocket": 33334, // Insecure tcp port used by SecureSocket test. Default value is 33334. Ensure that the port configured isn't blocked by the firewall or your corporate network "insecurePortForWiFi": 33335 // Insecure tcp port used by Wi-Fi test. Default value is 33335. Ensure that the port configured isn't blocked by the firewall or your corporate network }, "otaConfiguration": { "otaFirmwareFilePath": "{{testData.sourcePath}}/relative-path-to/ota-image-generated-in-build-process", "deviceFirmwareFileName": "ota-image-name-on-device", "otaDemoConfigFilePath": "{{testData.sourcePath}}/relative-path-to/ota-demo-config-header-file", "codeSigningConfiguration": { "signingMethod": "AWS | Custom", "signerHashingAlgorithm": "SHA1 | SHA256", "signerSigningAlgorithm": "RSA | ECDSA", "signerCertificate": "arn:partition:service:region:account-id:resource:qualifier | /absolute-path-to/signer-certificate-file", "signerCertificateFileName": "signerCertificate-file-name", "compileSignerCertificate": boolean, // ***********Use signerPlatform if you choose aws for signingMethod*************** "signerPlatform": "AmazonFreeRTOS-Default | AmazonFreeRTOS-TI-CC3220SF", "untrustedSignerCertificate": "arn:partition:service:region:account-id:resourcetype:resource:qualifier", // ***********Use signCommand if you choose custom for signingMethod*************** "signCommand": [ "/absolute-path-to/sign.sh {{inputImageFilePath}} {{outputSignatureFilePath}}" ] } }, // ***********Remove the section below if you're not configuring CMake*************** "cmakeConfiguration": { "boardName": "board-name", "vendorName": "vendor-name", "compilerName": "compiler-name", "frToolchainPath": "/path/to/freertos/toolchain", "cmakeToolchainPath": "/path/to/cmake/toolchain" }, "freertosFileConfiguration": { "required": [ { "configName": "pkcs11Config", "filePath": "{{testData.sourcePath}}/vendors/vendor-name/boards/board-path/aws_tests/config_files/core_pkcs11_config.h" }, { "configName": "pkcs11TestConfig", "filePath": "{{testData.sourcePath}}/vendors/vendor-name/boards/board-path/aws_tests/config_files/iot_test_pkcs11_config.h" } ], "optional": [ { "configName": "otaAgentTestsConfig", "filePath": "{{testData.sourcePath}}/vendors/vendor-name/boards/board-path/aws_tests/config_files/aws_ota_agent_config.h" }, { "configName": "otaAgentDemosConfig", "filePath": "{{testData.sourcePath}}/vendors/vendor-name/boards/board-path/aws_demos/config_files/aws_ota_agent_config.h" } ] } }

以下列出 userdata.json 中使用的屬性:

sourcePath

移植的 FreeRTOS 原始程式碼根目錄的路徑。若要使用 SDK 進行平行測試,sourcePath可以使用{{userData.sdkConfiguration.path}}預留位置設定 。例如:

{ "sourcePath":"{{userData.sdkConfiguration.path}}/freertos" }
vendorPath

廠商特定 FreeRTOS 程式碼的路徑。針對序列測試,vendorPath 可設定為絕對路徑。例如:

{ "vendorPath":"C:/path-to-freertos/vendors/espressif/boards/esp32" }

針對平行測試,可使用 {{testData.sourcePath}} 預留位置設定 vendorPath。例如:

{ "vendorPath":"{{testData.sourcePath}}/vendors/espressif/boards/esp32" }

只有在在沒有 SDK 的情況下執行 時,才需要 vendorPath變數,否則可以將其移除。

注意

在沒有 SDK 的情況下平行執行測試時,必須在 vendorPathbuildToolflashTool欄位中使用{{testData.sourcePath}}預留位置。使用單一裝置執行測試時,必須在 vendorPathbuildToolflashTool 欄位中使用絕對路徑。使用 SDK 執行 時,必須在 sourcePathbuildToolflashTool命令中使用{{sdkPath}}預留位置。

sdkConfiguration

如果您正在限定 FreeRTOS,且對檔案和資料夾結構所做的任何修改超過移植所需的修改,則需要在此區塊中設定 SDK 資訊。如果您不符合 SDK 內移植 FreeRTOS 的資格,則應完全省略此區塊。

sdkConfiguration.name

您搭配 FreeRTOS 使用的 SDK 名稱。如果您不是使用 SDK,則應該省略整個sdkConfiguration區塊。

sdkConfiguration.version

您搭配 FreeRTOS 使用的 SDK 版本。如果您不是使用 SDK,則應該省略整個sdkConfiguration區塊。

sdkConfiguration.path

包含 FreeRTOS 程式碼之 SDK 目錄的絕對路徑。如果您不是使用 SDK,則應該省略整個sdkConfiguration區塊。

buildTool

建置指令碼的完整路徑 (.bat 或 .sh),其中包含用來建立來源碼的命令。組建命令中對原始程式碼路徑的所有參考都必須取代為 AWS IoT Device Tester 變數,{{testdata.sourcePath}}而 SDK 路徑的參考應該取代為 {{sdkPath}}

buildImageInfo
testsImageName

freertos-source/tests 資料夾建置測試時,建置命令產生的檔案名稱。

demosImageName

freertos-source/demos 資料夾建置測試時,建置命令產生的檔案名稱。

flashTool

包含裝置刷新命令的刷新指令碼 (.sh 或 .bat) 完整路徑。所有對 flash 命令中原始程式碼路徑的參考都必須取代為 IDT for FreeRTOS 變數{{testdata.sourcePath}},而所有對 SDK 路徑的參考都必須取代為 IDT for FreeRTOS 變數 {{sdkPath}}

clientWifiConfig

用戶端 Wi-Fi 組態。Wi-Fi 程式庫測試需要 MCU 主機板,以連接到兩個存取點。(兩個存取點可以是相同的。) 此屬性會設定第一個存取點的 Wi-Fi 設定。某些 Wi-Fi 測試案例希望存取點有一些安全保障,因此並未開放使用。請確定兩個存取點與執行 IDT 的主機電腦位於相同的子網路上。

wifi_ssid

Wi-Fi SSID。

wifi_password

Wi-Fi 密碼。

wifiSecurityType

使用的 Wi-Fi 安全性類型。其中一個值:

  • eWiFiSecurityOpen

  • eWiFiSecurityWEP

  • eWiFiSecurityWPA

  • eWiFiSecurityWPA2

  • eWiFiSecurityWPA3

注意

即使主機板不支援 Wi-Fi,您仍需在 device.json 檔案中加入 clientWifiConfig 區段,但可以省略這些屬性的值。

testWifiConfig

測試 Wi-Fi 組態。Wi-Fi 程式庫測試需要 MCU 主機板,以連接到兩個存取點。(兩個存取點可以是相同的。) 此屬性會設定第二個存取點的 Wi-Fi 設定。某些 Wi-Fi 測試案例希望存取點有一些安全保障,因此並未開放使用。請確定兩個存取點與執行 IDT 的主機電腦位於相同的子網路上。

wifiSSID

Wi-Fi SSID。

wifiPassword

Wi-Fi 密碼。

wifiSecurityType

使用的 Wi-Fi 安全性類型。其中一個值:

  • eWiFiSecurityOpen

  • eWiFiSecurityWEP

  • eWiFiSecurityWPA

  • eWiFiSecurityWPA2

  • eWiFiSecurityWPA3

注意

即使主機板不支援 Wi-Fi,您仍需在 device.json 檔案中加入 testWifiConfig 區段,但可以省略這些屬性的值。

echoServerCertificateConfiguration

用於安全通訊端測試的可設定 echo 伺服器憑證產生預留位置。此欄位為必填。

certificateGenerationMethod

指定伺服器憑證是自動產生還是手動提供。

customPath

如果 certificateGenerationMethod是「自訂」,certificatePathprivateKeyPath則為必要項目。

certificatePath

指定伺服器憑證的 filepath。

privateKeyPath

指定私有金鑰的檔案路徑。

eccCurveFormat

指定主機板支援的曲線格式。在 中PKCS11將 設為 "ecc" 時為必要device.json。有效值為「P224」、「P256」、「P384」或「P521」。

echoServerConfiguration

適用於 WiFi 和安全通訊端測試的可設定 echo 伺服器連接埠。此欄位為選用欄位。

securePortForSecureSocket

用於設定具有 TLS 的 echo 伺服器連接埠,以供安全通訊端測試之用。預設值為 33333。請確定防火牆或您公司的網路未封鎖設定的連接埠。

insecurePortForSecureSocket

用於設定不具有 TLS 的 echo 伺服器連接埠,以供安全通訊端測試之用。測試中使用的預設值為 33334。請確定防火牆或您公司的網路未封鎖設定的連接埠。

insecurePortForWiFi

用於設定無 TLS 的 echo 伺服器連接埠,以供 WiFi 測試之用。測試中使用的預設值為 33335。請確定防火牆或您公司的網路未封鎖設定的連接埠。

otaConfiguration

OTA 組態。[選用]

otaFirmwareFilePath

建置之後建立的 OTA 映像的完整路徑。例如 {{testData.sourcePath}}/relative-path/to/ota/image/from/source/root

deviceFirmwareFileName

OTA 韌體所在之 MCU 裝置上的完整檔案路徑。有些裝置不會使用此欄位,但您仍須提供一值。

otaDemoConfigFilePath

aws_demo_config.h 的完整路徑,位於 afr-source/vendors/vendor/boards/board/aws_demos/config_files/ 內。這些檔案包含在 FreeRTOS 提供的移植程式碼範本中。

codeSigningConfiguration

程式碼簽章組態。

signingMethod

程式碼簽章方法。可能的值為 AWSCustom

注意

對於北京和寧夏區域,請使用 Custom。這些區域不支援AWS程式碼簽署。

signerHashingAlgorithm

裝置上支援的雜湊演算法。可能的值為 SHA1SHA256

signerSigningAlgorithm

裝置上支援的簽署演算法。可能的值為 RSAECDSA

signerCertificate

用於 OTA 的信任憑證。

對於 AWS 程式碼簽署方法,請針對上傳至 的信任憑證使用 Amazon Resource Name (ARN) AWS Certificate Manager。

對於自訂程式碼簽署方法,請使用簽署者憑證檔案的絕對路徑。

如需建立信任憑證的詳細資訊,請參閱 建立程式碼簽署憑證

signerCertificateFileName

在裝置上的程式碼簽署憑證位置。

compileSignerCertificate

true 如果未佈建或刷新程式碼簽署者簽章驗證憑證,則設定為 ,因此必須將其編譯至專案。 會 AWS IoT Device Tester 擷取信任的憑證並將其編譯至 aws_codesigner_certifiate.h

untrustedSignerCertificateArn

上傳至 ACM 之程式碼簽署憑證的 ARN。

signerPlatform

AWS Code Signer 在建立 OTA 更新任務時使用的簽署和雜湊演算法。目前,此欄位的可能值為 AmazonFreeRTOS-TI-CC3220SFAmazonFreeRTOS-Default

  • 如果是 SHA1RSA 則選擇 AmazonFreeRTOS-TI-CC3220SF

  • 如果是 SHA256ECDSA 則選擇 AmazonFreeRTOS-Default

如果您的組態需要 SHA256 | RSASHA1 | ECDSA,請聯絡我們以取得進一步支援。

如果您針對 signingMethod 選擇 Custom,請設定 signCommand

signCommand

用於執行自訂程式碼簽署的命令。您可以在 /configs/script_templates 目錄中找到範本。

命令中需要 {{inputImageFilePath}}{{outputSignatureFilePath}} 兩個預留位置。{{inputImageFilePath}} 是由 IDT 建立要簽署之影像的檔案路徑。{{outputSignatureFilePath}} 是將由指令碼產生簽章的檔案路徑。

otaDemoConfigFilePath

aws_demo_config.h 的完整路徑,位於 afr-source/vendors/vendor/boards/board/aws_demos/config_files/ 內。這些檔案包含在 FreeRTOS 提供的移植程式碼範本中。

cmakeConfiguration

CMake 組態 [選用]

注意

您需要提供主機板名稱、廠商名稱,以及 frToolchainPathcompilerName,才能執行 CMake 測試案例。cmakeToolchainPath 如果您有 CMake 工具鏈的自訂路徑,您也可以提供 。

boardName

待測主機板的名稱。主機板名稱應與 path/to/afr/source/code/vendors/vendor/boards/board 下的資料夾名稱相同。

vendorName

待測主機板的廠商名稱。廠商應與 path/to/afr/source/code/vendors/vendor 下的資料夾名稱相同。

compilerName

編譯器的名稱。

frToolchainPath

編譯器工具鏈的完整路徑。

cmakeToolchainPath

CMake 工具鏈的完整路徑。此為選用欄位。

freertosFileConfiguration

IDT 在執行測試之前修改的 FreeRTOS 檔案組態。

required

本節指定您已移動其組態檔案的必要測試,例如 PKCS11、TLS 等。

configName

正在設定的測試名稱。

filePath

freertos 儲存庫中組態檔案的絕對路徑。使用 {{testData.sourcePath}}變數來定義路徑。

optional

本節指定您已移動其組態檔案的選用測試,例如 OTA、WiFi 等。

configName

正在設定的測試名稱。

filePath

freertos 儲存庫中組態檔案的絕對路徑。使用 {{testData.sourcePath}}變數來定義路徑。

注意

您需要提供主機板名稱、廠商名稱,以及 afrToolchainPathcompilerName,才能執行 CMake 測試案例。如果您有 CMake 工具鏈的自訂路徑,也可以提供 cmakeToolchainPath

IDT for FreeRTOS 變數

建置程式碼和刷新裝置的命令可能需要連線或裝置的其他資訊,才能成功執行。 AWS IoT Device Tester 可讓您參考刷新中的裝置資訊,並使用 JsonPath 建置命令。透過使用簡單的 JsonPath 運算式,您可以擷取 device.json 檔案中指定的必要資訊。

路徑變數

IDT for FreeRTOS 定義下列路徑變數,可用於命令列和組態檔案:

{{testData.sourcePath}}

展開至原始程式碼路徑。如果您使用此變數,則必須同時在快閃和建置命令中使用。

{{sdkPath}}

在組建和快閃記憶體命令中使用userData.sdkConfiguration.path時, 會擴展到 中的值。

{{device.connectivity.serialPort}}

展開至序列埠。

{{device.identifiers[?(@.name == 'serialNo')].value[0]}}

展開至裝置的序號。

{{enableTests}}

指出建置是否用於測試 (值 1) 或示範 (值 0) 的整數值。

{{buildImageName}}

檔案名稱使用建置命令產生的映像建置。

{{otaCodeSignerPemFile}}

OTA 程式碼簽署者的 PEM 檔案。