Vorbereitung auf den ersten Test Ihres Mikrocontroller-Boards - Kostenlos RTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Vorbereitung auf den ersten Test Ihres Mikrocontroller-Boards

Sie können IDT for FreeRTOS verwenden, um Ihre Implementierung der FreeRTOS-Bibliotheken zu testen. Nachdem Sie die FreeRTOS-Bibliotheken für die Gerätetreiber Ihres Mainboards portiert haben, verwenden Sie diese, AWS IoT Device Tester um die Qualifizierungstests auf Ihrem Mikrocontroller-Board durchzuführen.

Fügen Sie Bibliotheksportierungsebenen hinzu und implementieren Sie ein FreeRTOS-Testrepository

Informationen zum Portieren von FreeRTOS für Ihr Gerät finden Sie im FreeRTOS Porting Guide. Bei der Implementierung des FreeRTOS-Test-Repositorys und der Portierung der FreeRTOS-Ebenen müssen Sie einen manifest.yml Pfad zu jeder Bibliothek angeben, einschließlich des Test-Repositorys. Diese Datei befindet sich im Stammverzeichnis Ihres Quellcodes. Einzelheiten finden Sie in den Anweisungen zur Manifestdatei.

Konfigurieren Ihrer AWS-Anmeldeinformationen

Sie müssen Ihre AWS Anmeldeinformationen für AWS IoT Device Tester die Kommunikation mit der AWS Cloud konfigurieren. Weitere Informationen finden Sie unter AWSAnmeldeinformationen einrichten und Region für Entwicklung. Gültige AWS Anmeldeinformationen sind in der devicetester_extract_location/devicetester_freertos_[win|mac|linux]/configs/config.json Konfigurationsdatei angegeben.

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

Das auth Attribut der config.json Datei hat ein Methodenfeld, das die AWS Authentifizierung steuert, und kann entweder als Datei oder als Umgebung deklariert werden. Wenn Sie das Feld auf Umgebung setzen, werden Ihre AWS Anmeldeinformationen aus den Umgebungsvariablen Ihres Host-Computers abgerufen. Wenn Sie das Feld auf Datei setzen, wird ein bestimmtes Profil aus der .aws/credentials Konfigurationsdatei importiert.

Erstellen Sie einen Gerätepool in IDT für FreeRTOS

Zu testende Geräte werden in Gerätepools organisiert. Jeder Gerätepool besteht aus einem oder mehreren identischen Geräten. Sie können IDT für FreeRTOS konfigurieren, um ein einzelnes Gerät oder mehrere Geräte in einem Pool zu testen. Um den Qualifizierungsprozess zu beschleunigen, kann IDT for FreeRTOS Geräte mit denselben Spezifikationen parallel testen. Er verwendet eine Round Robin-Methode, um auf jedem Gerät in einem Gerätepool eine andere Testgruppe auszuführen.

Die device.json Datei hat ein Array in ihrer obersten Ebene. Jedes Array-Attribut ist ein neuer Gerätepool. Jeder Gerätepool hat ein Geräte-Array-Attribut, für das mehrere Geräte deklariert sind. In der Vorlage gibt es einen Gerätepool und nur ein Gerät in diesem Gerätepool. Sie können ein oder mehrere Geräte zu einem Gerätepool hinzufügen, indem Sie den Abschnitt devices der Vorlage device.json im Ordner configs bearbeiten.

Anmerkung

Alle Geräte im selben Pool müssen dieselbe technische Spezifikation und Artikelnummer haben. Um parallel Builds des Quellcodes für verschiedene Testgruppen zu ermöglichen, kopiert IDT for FreeRTOS den Quellcode in einen Ergebnisordner innerhalb des extrahierten Ordners von IDT for FreeRTOS. Sie müssen in Ihrem Build- oder Flash-Befehl mithilfe der testdata.sourcePath Variablen auf den Quellcodepfad verweisen. IDT for FreeRTOS ersetzt diese Variable durch einen temporären Pfad des kopierten Quellcodes. Weitere Informationen finden Sie unter IDT für FreeRTOS-Variablen.

Im Folgenden finden Sie eine device.json Beispieldatei, die verwendet wurde, um einen Gerätepool mit mehreren Geräten zu erstellen.

