准备首次测试微控制器主板 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

准备首次测试微控制器主板

您可以在 FreeRTOS 中使用 IDT 来测试 FreeRTOS 库的实施情况。在移植了用于主板设备驱动程序的 FreeRTOS 库之后,请使用Amazon IoT Device Tester在你的微控制器板上运行资格测试。

添加库移植层并实施 FreeRTOS 测试存储库

要为您的设备移植 FreeRTOS,请参阅FreeRTOS 移植指南. 在实施 FreeRTOS 测试存储库和移植 FreeRTOS 图层时,必须提供manifest.yml包含指向每个库的路径,包括测试存储库。此文件将位于源代码的根目录中。请参阅清单文件指示有关详细信息。

配置 Amazon凭证

你需要配置你的Amazon的凭证Amazon IoT Device Tester与通信Amazon云。有关更多信息,请参阅 。设置Amazon发展凭证和区域. 有效Amazon凭据在devicetester_extract_location/devicetester_freertos_[win|mac|linux]/configs/config.json配置文件。

"auth": { "method": "environment" } "auth": { "method": "file", "credentials": { "profile": "<your-aws-profile>" } }

这些区域有:auth的属性config.json文件有一个控制方法字段Amazon身份验证,并且可以声明为文件或环境。将字段设置为环境会拉动你的Amazon来自主机环境变量的凭据。将字段设置为文件将导入指定的配置文件从.aws/credentials配置文件。

在适用于的 IDT 中创建设备池用于的 FreeRTOS

要测试的设备排列在设备池中。每个设备池包含一个或多个相同的设备。您可以配置适用于 FreeRTOS 的 IDT 来测试单个设备或多个设备。为了加快资格测试过程,适用于 FreeRTOS IDT 可以 parallel 行测试具有相同规格的设备。它使用轮询方法,在设备池中的各个设备上执行不同的测试组。

这些区域有:device.json文件的顶级有一个数组。每个阵列属性都是一个新的设备池。每个设备池都有一个设备阵列属性,该属性声明了多个设备。在模板中,设备池中只有一个设备池,而该设备池中只有一台设备。您可以通过编辑 configs 文件夹中 device.json 模板的 devices 部分,将一个或多个设备添加到设备池中。

注意

同一个池中的所有设备必须具有相同的技术规格和 SKU。要允许针对不同测试组 parallel 行生成源代码,适用于的 IDT 需要将源代码复制到适用于的 IDT 提取文件夹的结果文件夹中。您必须使用在构建或刷入命令中引用源代码路径。testdata.sourcePath变量。适用于 FreeRTOS 的 IDT 使用所复制源代码的临时路径来替换此变量。有关更多信息,请参阅 适用于 FreeRTOS IDT 变量

以下是示例:device.json文件用于创建具有多个设备的设备池。

[ { "id": "pool-id", "sku": "sku", "features": [ { "name": "Wifi", "value": "Yes | No" }, { "name": "Cellular", "value": "Yes | No" }, { "name": "BLE", "value": "Yes | No" }, { "name": "PKCS11", "value": "RSA | ECC | Both" }, { "name": "OTA", "value": "Yes | No", "configs": [ { "name": "OTADataPlaneProtocol", "value": "MQTT | HTTP | None" } ] }, { "name": "KeyProvisioning", "value": "Onboard | Import | Both | No" } ], "devices": [ { "id": "device-id", "connectivity": { "protocol": "uart", "serialPort": "/dev/tty*" }, "secureElementConfig" : { "publicKeyAsciiHexFilePath": "absolute-path-to/public-key-txt-file: contains-the-hex-bytes-public-key-extracted-from-onboard-private-key", "publicDeviceCertificateFilePath": "absolute-path-to/device-certificate-file: contains-the-pem-format-device-certificate", "secureElementSerialNumber": "secure-element-serialNo-value", "preProvisioned" : "Yes | No" }, "identifiers": [ { "name": "serialNo", "value": "serialNo-value" } ] } ] } ]

device.json 文件中使用以下属性:

id

