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

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.

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

Build-, Flash- und Testeinstellungen werden in der configs/userdata.json-Datei vorgenommen. Wir unterstützen die Echo Server-Konfiguration, indem wir sowohl die Client- als auch die Serverzertifikate und Schlüssel in den ladencustomPath. Weitere Informationen finden Sie unter Einen Echo-Server einrichten im FreeRTOS Porting Guide. Das folgende JSON-Beispiel zeigt, wie Sie IDT für FreeRTOS konfigurieren können, um mehrere Geräte zu testen:

{ "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" } ] } }

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

sourcePath

Der Pfad zum Stammverzeichnis des portierten FreeRTOS-Quellcodes. Für parallel Tests mit einem SDK sourcePath kann das über den {{userData.sdkConfiguration.path}} Platzhalter eingestellt werden. Beispiel:

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

Der Pfad zum herstellerspezifischen FreeRTOS-Code. Für serielle Tests kann der vendorPath als absoluter Pfad festgelegt werden. Beispiel:

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

Für parallele Tests kann der vendorPath mit dem Platzhalter {{testData.sourcePath}} eingestellt werden. Beispiel:

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

Die vendorPath Variable ist nur notwendig, wenn sie ohne SDK läuft, andernfalls kann sie entfernt werden.

Anmerkung

Wenn Tests ohne SDK parallel ausgeführt werden, muss der {{testData.sourcePath}} Platzhalter in den flashTool FeldernvendorPath,buildTool, verwendet werden. Wenn der Test mit einem einzigen Gerät ausgeführt wird, müssen absolute Pfade in den Feldern vendorPath, buildTool, flashTool verwendet werden. Bei der Ausführung mit einem SDK muss der {{sdkPath}} Platzhalter in den Befehlen sourcePathbuildTool, und flashTool verwendet werden.

sdkConfiguration

Wenn Sie FreeRTOS mit Änderungen an der Datei- und Ordnerstruktur qualifizieren, die über das für die Portierung erforderliche Maß hinausgehen, müssen Sie Ihre SDK-Informationen in diesem Block konfigurieren. Wenn Sie sich nicht mit einem portierten FreeRTOS innerhalb eines SDK qualifizieren, sollten Sie diesen Block komplett weglassen.

sdkConfiguration.name

Der Name des SDK, das Sie mit FreeRTOS verwenden. Wenn Sie kein SDK verwenden, sollte der gesamte sdkConfiguration Block weggelassen werden.

sdkConfiguration.version

Die Version des SDK, das Sie mit FreeRTOS verwenden. Wenn Sie kein SDK verwenden, sollte der gesamte sdkConfiguration Block weggelassen werden.

sdkConfiguration.path

Der absolute Pfad zu Ihrem SDK-Verzeichnis, das Ihren FreeRTOS-Code enthält. Wenn Sie kein SDK verwenden, sollte der gesamte sdkConfiguration Block weggelassen werden.

buildTool

Der vollständige Pfad zu Ihrem Build-Skript (.bat oder .sh), das die Befehle zur Erstellung Ihres Quellcodes enthält. Alle Verweise auf den Quellcodepfad im Build-Befehl müssen durch die AWS IoT Device Tester Variable ersetzt werden {{testdata.sourcePath}} und Verweise auf den SDK-Pfad sollten durch ersetzt werden{{sdkPath}}. Verwenden Sie den {{config.idtRootPath}} Platzhalter, um auf den absoluten oder relativen IDT-Pfad zu verweisen.

testStartDelayms

Gibt an, wie viele Millisekunden der FreeRTOS-Testläufer wartet, 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 Latenzen mit der Ausgabe wichtiger Testinformationen beginnt, bevor IDT die Möglichkeit hat, eine Verbindung herzustellen und mit der Protokollierung zu beginnen. Der zulässige Höchstwert ist 30000 ms (30 Sekunden). Dieser Wert gilt nur für FreeRTOS-Testgruppen und nicht für andere Testgruppen, die den FreeRTOS-Testrunner nicht verwenden, wie z. B. die OTA-Tests.

flashTool

Vollständiger Pfad zu Ihrem Flash-Skript (.sh oder.bat), der die Flash-Befehle für Ihr Gerät enthält. Alle Verweise auf den Quellcodepfad im Befehl flash müssen durch die Variable IDT for FreeRTOS ersetzt werden {{testdata.sourcePath}} und alle Verweise auf Ihren SDK-Pfad müssen durch die Variable IDT for FreeRTOS ersetzt werden. {{sdkPath}} Verwenden Sie den {{config.idtRootPath}} Platzhalter, um auf den absoluten oder relativen IDT-Pfad zu verweisen.

buildImageInfo
testsImageName

Der Name der Datei, die vom Build-Befehl beim Erstellen von Tests aus dem Ordner erzeugt wurde. freertos-source/tests