[ { "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", "publiDeviceCertificateArn": "arn:partition:iot:region:account-id:resourcetype:resource:qualifier", "secureElementSerialNumber": "secure-element-serialNo-value", "preProvisioned" : "Yes | No", "pkcs11JITPCodeVerifyRootCertSupport": "Yes | No" }, "identifiers": [ { "name": "serialNo", "value": "serialNo-value" } ] } ] } ]

Die folgenden Attribute werden in der Datei device.json verwendet:

id

Eine benutzerdefinierte alphanumerische ID, die einen Gerätepool eindeutig identifiziert. Geräte, die zu einem Pool gehören, müssen vom gleichen Typ sein. Bei der Ausführung einer Reihe von Tests werden Geräte im Pool verwendet, um den Workload zu parallelisieren.

sku

Ein alphanumerischer Wert, mit dem das getestete Board eindeutig identifiziert wird. Die SKU wird verwendet, um qualifizierte Boards nachzuverfolgen.

Anmerkung

Wenn du dein Board im AWS Partner-Gerätekatalog anbieten möchtest, muss die hier angegebene SKU mit der SKU übereinstimmen, die du bei der Angebotserstellung verwendest.

features

Ein Array, das die unterstützten Funktionen des Geräts enthält. AWS IoT Device Testerverwendet diese Informationen, um die auszuführenden Qualifikationstests auszuwählen.

Unterstützte Werte sind:

Wifi

Gibt an, ob Ihr Board über WiFi-Funktionen verfügt.

Cellular

Zeigt an, ob Ihr Board über Mobilfunkfunktionen verfügt.

PKCS11

Gibt den Kryptographie-Algorithmus für öffentliche Schlüssel an, der vom Board unterstützt wird. PKCS11 ist für die Qualifikation erforderlich. Unterstützte Werte sind ECCRSA, undBoth. Bothgibt an, dass das Board ECC sowohl als auch unterstütztRSA.

KeyProvisioning

Gibt an, wie ein vertrauenswürdiges X.509-Clientzertifikat auf das Board geschrieben werden kann.

Gültige Werte sind ImportOnboard, Both undNo. Onboard,Both, oder die Bereitstellung von No Schlüsseln ist für die Qualifizierung erforderlich. Importallein ist keine gültige Qualifikationsoption.

  • ImportNur verwenden, wenn dein Board den Import von privaten Schlüsseln zulässt. ImportDie Auswahl ist keine gültige Konfiguration für die Qualifizierung und sollte nur zu Testzwecken verwendet werden, insbesondere bei PKCS11-Testfällen. Onboard, Both oder No ist für die Qualifikation erforderlich.

  • Verwenden Sie diese Option, Onboard wenn Ihr Board integrierte private Schlüssel unterstützt (z. B. wenn Ihr Gerät über ein sicheres Element verfügt oder wenn Sie es vorziehen, Ihr eigenes Geräteschlüsselpaar und Zertifikat zu generieren). Stellen Sie sicher, dass Sie in jedem der Geräteabschnitte ein secureElementConfig-Element hinzufügen und fügen Sie den absoluten Pfad zur Datei des öffentlichen Schlüssels in das Feld publicKeyAsciiHexFilePath ein.

  • Verwenden Sie diese Both Option, wenn Ihr Board sowohl den Import von privaten Schlüsseln als auch die integrierte Schlüsselgenerierung für die Schlüsselbereitstellung unterstützt.

  • Verwenden Sie No diese Option, wenn Ihr Board die Bereitstellung von Schlüsseln nicht unterstützt. Noist nur dann eine gültige Option, wenn Ihr Gerät ebenfalls vorab bereitgestellt wurde.

OTA

Gibt an, ob Ihr Board die Aktualisierungsfunktion over-the-air (OTA) unterstützt. Das Attribut OtaDataPlaneProtocol gibt an, welches OTA-Protokoll auf Datenebene das Gerät unterstützt. Für die Qualifikation ist OTA mit HTTP- oder MQTT-Datenebenenprotokoll erforderlich. Um die Ausführung von OTA-Tests während des Tests zu überspringen, setzen Sie die OTA-Funktion auf No und das OtaDataPlaneProtocol Attribut aufNone. Dies wird kein Qualifikationslauf sein.

BLE

Gibt an, ob Ihr Board Bluetooth Low Energy (BLE) unterstützt.

devices.id

