本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
配置設定以測試裝置
您可以在 configs/userdata.json
檔案中進行建置、刷新和測試設定。我們透過在 中載入用戶端和伺服器憑證和金鑰來支援 Echo Server 組態customPath
。如需詳細資訊,請參閱 免費RTOS移植指南中的設定回應伺服器。下列JSON範例示範如何IDT設定 免費RTOS以測試多個裝置:
{
"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": [
"{{config.idtRootPath}}/relative-path-to/build-parallel.sh
{{testData.sourcePath}} {{enableTests}}"
]
},
"flashTool": {
"name": "your-flash-tool-name
",
"version": "your-flash-tool-version
",
"command": [
"/{{config.idtRootPath}}/relative-path-to/flash-parallel.sh
{{testData.sourcePath}} {{device.connectivity.serialPort}} {{buildImageName}}"
],
"buildImageInfo" : {
"testsImageName": "tests-image-name
",
"demosImageName": "demos-image-name
"
}
},
"testStartDelayms": 0,
"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-name
/aws_tests/config_files/core_pkcs11_config.h"
},
{
"configName": "pkcs11TestConfig",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_tests/config_files/iot_test_pkcs11_config.h"
}
],
"optional": [
{
"configName": "otaAgentTestsConfig",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_tests/config_files/ota_config.h"
},
{
"configName": "otaAgentDemosConfig",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_demos/config_files/ota_config.h"
},
{
"configName": "otaDemosConfig",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_demos/config_files/ota_demo_config.h"
}
]
}
}
以下列出 userdata.json
中使用的屬性:
sourcePath
-
移植的免費RTOS來源程式碼根目錄的路徑。若要使用 進行平行測試SDK,
sourcePath
可以使用{{userData.sdkConfiguration.path}}
預留位置設定 。例如:{ "sourcePath":"{{userData.sdkConfiguration.path}}/
freertos
" } vendorPath
-
廠商特定免費RTOS程式碼的路徑。針對序列測試,
vendorPath
可設定為絕對路徑。例如:{ "vendorPath":"C:/
path-to-freertos
/vendors/espressif/boards/esp32
" }針對平行測試,可使用
{{testData.sourcePath}}
預留位置設定vendorPath
。例如:{ "vendorPath":"{{testData.sourcePath}}/vendors/espressif/boards/esp32" }
只有在沒有 的情況下執行 時,才需要
vendorPath
變數SDK,否則可以將其移除。注意
在沒有 的情況下平行執行測試時SDK,必須在
vendorPath
、buildTool
、flashTool
欄位中使用{{testData.sourcePath}}
預留位置。使用單一裝置執行測試時,必須在vendorPath
、buildTool
、flashTool
欄位中使用絕對路徑。使用 執行 時SDK,必須在sourcePath
、buildTool
和flashTool
命令中使用{{sdkPath}}
預留位置。 sdkConfiguration
-
如果對RTOS檔案和資料夾結構進行任何修改,超出了移植所需的修改,則您需要在此區塊中設定SDK您的資訊。如果您不符合在 內使用移植的免費RTOS 的資格SDK,則應該完全省略此區塊。
sdkConfiguration.name
-
SDK 您搭配 Free 使用的 名稱RTOS。如果您不使用 SDK,則應該省略整個
sdkConfiguration
區塊。 sdkConfiguration.version
-
SDK 您搭配 Free 使用的 版本RTOS。如果您不使用 SDK,則應該省略整個
sdkConfiguration
區塊。 sdkConfiguration.path
-
包含免費RTOS程式碼的SDK目錄絕對路徑。如果您不使用 SDK,則應該省略整個
sdkConfiguration
區塊。
buildTool
-
建置指令碼的完整路徑 (.bat 或 .sh),其中包含用來建立來源碼的命令。建置命令中對原始程式碼路徑的所有參考都必須取代為 AWS IoT Device Tester 變數,
{{testdata.sourcePath}}
而對SDK路徑的參考應該取代為{{sdkPath}}
。使用{{config.idtRootPath}}
預留位置參考絕對或相對IDT路徑。 testStartDelayms
-
指定 FreeRTOS 測試執行器在開始執行測試之前等待多少毫秒。如果受測裝置在因網路或其他延遲IDT而有機會連線和開始記錄之前,開始輸出重要的測試資訊,這很有用。允許的值上限為 30000 毫秒 (30 秒)。此值僅適用於免費RTOS測試群組,不適用於不使用免費RTOS測試執行器的其他測試群組,例如OTA測試。
flashTool
-
包含用於裝置的刷入命令之刷入指令碼 (.sh 或 .bat) 的完整路徑。快閃命令中對原始程式碼路徑的所有參考都必須取代IDT為 for FreeRTOS 變數,
{{testdata.sourcePath}}
而對SDK路徑的所有參考都必須取代為 IDT for FreeRTOS 變數{{sdkPath}}
。使用{{config.idtRootPath}}
預留位置來參考絕對或相對IDT路徑。buildImageInfo
-
testsImageName
-
從
資料夾建置測試時,建置命令產生的檔案名稱。freertos-source
/tests demosImageName
-
從
資料夾建置測試時,建置命令產生的檔案名稱。freertos-source
/demos
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
-
用於安全通訊端測試的可設定回應伺服器憑證產生預留位置。此欄位為必填。
certificateGenerationMethod
-
指定是自動產生還是手動提供伺服器憑證。
customPath
-
如果
certificateGenerationMethod
為「自訂」,certificatePath
則privateKeyPath
為必要項目。certificatePath
-
指定伺服器憑證的檔案路徑。
privateKeyPath
-
指定私有金鑰的檔案路徑。
eccCurveFormat
-
指定界面卡支援的曲線格式。在 中
PKCS11
將 設為 "ecc" 時為必要device.json
。有效值為「P224」、「P256」、「P384」或「P521」。
echoServerConfiguration
-
WiFi 和安全通訊端的可設定回應伺服器連接埠會進行測試。此欄位為選用欄位。
securePortForSecureSocket
-
用於使用 設定回應伺服器的連接埠,TLS以進行安全通訊端測試。預設值為 33333。請確定防火牆或您公司的網路未封鎖設定的連接埠。
insecurePortForSecureSocket
-
用於設定回應伺服器的連接埠,而不需要 TLS 進行安全通訊端測試。測試中使用的預設值為 33334。請確定防火牆或您公司的網路未封鎖設定的連接埠。
insecurePortForWiFi
-
用於設定回應伺服器的連接埠,而不需要TLS WiFi 進行測試。測試中使用的預設值為 33335。請確定防火牆或您公司的網路未封鎖設定的連接埠。
otaConfiguration
-
OTA 組態。[選用]
otaFirmwareFilePath
-
建置之後建立之OTA映像的完整路徑。例如:
{{testData.sourcePath}}/
。relative-path/to/ota/image/from/source/root
deviceFirmwareFileName
-
OTA 韌體所在MCU裝置上的完整檔案路徑。有些裝置不使用此欄位,但您仍必須提供值。
otaDemoConfigFilePath
-
aws_demo_config.h
的完整路徑,位於
內。這些檔案包含在 FreeRTOS 提供的移植程式碼範本中。afr-source
/vendors/vendor/boards/board/aws_demos/config_files/ codeSigningConfiguration
-
程式碼簽章組態。
signingMethod
-
程式碼簽章方法。可能的值為
AWS
或Custom
。注意
對於北京和寧夏區域,請使用
Custom
。這些區域不支援AWS
程式碼簽署。 signerHashingAlgorithm
-
裝置上支援的雜湊演算法。可能的值為
SHA1
或SHA256
。 signerSigningAlgorithm
-
裝置上支援的簽署演算法。可能的值為
RSA
或ECDSA
。 signerCertificate
-
用於 的受信任憑證OTA。
對於 AWS 程式碼簽署方法,請針對上傳至 的受信任憑證使用 Amazon Resource Name (ARN) AWS Certificate Manager。
對於自訂程式碼簽署方法,請使用簽署者憑證檔案的絕對路徑。
如需建立信任憑證的詳細資訊,請參閱 建立程式碼簽署憑證。
signerCertificateFileName
-
裝置上的程式碼簽署憑證檔案名稱。此值必須符合您在執行
aws acm import-certificate
命令時提供的檔案名稱。如需詳細資訊,請參閱建立程式碼簽署憑證。
compileSignerCertificate
-
true
如果程式碼簽署者簽章驗證憑證未佈建或閃爍,則設定為 ,因此必須將其編譯至專案中。 會 AWS IoT Device Tester 擷取信任的憑證並將其編譯至aws_codesigner_certifiate.h
。 untrustedSignerCertificate
-
某些OTA測試中用作不受信任憑證的第二個憑證的 ARN或 檔案路徑。如需建立憑證的詳細資訊,請參閱建立程式碼簽署憑證。
signerPlatform
-
AWS Code Signer 在建立OTA更新任務時使用的簽署和雜湊演算法。目前,此欄位的可能值為
AmazonFreeRTOS-TI-CC3220SF
和AmazonFreeRTOS-Default
。-
如果是
SHA1
和RSA
則選擇AmazonFreeRTOS-TI-CC3220SF
。 -
如果是
SHA256
和ECDSA
則選擇AmazonFreeRTOS-Default
。
如果您的組態需要
SHA256
|RSA
或SHA1
|ECDSA
,請聯絡我們以取得進一步支援。如果您針對
signingMethod
選擇Custom
,請設定signCommand
。 -
signCommand
-
用於執行自訂程式碼簽署的命令。您可以在
/configs/script_templates
目錄中找到範本。命令中
{{outputSignatureFilePath}}
需要兩個預留位置{{inputImageFilePath}}
和 。{{inputImageFilePath}}
是IDT待簽署映像的檔案路徑。{{outputSignatureFilePath}}
是指令碼產生的簽章檔案路徑。
cmakeConfiguration
-
CMake 組態 【選用】
注意
若要執行CMake測試案例,您必須提供界面卡名稱、廠商名稱,以及
frToolchainPath
或compilerName
。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修改的 免費RTOS檔案組態。
required
-
本節指定您移動了其組態檔案的必要測試,例如 TLS、 PKCS11等。
configName
-
正在設定的測試名稱。
filePath
-
儲存庫中組態檔案的絕對路徑。使用freertos
{{testData.sourcePath}}
變數來定義路徑。
optional
-
本節指定您已移動其組態檔案的選用測試,例如 OTA WiFi等。
configName
-
正在設定的測試名稱。
filePath
-
儲存庫中組態檔案的絕對路徑。使用freertos
{{testData.sourcePath}}
變數來定義路徑。
注意
若要執行CMake測試案例,您必須提供界面卡名稱、廠商名稱,以及 afrToolchainPath
或 compilerName
。cmakeToolchainPath
如果您有CMake工具鏈的自訂路徑,也可以提供 。