demosImageName

Der Name der Datei, die vom Build-Befehl beim Erstellen von Tests aus dem freertos-source/demos Ordner erzeugt wurde.

clientWifiConfig

Die Client-WLAN-Konfiguration. Die Tests für die WLAN-Bibliothek erfordern ein MCU-Board, um eine Verbindung mit zwei Zugriffspunkten herzustellen. (Die beiden Zugangspunkte können identisch sein.) Dieses Attribut konfiguriert die WLAN-Einstellungen für den ersten Zugriffspunkt. In einigen WLAN-Testfällen wird erwartet, dass der Zugriffspunkt über ein gewisses Maß an Sicherheit verfügt und nicht offen ist. Bitte stellen Sie sicher, dass sich beide Access Points im selben Subnetz befinden wie der Host-Computer, auf dem IDT ausgeführt wird.

wifi_ssid

Die WLAN-SSID.

wifi_password

Das WLAN-Passwort.

wifiSecurityType

Die Art der verwendeten WLAN-Sicherheit. Einer der Werte:

  • eWiFiSecurityOpen

  • eWiFiSecurityWEP

  • eWiFiSecurityWPA

  • eWiFiSecurityWPA2

  • eWiFiSecurityWPA3

Anmerkung

Wenn Ihr Board kein WLAN unterstützt, müssen Sie Ihrer device.json-Datei dennoch den Abschnitt clientWifiConfig hinzufügen. Werte für diese Attribute können Sie jedoch weglassen.

testWifiConfig

Die WLAN-Testkonfiguration. Die Tests für die WLAN-Bibliothek erfordern ein MCU-Board, um eine Verbindung mit zwei Zugriffspunkten herzustellen. (Die beiden Zugangspunkte können identisch sein.) Dieses Attribut konfiguriert die WLAN-Einstellungen für den zweiten Zugriffspunkt. In einigen WLAN-Testfällen wird erwartet, dass der Zugriffspunkt über ein gewisses Maß an Sicherheit verfügt und nicht offen ist. Bitte stellen Sie sicher, dass sich beide Access Points im selben Subnetz befinden wie der Host-Computer, auf dem IDT ausgeführt wird.

wifiSSID

Die WLAN-SSID.

wifiPassword

Das WLAN-Passwort.

wifiSecurityType

Die Art der verwendeten WLAN-Sicherheit. Einer der Werte:

  • eWiFiSecurityOpen

  • eWiFiSecurityWEP

  • eWiFiSecurityWPA

  • eWiFiSecurityWPA2

  • eWiFiSecurityWPA3

Anmerkung

Wenn Ihr Board kein WLAN unterstützt, müssen Sie Ihrer device.json-Datei dennoch den Abschnitt testWifiConfig hinzufügen. Werte für diese Attribute können Sie jedoch weglassen.

echoServerCertificateConfiguration

Der konfigurierbare Platzhalter für die Generierung von Echo-Serverzertifikaten für Secure-Socket-Tests. Dies ist ein Pflichtfeld.

certificateGenerationMethod

Gibt an, ob das Serverzertifikat automatisch generiert oder manuell bereitgestellt wird.

customPath

Es certificateGenerationMethod ist „Benutzerdefiniert“ certificatePath und privateKeyPath sie sind erforderlich.

certificatePath

Gibt den Dateipfad für das Serverzertifikat an.

privateKeyPath

Gibt den Dateipfad für den privaten Schlüssel an.

eccCurveFormat

Gibt das von der Karte unterstützte Kurvenformat an. PKCS11Erforderlich, wenn in device.json auf „ecc“ gesetzt ist. Gültige Werte sind „P224", „P256", „P384" oder „P521".

echoServerConfiguration

Die konfigurierbaren Echo-Server-Ports für und sichere Socket-Tests. WiFi Dies ist ein optionales Feld.

securePortForSecureSocket

Der Port, der zum Einrichten eines Echo-Servers mit TLS für den Secure Sockets-Test verwendet wird. Der Standardwert ist 33333. Stellen Sie sicher, dass der konfigurierte Port nicht von einer Firewall oder Ihrem Unternehmensnetzwerk blockiert wird.

insecurePortForSecureSocket

Der Port, der zum Einrichten eines Echo-Servers ohne TLS für den Secure Sockets-Test verwendet wird. Der Standardwert für den Test ist 33334. Stellen Sie sicher, dass der konfigurierte Port nicht von einer Firewall oder Ihrem Unternehmensnetzwerk blockiert wird.

insecurePortForWiFi

Der Port, der verwendet wird, um den Echo-Server ohne TLS für WiFi Tests einzurichten. Der Standardwert für den Test ist 33335. Stellen Sie sicher, dass der konfigurierte Port nicht von einer Firewall oder Ihrem Unternehmensnetzwerk blockiert wird.