Eine benutzerdefinierte eindeutige Kennung für das zu testende Gerät.

devices.connectivity.serialPort

Der serielle Port des Host-Computers, der zur Herstellung einer Verbindung mit den getesteten Geräten verwendet wird.

devices.secureElementConfig.PublicKeyAsciiHexFilePath

Erforderlich, wenn Ihr Board NICHT vorhanden PublicDeviceCertificateArn ist pre-provisioned oder nicht bereitgestellt wird. Da Onboard es sich um einen erforderlichen Typ von Key Provisioning handelt, ist dieses Feld derzeit für die FullTransportInterface TLS-Testgruppe erforderlich. Wenn Ihr Gerät istpre-provisioned, PublicKeyAsciiHexFilePath ist es optional und muss nicht enthalten sein.

Der folgende Block ist ein absoluter Pfad zu der Datei, die den öffentlichen Hex-Byte-Schlüssel enthält, der aus dem Onboard privaten Schlüssel extrahiert wurde.

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

Wenn Ihr öffentlicher Schlüssel im.der-Format vorliegt, können Sie den öffentlichen Schlüssel direkt hexadezimieren, um die Hex-Datei zu generieren.

Um die Hex-Datei aus einem öffentlichen Schlüssel von.der zu generieren, geben Sie den folgenden xxd Befehl ein:

xxd -p pubkey.der > outFile

Wenn Ihr öffentlicher Schlüssel im PEM-Format vorliegt, können Sie die Base64-kodierten Kopf- und Fußzeilen extrahieren und in das Binärformat dekodieren. Anschließend kodieren Sie die Binärzeichenfolge hexadezimal, um die Hex-Datei zu generieren.

Gehen Sie wie folgt vor, um eine Hex-Datei für einen öffentlichen PEM-Schlüssel zu generieren:

  1. Führen Sie den folgenden base64 Befehl aus, um die Base64-Kopf- und Fußzeile aus dem öffentlichen Schlüssel zu entfernen. Der dekodierte Schlüssel, benanntbase64key, wird dann in die Datei pubkey.der ausgegeben:

    base64 —decode base64key > pubkey.der
  2. Führen Sie den folgenden xxd Befehl aus, um in pubkey.der das Hex-Format zu konvertieren. Der resultierende Schlüssel wird gespeichert als outFile

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

Der ARN des Zertifikats von Ihrem sicheren Element, auf das hochgeladen wurdeAWS IoT Core. Informationen zum Hochladen Ihres Zertifikats finden Sie AWS IoT Core unter X.509-Clientzertifikate im AWS IoTDeveloper Guide.

devices.secureElementConfig.SecureElementSerialNumber

(Optional) Die Seriennummer des sicheren Elements. Die Seriennummer wird optional verwendet, um Gerätezertifikate für die JITR-Schlüsselbereitstellung zu erstellen.

devices.secureElementConfig.preProvisioned

(Optional) Auf „Ja“ setzen, wenn das Gerät über ein vorab bereitgestelltes sicheres Element mit gesperrten Anmeldeinformationen verfügt, das Objekte nicht importieren, erstellen oder löschen kann. Wenn dieses Attribut auf Ja gesetzt ist, müssen Sie die entsprechenden pkcs11-Labels angeben.

devices.secureElementConfig.pkcs11JITPCodeVerifyRootCertSupport

(Optional) Auf Ja setzen, wenn die CorePKCS11-Implementierung des Geräts die Speicherung für JITP unterstützt. Dies ermöglicht den codeverify JITP-Test beim Testen des Kern-PKCS 11 und erfordert die Bereitstellung von PKCS 11-Labels für die Codeverifizierung, das JITP-Zertifikat und das Stammzertifikat.

identifiers

(Optional) Ein Array beliebiger Namen-Wert-Paare. Sie können diese Werte in den im nächsten Abschnitt beschriebenen Build- und Flash-Befehlen verwenden.

Konfiguration von Build-, Flash- und Testeinstellungen

IDT for FreeRTOS erstellt und flasht Tests automatisch auf Ihrem Board. Um dies zu aktivieren, müssen Sie IDT so konfigurieren, dass es die Build- und Flash-Befehle für Ihre Hardware ausführt. Die Einstellungen für den Build- und den Flash-Befehl werden in der userdata.json-Vorlagendatei im Ordner config konfiguriert.