用户定义的字母数字 ID,用于唯一地标识设备池。属于同一个池的设备必须具有相同的类型。运行一组测试时,池中的设备将用于对工作负载进行并行化处理。

sku

唯一标识您正在测试的主板的字母数字值。该 SKU 用于跟踪符合条件的主板。

注意

如果你想在中列出你的图板Amazon您在此处指定的 SKU 必须与您在列表过程中使用的 SKU 相匹配。

features

包含设备支持的功能的数组。Amazon IoT Device Tester使用此信息来选择要运行的资格测试。

支持的值为:

Wifi

指示您的主板是否具有 Wi-Fi 功能。

Cellular

指示您的主板是否具有移动功能。

PKCS11

指示主板支持的公有密钥加密算法。资格认证需要使用 PKCS11。支持的值有:ECCRSA, 和Both.Both表示主板支持两者ECCRSA.

KeyProvisioning

指示将受信任的 X.509 客户端证书写入主板的方法。资格认证需要进行密钥预置。

有效值为ImportOnboardBothNo.

  • 如果您的主板允许导入私有密钥,请使用 Import。IDT 将创建一个私有密钥并将其构建为 FreeRTOS 源代码。

  • 如果您的主板支持生成板载私有密钥(例如,如果您的设备具有安全元件,或者如果您希望生成自己的设备密钥对和证书),请使用 Onboard。确保您在每个设备部分中添加一个 secureElementConfig 元素,并将公有密钥文件的绝对路径放在 publicKeyAsciiHexFilePath 字段中。

  • 使用Both是否您的主板同时支持导入私钥和生成机载密钥以进行密钥配置。

  • 使用No如果主板不支持密钥预置,请使用。

OTA

指示您的主板是否支持 over-the-air (OTA) 更新功能。OtaDataPlaneProtocol 属性指示设备支持哪个 OTA 数据平面协议。需要具有 HTTP 或 MQTT 数据平面协议的 OTA 才能进行资格认证。

BLE

指示您的主板是否支持低功耗蓝牙 (BLE) 功能。

devices.id

用户定义的测试的设备的唯一标识符。

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.PublicDeviceCertificateFilePath

(只有在以下情况下PublicKeyAsciiHexFilePath已包括)。包含 .pem 格式的设备公有证书的文件的绝对路径。

devices.secureElementConfig.SecureElementSerialNumber

(可选)安全元件的序列号。序列号可以选择用于创建 JITR 密钥配置的设备证书。如果序列号随设备公有密钥印出,在运行 FreeRTOS 演示/测试项目时,请填写此字段。

devices.secureElementConfig.preProvisioned

(可选)如果设备具有带锁定凭据的按预置安全元素,无法导入、创建或销毁对象,则设置为 “是”。此配置仅在以下情况下生效featuresKeyProvisioning设置为注册,以及PKCS11设置为ECC. 如果此属性设置为,您必须提供相应的 pkcs11 标签。

devices.secureElementConfig.pkcs11JITPCodeVerifyRootCertSupport

(可选)设置为是否设备支持 JITP 证书、代码验证密钥和根证书的 PKCS11 存储。如果设置为,您必须提供相应的 pkcs11 标签。

identifiers

(可选)任意名称/值对的数组。您可以在下一部分所述的生成和刷写命令中使用这些值。

配置构建、刷写和测试设置

IDT for FreeRTOS 会自动在您的主板上构建测试并闪烁测试。要允许此功能,您必须配置 IDT 针对硬件运行生成和刷写命令。生成和刷写设置在位于 config 文件夹的 userdata.json 模板文件中配置。

为测试设备配置设置

生成、刷写和测试设置在 configs/userdata.json 文件中进行。以下 JSON 示例显示您如何配置适用于的 IDT 针对 FreeRTOS 来测试多个设备:

{ "sourcePath": "</path/to/freertos>", "freeRTOSVersion": "<freertos-version>", "freeRTOSTestParamConfigPath": "{{testData.sourcePath}}/path/from/source/path/to/test_param_config.h", "freeRTOSTestExecutionConfigPath": "{{testData.sourcePath}}/path/from/source/path/to/test_execution_config.h", "buildTool": { "name": "your-build-tool-name", "version": "your-build-tool-version", "command": [ "<build command> -any-additional-flags {{testData.sourcePath}}" ] }, "flashTool": { "name": "your-flash-tool-name", "version": "your-flash-tool-version", "command": [ "<flash command> -any-additional-flags {{testData.sourcePath}} -any-additional-flags {{buildImageName}}" ], "buildImageInfo": { "testsImageName": "aws_tests.bin", "demosImageName": "aws_demos.bin" } }, "testStartDelayms": 0, "echoServerConfiguration": { "keyGenerationMethod": "EC | RSA", "serverPort": 9000 }, //********** //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" }, "clientWifiConfig": { "wifiSSID": "ssid", "wifiPassword": "password", "wifiSecurityType": "eWiFiSecurityOpen | eWiFiSecurityWEP | eWiFiSecurityWPA | eWiFiSecurityWPA2 | eWiFiSecurityWPA3" }, "testWififConfig": { "wifiSSID": "ssid", "wifiPassword": "password", "wifiSecurityType": "eWiFiSecurityOpen | eWiFiSecurityWEP | eWiFiSecurityWPA | eWiFiSecurityWPA2 | eWiFiSecurityWPA3" }, "otaConfiguration": { "otaDemoFilePath": "{{testData.sourcePath}}/relative-path-to/ota-demo-bin-file", "otaDemoConfigFilePath": "{{testData.sourcePath}}/relative-path-to/ota-demo-config-header-file", "otaFirmwareFilePath": "{{testData.sourcePath}}/relative-path-to/ota-image-generated-in-build-process", "otaDataPlaneProtocols": "mqtt | http", "deviceEnabledDataPlaneProtocols": "mqtt | http", "deviceFirmwareFileName": "ota-image-name-on-device", "certificateFile": "<path/to/ota/pal/certificate/on/device>", "firmwareFileName" : "<firmware-file-name>", "useFileSystem": "Yes | No", "codeSigningConfiguration": { "signingMethod": "Amazon | Custom", "signerHashingAlgorithm": "SHA1 | SHA256", "signerSigningAlgorithm": "RSA | ECDSA", "signerCertificate": "arn:partition:service:region:account-id:resource:qualifier | /absolute-path-to/signer-certificate-file", "untrustedSignerCertificate": "arn:partition:service:region:account-id:resourcetype:resource:qualifier", "signerCertificateFileName": "signerCertificate-file-name", "compileSignerCertificate": "true | false", // ***********Use signerPlatform if you choose Amazon for signingMethod*************** "signerPlatform": "AmazonFreeRTOS-Default | AmazonFreeRTOS-TI-CC3220SF", // ***********Use signCommand if you choose custom for signingMethod*************** "signCommand": [ "/absolute-path-to/sign.sh {{inputImageFilePath}} {{outputSignatureFilePath}}" ] } }, ********** This section is used for PKCS #11 labels of private key, public key, device certificate, code verification key, JITP certificate, and root certificate. When configuring PKCS11, you set up labels and you must provide the labels of the device certificate, public key, and private key for the key generation type (EC or RSA) it was created with. If your device supports PKCS11 storage of JITP certificate, code verification key, and root certificate, set 'pkcs11JITPCodeVerifyRootCertSupport' to 'Yes' in device.json and provide the corresponding labels. ********** "pkcs11LabelConfiguration":{ "pkcs11LabelDevicePrivateKeyForTLS": "<device-private-key-label>", "pkcs11LabelDevicePublicKeyForTLS": "<device-public-key-label>", "pkcs11LabelDeviceCertificateForTLS": "<device-certificate-label>", "pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS": "<preprovisioned-ec-device-private-key-label>", "pkcs11LabelPreProvisionedECDevicePublicKeyForTLS": "<preprovisioned-ec-device-public-key-label>", "pkcs11LabelPreProvisionedECDeviceCertificateForTLS": "<preprovisioned-ec-device-certificate-label>", "pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS": "<preprovisioned-rsa-device-private-key-label>", "pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS": "<preprovisioned-rsa-device-public-key-label>", "pkcs11LabelPreProvisionedRSADeviceCertificateForTLS": "<preprovisioned-rsa-device-certificate-label>", "pkcs11LabelCodeVerifyKey": "<code-verification-key-label>", "pkcs11LabelJITPCertificate": "<JITP-certificate-label>", "pkcs11LabelRootCertificate": "<root-certificate-label>" } }

下面列出了在 userdata.json 中使用的属性:

sourcePath

移植的 FreeRTOS 源代码的根目录的路径。

freeRTOSTestParamConfigPath

通往的路径test_param_config.h文件,使用{{testData.sourcePath}}变量来使其相对于源代码。

freeRTOSTestExecutionConfigPath

通往的路径test_execution_config.h使用文件{{testData.sourcePath}}变量来使其相对于源代码。

freeRTOSVersion

实施中使用的 FreeRTOS 版本。请参阅支持的版本Amazon IoT Device Tester适用于 FreeRTOS对于兼容的 FreeRTOS 版本Amazon IoT Device Tester适用于 FreeRTOS。

buildTool

生成源代码的命令。在构建命令中对源代码路径的所有引用必须使用Amazon IoT Device Tester变量{{testData.sourcePath}}. 使用{{config.idtRootPath}}占位符,用于引用相对于Amazon IoT Device Tester根路径。

flashTool

将图像闪存到设备的命令。在刷入命令中对源代码路径的所有引用必须使用Amazon IoT Device Tester变量{{testData.sourcePath}}. 使用{{config.idtRootPath}}占位符,用于引用相对于Amazon IoT Device Tester根路径。

buildImageInfo
testsImageName

从构建测试时由构建命令生成的文件的名称。freertos-source/testsfolder。

demosImageName

从构建测试时由构建命令生成的文件的名称。freertos-source/demosfolder。

testStartDelayms

指定 FreeRTOS 测试运行器在开始运行测试之前等待多少毫秒。如果受测设备在 IDT 因网络或其他延迟问题而有机会连接并开始日志记录之前开始输出重要的测试信息,这将非常有用。此值仅适用于 FreeRTOS 测试组,不适用于不使用 FreeRTOS 测试运行器的其他测试组,例如 OTA 测试。如果收到与之相关的错误预计 10 但收到 5,此字段应设置为 5000。

echoServerConfiguration

为 TLS 测试设置 echo 服务器的配置。此字段为必填。

keyGenerationMethod

使用此选项配置了 echo 服务器。选项是 EC 或 RSA。

serverPort

echo 服务器运行的端口号。

echoServerCertificateConfiguration

OTA E2E 测试的可配置 echo 服务器证书生成占位符。此字段为必填。

certificateGenerationMethod

指定服务器证书是自动生成还是手动提供。

clientWifiConfig

客户端 Wi-Fi 配置。Wi-Fi 库测试要求 MCU 主板连接到两个接入点。(两个接入点可以是相同的。) 此属性配置第一个接入点的 Wi-Fi 设置。一些 Wi-Fi 测试用例需要接入点具有一定的安全性,不能处于开放状态。确保两个接入点与运行 IDT 的主机位于同一子网中。

wifi_ssid

Wi-Fi SSID。

wifi_password

Wi-Fi 密码。

wifiSecurityType

使用的 Wi-Fi 安全类型。它为以下任一项:

  • eWiFisSecurityOpen

  • eWiFisSecurityWEP

  • ewifisSecurityWPA

  • eWiFisSecurityWpa2

  • eWiFisSecurityWpa3

注意

如果主板不支持 Wi-Fi,则必须包含clientWifiConfig在你的部分device.json文件。您可以省略这些属性的值。

testWifiConfig

测试 Wi-Fi 配置。Wi-Fi 库测试要求 MCU 主板连接到两个接入点。(两个接入点可以是相同的。) 此属性配置第二个接入点的 Wi-Fi 设置。一些 Wi-Fi 测试用例需要接入点有一定的安全性,不能处于开放状态。确保两个接入点与运行 IDT 的主机位于同一子网上。

wifi_ssid

Wi-Fi SSID。

wifi_password

Wi-Fi 密码。

wifiSecurityType

使用的 Wi-Fi 安全类型。它为以下任一项:

  • eWiFisSecurityOpen

  • eWiFisSecurityWEP

  • ewifisSecurityWPA

  • eWiFisSecurityWpa2

  • eWiFisSecurityWpa3

注意

如果主板不支持 Wi-Fi,则必须包含testWifiConfig在你的部分device.json文件。您可以省略这些属性的值。

otaConfiguration

OTA Pal 和 OTA E2E 测试的配置。此字段为必填。

certificateFile

在设备上进行 OTA PAL 测试的证书路径。这用于验证签名。例如,ecdsa-sha256-签名者 .crt.pem.

firmwareFileName

某些设备的文件名称具有硬编码名称用于启动固件映像。如果适用,我们建议包括此内容。例如,dummy.bin.

useFileSystem

某些设备的 OTA Pal 图层将使用传递给它的文件名作为图像和证书。这是因为它们的非易失性内存是由文件系统抽象出来的。请选择Yes如果这适用或者选择No.

codeSigningConfiguration
signingMethod

代码签名方法。可能的值有:Amazon或自定义。

注意

对于北京和宁夏区域,请使用 Custom(自定义)。Amazon该区域不支持代码签名。

signerHashingAlgorithm

设备所支持的哈希算法。可能的值为 SHA1SHA256

signerSigningAlgorithm

设备所支持的签名算法。可能的值为 RSAECDSA

signerCertificate

用于 OTA 的可信证书。对于Amazon对于代码签名方法,请使用上传到的可信证书的 Amazon 资源名称 (ARN)。AmazonCertificate Manager。对于自定义代码签名方法,请使用签署人证书文件的绝对路径。有关创建可信证书的信息,请参阅创建代码签名证书.

untrustedSignerCertificate

在某些 OTA 测试中用作不可信证书的第二个证书的 ARN 或文件路径。有关创建证书的信息,请参阅创建代码签名证书.

signerCertificateFileName

设备上代码签名证书的文件名。此值必须与运行aws acm import-certificate命令。

compileSignerCertificate

设置为真的如果代码签署人签名验证证书未预置或刷写。它必须编译到项目中。Amazon Amazon IoT Device Tester获取可信证书并将其编译到中。aws_codesigner_certificate.h.

signerPlatform

Amazon Code Signer 在创建 OTA 更新作业时使用的签名和哈希算法。目前,此字段的可能值为 AmazonFreeRTOS-TI-CC3220SFAmazonFreeRTOS-Default

  • 如果为 SHA1RSA,则选择 AmazonFreeRTOS-TI-CC3220SF

  • 如果为 SHA256ECDSA,则选择 AmazonFreeRTOS-Default

  • 如果您的配置需要 SHA256 | RSASHA1 | ECDSA,请与我们联系以获取进一步的支持。

  • 如果您为 signingMethod 选择 Custom,则配置 signCommand

signCommand

命令中需要两个占位符 {{inputImageFilePath}}{{outputSignatureFilePath}}{{inputImageFilePath}} 是要签名的由 IDT 构建的映像的文件路径。{{outputSignatureFilePath}} 是将由脚本生成的签名的文件路径。

pkcs11LabelConfiguration
pkcs11LabelDevicePrivateKeyForTLS

(可选)此标签用于私钥的 PKCS #11 标签。对于具有密钥配置的板载和导入支持的设备,此标签用于测试。此标签可能不同于为预置案例定义的标签。如果您将密钥配置设置为并且预配置设置为,在device.json,这将是未定义的。

pkcs11LabelDevicePublicKeyForTLS

(可选)此标签用于公钥的 PKCS #11 标签。对于具有密钥配置的板载和导入支持的设备,此标签用于测试。此标签可能与为预置案例定义的标签不同。如果您将密钥配置设置为并且预配置设置为,在device.json,这将是未定义的。

pkcs11LabelDeviceCertificateForTLS

(可选)此标签用于设备证书的 PKCS #11 标签。对于具有密钥配置的板载和导入支持的设备,此标签将用于测试。此标签可能与为预置案例定义的标签不同。如果您将密钥配置设置为并且预配置设置为,在>device.json,这将是未定义的。

pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS

(可选)此标签用于私钥的 PKCS #11 标签。对于具有安全元素或硬件限制的设备,这将有不同的标签要保留Amazon IoT凭证。如果您的设备支持使用 EC 密钥进行预配置,请提供此标签。在设置为时device.json,这个标签,pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS,或者必须提供两者。该标签可能与为机上和进口箱子定义的标签不同。

pkcs11LabelPreProvisionedECDevicePublicKeyForTLS

(可选)此标签用于公钥的 PKCS #11 标签。对于具有安全元素或硬件限制的设备,这将有不同的标签要保留Amazon IoT凭证。如果您的设备支持使用 EC 密钥进行预配置,请提供此标签。在设置为时device.json,这个标签,pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS,或者必须提供两者。该标签可能与为机上和进口箱子定义的标签不同。

pkcs11LabelPreProvisionedECDeviceCertificateForTLS

(可选)此标签用于设备证书的 PKCS #11 标签。对于具有安全元素或硬件限制的设备,这将有不同的标签要保留Amazon IoT凭证。如果您的设备支持使用 EC 密钥进行预配置,请提供此标签。在设置为时device.json,这个标签,pkcs11LabelPreProvisionedRSADeviceCertificateForTLS,或者必须提供两者。该标签可能与为机上和进口箱子定义的标签不同。

pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS

(可选)此标签用于私钥的 PKCS #11 标签。对于具有安全元素或硬件限制的设备,这将有不同的标签要保留Amazon IoT凭证。如果您的设备支持使用 RSA 密钥进行预配置,请提供此标签。在设置为时device.json,这个标签,pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS,或者必须提供两者。

pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS

(可选)此标签用于公钥的 PKCS #11 标签。对于具有安全元素或硬件限制的设备,这将有不同的标签要保留Amazon IoT凭证。如果您的设备支持使用 RSA 密钥进行预配置,请提供此标签。在设置为时device.json,这个标签,pkcs11LabelPreProvisionedECDevicePublicKeyForTLS,或者必须提供两者。

pkcs11LabelPreProvisionedRSADeviceCertificateForTLS

(可选)此标签用于设备证书的 PKCS #11 标签。对于具有安全元素或硬件限制的设备,这将有不同的标签要保留Amazon IoT凭证。如果您的设备支持使用 RSA 密钥进行预配置,请提供此标签。在设置为时device.json,这个标签,pkcs11LabelPreProvisionedECDeviceCertificateForTLS,或者必须提供两者。

pkcs11LabelCodeVerifyKey

(可选)此标签用于代码验证密钥的 PKCS #11 标签。如果您的设备具有 JITP 证书、代码验证密钥和根证书的 PKCS #11 存储支持,请提供此标签。何时pkcs11JITPCodeVerifyRootCertSupportdevice.json设置为,必须提供此标签。

pkcs11LabelJITPCertificate

(可选)此标签用于 JITP 证书的 PKCS #11 标签。如果您的设备具有 JITP 证书、代码验证密钥和根证书的 PKCS #11 存储支持,请提供此标签。何时pkcs11JITPCodeVerifyRootCertSupportdevice.json设置为,必须提供此标签。

适用于 FreeRTOS IDT 变量

用于生成代码和刷入设备的命令可能需要连接或者有关设备的其他信息才能成功运行。Amazon IoT Device Tester允许您使用刷入和生成命令引用设备信息。JsonPath. 通过使用简单 JsonPath 表达式,您可以按照 device.json 文件中的指定内容提取所需的信息。

路径变量

适用于 FreeRTOS 的 IDT 定义了可在命令行和配置文件中使用的以下路径变量:

{{testData.sourcePath}}

扩展到到源代码路径。如果使用该变量,则必须在刷写和构建命令中使用该变量。

{{device.connectivity.serialPort}}

扩展到串行端口。

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

扩展到您设备的序列号。

{{config.idtRootPath}}

扩展到Amazon IoT Device Tester根路径。