otaConfiguration

Die OTA-Konfiguration. [Optional]

otaFirmwareFilePath

Der vollständige Pfad zum OTA-Image, das nach dem Build erstellt wird. Beispiel, {{testData.sourcePath}}/relative-path/to/ota/image/from/source/root.

deviceFirmwareFileName

Der vollständige Dateipfad auf dem MCU-Gerät, auf dem sich die OTA-Firmware befindet. Einige Geräte verwenden dieses Feld nicht, aber Sie müssen trotzdem einen Wert angeben.

otaDemoConfigFilePath

Der vollständige Pfad zu aws_demo_config.h, zu finden in afr-source/vendors/vendor/boards/board/aws_demos/config_files/. Diese Dateien sind in der Portierungscode-Vorlage enthalten, die FreeRTOS bereitstellt.

codeSigningConfiguration

Die Code-Signaturkonfiguration.

signingMethod

Die Code-Signaturmethode. Die möglichen Wert sind AWS oder Custom.

Anmerkung

Verwenden Sie für die Regionen Peking und Ningxia. Custom AWSCodesignatur wird in diesen Regionen 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 als AWS Codesignaturmethode den Amazon-Ressourcennamen (ARN) für das vertrauenswürdige Zertifikat, das in den hochgeladen wurdeAWS Certificate Manager.

Verwenden Sie für benutzerdefinierte Codesignaturmethode den absoluten Pfad zur Signiererzertifikatdatei.

Weitere Hinweise zum Erstellen eines vertrauenswürdigen Zertifikats finden Sie unter Erstellen eines Zertifikats für die Codesignierung.

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.

Weitere Informationen finden Sie unter Erstellen eines Zertifikats für die Codesignierung.

compileSignerCertificate

trueWird auf gesetzt, wenn das Zertifikat zur Überprüfung der Signatur des Codesigners nicht bereitgestellt oder geflasht wurde und daher in das Projekt kompiliert werden muss. AWS IoT Device Testerruft das vertrauenswürdige Zertifikat ab und kompiliert es in. aws_codesigner_certifiate.h

untrustedSignerCertificate

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

signerPlatform

Der Signier- und Hash-Algorithmus, den AWS Code Signer bei der Erstellung des OTA-Aktualisierungsjobs 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

Der Befehl, der zum Ausführen benutzerdefinierter Codesignaturen verwendet wird. Sie finden die Vorlage im Verzeichnis „/configs/script_templates“.

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.

cmakeConfiguration

CMake Konfiguration [optional]

Anmerkung

Um CMake Testfälle auszuführen, müssen Sie den Boardnamen, den Herstellernamen und entweder das frToolchainPath Oder angebencompilerName. Sie können das auch angebencmakeToolchainPath, wenn Sie einen benutzerdefinierten Pfad zur CMake Toolchain haben.

boardName

Der Name des Boards, das getestet wird. Der Boardname sollte mit dem Ordnernamen unter path/to/afr/source/code/vendors/vendor/boards/board übereinstimmen.

vendorName

Der Herstellername für die zu testende Karte. Der Anbieter sollte mit dem Ordnernamen unter path/to/afr/source/code/vendors/vendor übereinstimmen.

compilerName

Der Name des Compilers.

frToolchainPath

Der vollqualifizierte Pfad zur Compiler-Toolchain.

cmakeToolchainPath

Der vollständig qualifizierte Pfad zur Toolchain. CMake Dies ist ein optionales Feld.

freertosFileConfiguration

Die Konfiguration der FreeRTOS-Dateien, die IDT vor der Ausführung von Tests ändert.

required

In diesem Abschnitt werden die erforderlichen Tests angegeben, deren Konfigurationsdateien Sie verschoben haben PKCS11, z. B. TLS usw.

configName

Der Name des Tests, der konfiguriert wird.

filePath

Der absolute Pfad zu den Konfigurationsdateien innerhalb des freertos Repos. Verwenden Sie die {{testData.sourcePath}} Variable, um den Pfad zu definieren.

optional

In diesem Abschnitt werden optionale Tests angegeben, deren Konfigurationsdateien Sie verschoben haben WiFi, z. B. OTA usw.

configName

Der Name des Tests, der konfiguriert wird.

filePath

Der absolute Pfad zu den Konfigurationsdateien innerhalb des freertos Repos. Verwenden Sie die {{testData.sourcePath}} Variable, um den Pfad zu definieren.

Anmerkung

Um CMake Testfälle auszuführen, müssen Sie den Boardnamen, den Herstellernamen und entweder das afrToolchainPath Oder angebencompilerName. Sie können auch angebencmakeToolchainPath, ob Sie einen benutzerdefinierten Pfad zur CMake Toolchain haben.