本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为测试设备配置设置
构建、刷写和测试设置在 configs/userdata.json
文件中进行。我们通过在 customPath
中加载客户端和服务器证书和密钥来支持 Echo 服务器配置。有关更多信息,请参阅《免费RTOS移植指南》中的设置回声服务器。以下JSON示例显示了如何配置 IDT Free 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
-
移植的 Free RTOS 源代码根目录的路径。要使用并行测试SDK,
sourcePath
可以使用{{userData.sdkConfiguration.path}}
占位符进行设置。例如:{ "sourcePath":"{{userData.sdkConfiguration.path}}/
freertos
" } vendorPath
-
供应商特定免费RTOS代码的路径。对于串行测试,
vendorPath
可以设置为绝对路径。例如:{ "vendorPath":"C:/
path-to-freertos
/vendors/espressif/boards/esp32
" }对于并行测试,
vendorPath
可以使用{{testData.sourcePath}}
占位符进行设置。例如:{ "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内部移植的 FreeSDK,那么你应该完全省略这个方块。
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
-
指定免费RTOS测试运行器在开始运行测试之前将等待多少毫秒。如果由于网络或其他延迟,被测设备在IDT有机会连接并开始记录之前就开始输出重要的测试信息,这可能很有用。允许的最大值为 30000 毫秒(30 秒)。此值仅适用于免费RTOS测试组,不适用于不使用免费测试运行程序的其他RTOS测试组,例如OTA测试。
flashTool
-
您的刷入脚本(.sh 或 .bat)的完整路径,该脚本应该包含您设备的刷入命令。flash 命令中对源代码路径的所有引用都必须由 for Free RTOS 变量
{{testdata.sourcePath}}
替换,所有IDT对SDK路径的引用都必须由 for Fre{{sdkPath}}
e RTOS 变量替换。使用{{config.idtRootPath}}
占位符来引用绝对路径或相对路径。IDT IDTbuildImageInfo
-
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
-
用于安全套接字测试的可配置 Echo 服务器证书生成占位符。该字段为必填。
certificateGenerationMethod
-
指定服务器证书是自动生成的,还是手动提供的。
customPath
-
如果
certificateGenerationMethod
为“自定义”,则certificatePath
和privateKeyPath
为必需项。certificatePath
-
指定服务器证书的文件路径。
privateKeyPath
-
指定私有密钥的文件路径。
eccCurveFormat
-
指定主板支持的曲线格式。在
device.json
中将PKCS11
设置为“ECC”时必需。有效值为“P224”、“P256”、“P384”或“P521”。
echoServerConfiguration
-
用于 WiFi 和安全套接字测试的可配置回声服务器端口。该字段是可选的。
securePortForSecureSocket
-
用于设置回声服务器以进行安全套接字测试TLS的端口。默认值是 33333。确保配置的端口未被防火墙或公司网络阻止。
insecurePortForSecureSocket
-
用于在不进行安全套接字测试的情况下设置 echo 服务器TLS的端口。测试中使用的默认值为 33334。确保配置的端口未被防火墙或公司网络阻止。
insecurePortForWiFi
-
用于设置回声服务器的端口,无需TLS进行 WiFi 测试。测试中使用的默认值为 33335。确保配置的端口未被防火墙或公司网络阻止。
otaConfiguration
-
OTA配置。[可选]
otaFirmwareFilePath
-
生成后创建的OTA图像的完整路径。例如,
{{testData.sourcePath}}/
。relative-path/to/ota/image/from/source/root
deviceFirmwareFileName
-
OTA固件所在MCU设备上的完整文件路径。有些设备不使用此字段,但您仍必须提供一个值。
otaDemoConfigFilePath
-
位于
中的afr-source
/vendors/vendor/boards/board/aws_demos/config_files/aws_demo_config.h
的完整路径。这些文件包含在 Free RTOS 提供的移植代码模板中。 codeSigningConfiguration
-
代码签名配置。
signingMethod
-
代码签名方法。可能的值为
AWS
或Custom
。注意
对于北京和宁夏区域,请使用
Custom
。这些区域不支持AWS
代码签名。 signerHashingAlgorithm
-
设备所支持的哈希算法。可能的值为
SHA1
或SHA256
。 signerSigningAlgorithm
-
设备所支持的签名算法。可能的值为
RSA
或ECDSA
。 signerCertificate
-
使用的可信证书OTA。
对于 AWS 代码签名方法,请使用上传到的可信证书的 Amazon 资源名称 (ARN) AWS Certificate Manager。
对于自定义代码签名方法,请使用签署人证书文件的绝对路径。
有关创建可信证书的更多信息,请参阅 创建代码签名证书。
signerCertificateFileName
-
设备上代码签署证书的文件名。此值必须与您在运行
aws acm import-certificate
命令时提供的文件名相匹配。有关更多信息,请参阅 创建代码签名证书。
compileSignerCertificate
-
true
如果未配置或刷新代码签名者签名验证证书,则设置为,因此必须将其编译到项目中。 AWS IoT Device Tester 获取可信证书并将其编译为。aws_codesigner_certifiate.h
untrustedSignerCertificate
-
在某些OTA测试中用作不可信证书的第二个证书的ARN或文件路径。有关创建证书的更多信息,请参阅创建代码签名证书。
signerPlatform
-
C AWS ode 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
-
本节指定了您已移动其配置文件的必需测试PKCS11,例如TLS、等。
configName
-
正在配置的组件的名称。
filePath
-
存储库中配置文件的绝对路径。使用freertos
{{testData.sourcePath}}
变量来定义路径。
optional
-
本节指定了您已移动其配置文件的可选测试 OTA WiFi,例如,等等。
configName
-
正在配置的组件的名称。
filePath
-
存储库中配置文件的绝对路径。使用freertos
{{testData.sourcePath}}
变量来定义路径。
注意
要执行CMake测试用例,必须提供主板名称、供应商名称和afrToolchainPath
或compilerName
。cmakeToolchainPath
如果您有CMake工具链的自定义路径,也可以提供。