Konfigurieren von Einstellungen für das Testen von Geräten

Build-, Flash- und Testeinstellungen werden in der configs/userdata.json-Datei vorgenommen. Das folgende JSON-Beispiel zeigt, wie Sie IDT für FreeRTOS konfigurieren können, um mehrere Geräte zu testen:

{ "sourcePath": "</path/to/freertos>", "retainModifiedSourceDirectories": true | false, "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" ] }, "testStartDelayms": 0, "echoServerConfiguration": { "keyGenerationMethod": "EC | RSA", "serverPort": 9000 }, "otaConfiguration": { "otaE2EFirmwarePath": "{{testData.sourcePath}}/relative-path-to/ota-image-generated-in-build-process", "otaPALCertificatePath": "/path/to/ota/pal/certificate/on/device", "deviceFirmwarePath" : "/path/to/firmware/image/name/on/device", "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", "untrustedSignerCertificate": "arn:partition:service:region:account-id:resourcetype:resource:qualifier", "signerCertificateFileName": "signerCertificate-file-name", "compileSignerCertificate": true | false, // ***********Use signerPlatform if you choose AWS for signingMethod*************** "signerPlatform": "AmazonFreeRTOS-Default | AmazonFreeRTOS-TI-CC3220SF" ] } }, ********** 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>" } }

Im Folgenden werden die in der userdata.json-Datei verwendeten Attribute aufgelistet:

sourcePath

Der Pfad zum Stammverzeichnis des portierten FreeRTOS-Quellcodes.

retainModifiedSourceDirectories

(Optional) Prüft, ob die geänderten Quellverzeichnisse, die beim Erstellen und Flashen für Debugging-Zwecke verwendet wurden, beibehalten werden sollen. Wenn auf gesetzttrue, erhalten die geänderten Quellverzeichnisse den Namen RetainedSrc und befinden sich in den Ergebnisprotokollordnern bei jedem Testgruppenlauf. Wenn nicht enthalten, lautet das Feld standardmäßig. false

freeRTOSTestParamConfigPath

Der Pfad zur test_param_config.h Datei für die Integration von FreeRTOS-Libraries-Integration-Tests. Diese Datei muss die {{testData.sourcePath}} Platzhaltervariable verwenden, um sie relativ zum Quellcode-Stammverzeichnis herzustellen. AWS IoT Device Testerverwendet die Parameter in dieser Datei, um die Tests zu konfigurieren.

freeRTOSTestExecutionConfigPath

Der Pfad zur test_execution_config.h Datei für die Integration von FreeRTOS-Libraries-Integration-Tests. Diese Datei muss die {{testData.sourcePath}} Platzhaltervariable verwenden, um sie relativ zum Repository-Stammverzeichnis herzustellen. AWS IoT Device Testerverwendet diese Datei, um zu steuern, welche Tests ausgeführt werden müssen.

freeRTOSVersion

Die Version von FreeRTOS einschließlich der in Ihrer Implementierung verwendeten Patch-Version. Unter Unterstützte Versionen von AWS IoT Device Tester for FreeRTOS finden Sie die FreeRTOS-Versionen, die mit for FreeRTOS kompatibel sind. AWS IoT Device Tester

buildTool

Der Befehl zum Erstellen Ihres Quellcodes. Alle Verweise auf den Quellcodepfad im Build-Befehl müssen durch die AWS IoT Device Tester Variable ersetzt werden{{testData.sourcePath}}. Verwenden Sie den {{config.idtRootPath}} Platzhalter, um auf ein Build-Skript relativ zum AWS IoT Device Tester Stammpfad zu verweisen.

flashTool

Der Befehl, um ein Bild auf Ihr Gerät zu flashen. Alle Verweise auf den Quellcodepfad im Befehl flash müssen durch die AWS IoT Device Tester Variable {{testData.sourcePath}} ersetzt werden. Verwenden Sie den {{config.idtRootPath}} Platzhalter, um auf ein Flash-Skript relativ zum AWS IoT Device Tester Stammpfad zu verweisen.

Anmerkung

Die neue Struktur der Integrationstests mit FRQ 2.0 benötigt keine Pfadvariablen wie {{enableTests}} und{{buildImageName}}. Die OTA-End-to-End-Tests werden mit den Konfigurationsvorlagen ausgeführt, die im GitHubFreeRTOS-Libraries-Integration-Tests-Repository bereitgestellt werden. Wenn die Dateien im GitHub Repository in Ihrem übergeordneten Quellprojekt vorhanden sind, wird der Quellcode zwischen den Tests nicht geändert. Wenn ein anderes Build-Image für OTA End to End benötigt wird, müssen Sie dieses Image im Build-Skript erstellen und es in der unter angegebenen userdata.json Datei angebenotaConfiguration.

testStartDelayms

Gibt an, wie viele Millisekunden der FreeRTOS Test Runner warten soll, bevor er mit der Ausführung von Tests beginnt. Dies kann nützlich sein, wenn das zu testende Gerät aufgrund von Netzwerk- oder anderen Latenzproblemen mit der Ausgabe wichtiger Testinformationen beginnt, bevor IDT die Möglichkeit hat, eine Verbindung herzustellen und mit der Protokollierung zu beginnen. Dieser Wert gilt nur für FreeRTOS-Testgruppen und nicht für andere Testgruppen, die den FreeRTOS Test Runner nicht verwenden, wie z. B. die OTA-Tests. Wenn Sie eine Fehlermeldung erhalten, die sich auf erwartete 10 bezieht, aber 5 erhalten hat, sollte dieses Feld auf 5000 gesetzt werden.

echoServerConfiguration

Die Konfiguration zur Einrichtung des Echo-Servers für den TLS-Test. Dies ist ein Pflichtfeld.

keyGenerationMethod

Der Echo-Server ist mit dieser Option konfiguriert. Die Optionen sind EC oder RSA.

serverPort

Die Nummer des Ports, an dem der Echo-Server läuft.

otaConfiguration

Die Konfiguration für OTA PAL- und OTA E2E-Tests. Dies ist ein Pflichtfeld.

otaE2EFirmwarePath

Pfad zum OTA-Bin-Image, das IDT für die OTA-End-to-End-Tests verwendet.

otaPALCertificatePath

Der Pfad zum Zertifikat für den OTA PAL-Test auf dem Gerät. Dies wird verwendet, um die Signatur zu überprüfen. Zum Beispiel ecdsa-sha256-signer.crt.pem.

deviceFirmwarePath

Der Pfad zum fest codierten Namen für das zu bootende Firmware-Image. Wenn Ihr Gerät NICHT das Dateisystem für den Firmware-Start verwendet, geben Sie dieses Feld als an'NA'. Wenn Ihr Gerät das Dateisystem für den Firmware-Start verwendet, geben Sie den Pfad oder den Namen für das Firmware-Boot-Image an.

codeSigningConfiguration
signingMethod

Die Code-Signaturmethode. Mögliche Werte sind AWS oder Benutzerdefiniert.

Anmerkung

Verwenden Sie für die Regionen Peking und Ningxia Benutzerdefiniert. AWSCodesigning wird in dieser Region nicht unterstützt.

signerHashingAlgorithm

Der auf dem Gerät unterstützte Hashing-Algorithmus. Die möglichen Wert sind SHA1 oder SHA256.

signerSigningAlgorithm

Der auf dem Gerät unterstützte Signaturalgorithmus. Die möglichen Wert sind RSA oder ECDSA.

signerCertificate

Das für OTA verwendete vertrauenswürdige Zertifikat. Verwenden Sie für die AWS Codesignaturmethode den Amazon-Ressourcennamen (ARN) für das vertrauenswürdige Zertifikat, das in den AWS Certificate Manager hochgeladen wurde. Verwenden Sie für die benutzerdefinierte Codesignaturmethode den absoluten Pfad zur Unterzeichnerzertifikatsdatei. Informationen zum Erstellen eines vertrauenswürdigen Zertifikats finden Sie unter Erstellen eines Codesignaturzertifikats.

untrustedSignerCertificate

Der ARN oder Dateipfad für ein zweites Zertifikat, das in einigen OTA-Tests als nicht vertrauenswürdiges Zertifikat verwendet wird. Informationen zum Erstellen eines Zertifikats finden Sie unter Erstellen eines Codesignaturzertifikats.

signerCertificateFileName

Der Dateiname des Codesignaturzertifikats auf dem Gerät. Dieser Wert muss mit dem Dateinamen übereinstimmen, den Sie bei der Ausführung des aws acm import-certificate Befehls angegeben haben.

compileSignerCertificate

Boolescher Wert, der den Status des Signaturüberprüfungszertifikats bestimmt. Gültige Werte sind true und false.

Setzen Sie diesen Wert auf True, wenn das Signaturverifizierungszertifikat des Codesigners nicht bereitgestellt oder geflasht wurde. Es muss in das Projekt kompiliert werden. AWS IoT Device Testerruft das vertrauenswürdige Zertifikat ab und kompiliert es in. aws_codesigner_certificate.h

signerPlatform

Der Signatur- und Hashalgorithmus, den AWS-Code Signer beim Erstellen der OTA-Aktualisierungsaufgabe verwendet. Derzeit lauten die möglichen Werte für dieses Feld AmazonFreeRTOS-TI-CC3220SF und AmazonFreeRTOS-Default.

  • Wählen Sie bei SHA1 und RSA AmazonFreeRTOS-TI-CC3220SF aus.

  • Wählen Sie bei SHA256 und ECDSA AmazonFreeRTOS-Default aus.

  • Wenn Sie SHA256 | RSA oder SHA1 | ECDSA für Ihre Konfiguration benötigen, kontaktieren Sie uns, um weitere Unterstützung zu erhalten.

  • Konfigurieren Sie signCommand, wenn Sie Custom für signingMethod ausgewählt haben.

signCommand

Die beiden Platzhalter „{{inputImageFilePath}}“ und „{{outputSignatureFilePath}}“ sind im Befehl erforderlich. {{inputImageFilePath}} ist der Dateipfad des von IDT erstellten Images, das signiert werden soll. {{outputSignatureFilePath}} ist der Dateipfad der Signatur, der vom Skript generiert wird.

pkcs11LabelConfiguration

Die PKCS11-Labelkonfiguration erfordert mindestens einen Satz von Labels aus Gerätezertifikatlabel, Public-Key-Label und Private-Key-Label, um die PKCS11-Testgruppen ausführen zu können. Die erforderlichen PKCS11-Labels basieren auf Ihrer Gerätekonfiguration in der device.json Datei. Wenn Pre-Provisioned auf Ja in gesetzt istdevice.json, muss es sich bei den erforderlichen Bezeichnungen um eine der folgenden Bezeichnungen handeln, je nachdem, was für die PKCS11-Funktion ausgewählt wurde.

  • PreProvisionedEC

  • PreProvisionedRSA

Wenn Pre-Provisioned auf Nein gesetzt istdevice.json, lauten die erforderlichen Labels:

  • pkcs11LabelDevicePrivateKeyForTLS

  • pkcs11LabelDevicePublicKeyForTLS

  • pkcs11LabelDeviceCertificateForTLS

Die folgenden drei Bezeichnungen sind nur erforderlich, wenn Sie pkcs11JITPCodeVerifyRootCertSupport in Ihrer device.json Datei Ja für auswählen.

  • pkcs11LabelCodeVerifyKey

  • pkcs11LabelRootCertificate

  • pkcs11LabelJITPCertificate

Die Werte für diese Felder sollten den im FreeRTOS Porting Guide definierten Werten entsprechen.

pkcs11LabelDevicePrivateKeyForTLS

(Optional) Dieses Label wird für das PKCS #11 -Label des privaten Schlüssels verwendet. Bei Geräten mit integrierter Unterstützung und Importunterstützung für die Schlüsselbereitstellung wird dieses Label für Tests verwendet. Dieses Etikett kann sich von dem für den vorab bereitgestellten Fall definierten Etikett unterscheiden. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja, in gesetzt haben, ist dies device.json undefiniert.

pkcs11LabelDevicePublicKeyForTLS

(Optional) Dieses Label wird für das PKCS #11 -Label des öffentlichen Schlüssels verwendet. Bei Geräten mit integrierter Unterstützung und Importunterstützung für die Schlüsselbereitstellung wird dieses Label für Tests verwendet. Diese Bezeichnung kann sich von der Bezeichnung unterscheiden, die für den Fall mit vorab bereitgestellter Bereitstellung definiert wurde. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja, in gesetzt haben, ist dies device.json undefiniert.

pkcs11LabelDeviceCertificateForTLS

(Optional) Dieses Etikett wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Für Geräte mit integrierter und importierter Unterstützung der Schlüsselbereitstellung wird dieses Label für Tests verwendet. Diese Bezeichnung kann sich von der Bezeichnung unterscheiden, die für den Fall mit vorab bereitgestellter Bereitstellung definiert wurde. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja, in gesetzt haben, ist dies device.json undefiniert.

pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS

(Optional) Dieses Label wird für das PKCS #11 -Label des privaten Schlüssels verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt istdevice.json, müssen dieses Label oder beide angegeben werden. pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS Dieses Etikett kann sich von dem für Onboard- und Importgehäuse definierten Etikett unterscheiden.

pkcs11LabelPreProvisionedECDevicePublicKeyForTLS

(Optional) Dieses Label wird für das PKCS #11 -Label des öffentlichen Schlüssels verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt istdevice.json, müssen dieses Label oder beide angegeben werden. pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS Dieses Etikett kann sich von dem für Onboard- und Importgehäuse definierten Etikett unterscheiden.

pkcs11LabelPreProvisionedECDeviceCertificateForTLS

(Optional) Dieses Etikett wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt istdevice.json, müssen dieses Label oder beide angegeben werden. pkcs11LabelPreProvisionedRSADeviceCertificateForTLS Dieses Etikett kann sich von dem für Onboard- und Importgehäuse definierten Etikett unterscheiden.

pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS

(Optional) Dieses Label wird für das PKCS #11 -Label des privaten Schlüssels verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt istdevice.json, müssen dieses Label oder beide angegeben werden. pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS

pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS

(Optional) Dieses Label wird für das PKCS #11 -Label des öffentlichen Schlüssels verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt istdevice.json, müssen dieses Label oder beide angegeben werden. pkcs11LabelPreProvisionedECDevicePublicKeyForTLS

pkcs11LabelPreProvisionedRSADeviceCertificateForTLS

(Optional) Dieses Etikett wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt istdevice.json, müssen dieses Label oder beide angegeben werden. pkcs11LabelPreProvisionedECDeviceCertificateForTLS

pkcs11LabelCodeVerifyKey

(Optional) Dieses Label wird für das PKCS #11 -Label des Code-Bestätigungsschlüssels verwendet. Wenn Ihr Gerät über PKCS #11 -Speicherunterstützung für das JITP-Zertifikat, den Code-Bestätigungsschlüssel und das Stammzertifikat verfügt, geben Sie dieses Etikett an. Wenn pkcs11JITPCodeVerifyRootCertSupport in auf Ja gesetzt device.json ist, muss dieses Label angegeben werden.

pkcs11LabelJITPCertificate

(Optional) Dieses Label wird für das PKCS #11 -Label des JITP-Zertifikats verwendet. Wenn Ihr Gerät über PKCS #11 -Speicherunterstützung für das JITP-Zertifikat, den Code-Bestätigungsschlüssel und das Stammzertifikat verfügt, geben Sie dieses Etikett an. Wenn pkcs11JITPCodeVerifyRootCertSupport in auf Ja gesetzt device.json ist, muss dieses Label angegeben werden.

IDT für FreeRTOS-Variablen

Die Befehle zum Erstellen Ihres Codes und zum Flashen des Geräts erfordern möglicherweise Konnektivität oder andere Informationen über Ihre Geräte, um erfolgreich ausgeführt zu werden. AWS IoT Device Testerermöglicht es Ihnen, Geräteinformationen in Flash zu referenzieren und Befehle mithilfe von zu erstellen JsonPath. Mithilfe einfacher JsonPath Ausdrücke können Sie die in Ihrer device.json Datei angegebenen erforderlichen Informationen abrufen.

Pfadvariablen

IDT for FreeRTOS definiert die folgenden Pfadvariablen, die in Befehlszeilen und Konfigurationsdateien verwendet werden können:

{{testData.sourcePath}}

Wird auf den Quellcodepfad erweitert. Wenn Sie diese Variable verwenden, muss sie sowohl in den Flash- als auch in den Build-Befehlen verwendet werden.

{{device.connectivity.serialPort}}

Wird auf die serielle Schnittstelle erweitert.

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

Wird zur Seriennummer Ihres Geräts erweitert.

{{config.idtRootPath}}

Erweitert auf den AWS IoT Device Tester Stammpfad.