Preparazione dei test per la prima verifica della scheda del microcontrollore - FreeRTOS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Preparazione dei test per la prima verifica della scheda del microcontrollore

Puoi usare IDT for FreeRTOS per eseguire il test durante il porting delle interfacce FreeRTOS. Dopo aver effettuato il porting delle interfacce FreerTOS per i driver di dispositivo della scheda, si AWS IoT Device Tester eseguono i test di qualificazione sulla scheda del microcontrollore.

Aggiunta di livelli di porting delle librerie

Per portare FreerTOS sul tuo dispositivo, segui le istruzioni nella FreerTOS Porting Guide.

AWS Configura le tue credenziali

Devi configurare le tue AWS credenziali AWS IoT Device Tester per comunicare con il AWS Cloud. Per ulteriori informazioni, consulta Configurare AWS le credenziali e la regione per lo sviluppo. AWS Le credenziali valide devono essere specificate nel devicetester_extract_location/devicetester_afreertos_[win|mac|linux]/configs/config.json file di configurazione.

Crea un pool di dispositivi in IDT per FreerTOS

I dispositivi da testare sono organizzati in pool di dispositivi. Ogni pool di dispositivi è composto da uno o più dispositivi identici. Puoi configurare IDT per FreerTOS per testare un singolo dispositivo in un pool o più dispositivi in un pool. Per accelerare il processo di qualificazione, IDT for FreerTOS può testare dispositivi con le stesse specifiche in parallelo. Lo strumento utilizza un metodo Round Robin per eseguire un gruppo di test differente su ciascun dispositivo di un pool.

È possibile aggiungere uno o più dispositivi a un pool di dispositivi modificando la sezione devices del modello device.json nella cartella configs.

Nota

La specifica tecnica e il codice SKU dei dispositivi in uno stesso pool devono essere identici.

Per abilitare le build parallele del codice sorgente per diversi gruppi di test, IDT for FreeRTOS copia il codice sorgente in una cartella dei risultati all'interno della cartella estratta IDT for FreerTOS. Il percorso del codice sorgente nel comando build o flash deve essere referenziato utilizzando la variabile or. testdata.sourcePath sdkPath IDT for FreerTOS sostituisce questa variabile con un percorso temporaneo del codice sorgente copiato. Per ulteriori informazioni, consulta IDT per variabili FreerTOS.

Di seguito è riportato un esempio di file device.json utilizzato per creare un pool di dispositivi con più dispositivi.

[ { "id": "pool-id", "sku": "sku", "features": [ { "name": "WIFI", "value": "Yes | No" }, { "name": "Cellular", "value": "Yes | No" }, { "name": "OTA", "value": "Yes | No", "configs": [ { "name": "OTADataPlaneProtocol", "value": "HTTP | MQTT" } ] }, { "name": "BLE", "value": "Yes | No" }, { "name": "TCP/IP", "value": "On-chip | Offloaded | No" }, { "name": "TLS", "value": "Yes | No" }, { "name": "PKCS11", "value": "RSA | ECC | Both | No" }, { "name": "KeyProvisioning", "value": "Import | Onboard | No" } ], "devices": [ { "id": "device-id", "connectivity": { "protocol": "uart", "serialPort": "/dev/tty*" }, ***********Remove the section below if the device does not support onboard key generation*************** "secureElementConfig" : { "publicKeyAsciiHexFilePath": "absolute-path-to/public-key-txt-file: contains-the-hex-bytes-public-key-extracted-from-onboard-private-key", "secureElementSerialNumber": "secure-element-serialNo-value", "preProvisioned" : "Yes | No" }, ********************************************************************************************************** "identifiers": [ { "name": "serialNo", "value": "serialNo-value" } ] } ] } ]

I seguenti attributi vengono utilizzati nel file device.json:

id

Un ID alfanumerico definito dall'utente che identifica in modo univoco un pool di dispositivi. I dispositivi appartenenti a un pool devono essere dello stesso tipo. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro.

sku

Un valore alfanumerico che identifica in modo univoco la scheda da testare. Il codice SKU viene utilizzato per tenere traccia delle schede qualificate.

Nota

Se desideri inserire la tua scheda nel AWS Partner Device Catalog, lo SKU che specifichi qui deve corrispondere allo SKU che utilizzi nel processo di pubblicazione dell'inserzione.

features

Un array che contiene le funzionalità supportate dal dispositivo. AWS IoT Device Tester utilizza queste informazioni per selezionare i test di qualificazione da eseguire.

I valori supportati sono:

TCP/IP

Indica se la scheda supporta uno stack TCP/IP e, in caso positivo, se è supportato su chip (MCU) o se viene eseguito l’offload su un altro modulo. Il protocollo TCP/IP è obbligatorio per la qualifica.

WIFI

Indica se la scheda dispone di funzionalità Wi-Fi. Deve essere impostato su No se Cellular è impostato su. Yes

Cellular

Indica se la scheda è compatibile con la rete cellulare. Deve essere impostato su No se WIFI è impostato suYes. Quando questa funzionalità è impostata suYes, il FullSecureSockets test verrà eseguito utilizzando istanze AWS t2.micro EC2 e ciò potrebbe comportare costi aggiuntivi per l'account. Per ulteriori informazioni, consulta Prezzi di Amazon EC2.

TLS

Indica se la scheda supporta TLS. TLS è obbligatorio per la qualifica.

PKCS11

Indica l'algoritmo di crittografia della chiave pubblica supportato dalla scheda. PKCS11 è obbligatorio per la qualifica. I valori supportati sono ECC, RSA, Both e No. Both indica che la scheda supporta sia gli algoritmi ECC e RSA.

KeyProvisioning

Indica il metodo di scrittura di un certificato client X.509 attendibile sulla scheda. I valori validi sono Import, Onboard e No. Per la qualifica è necessario il provisioning delle chiavi.

  • Utilizzare Import se la scheda consente l'importazione di chiavi private. IDT creerà una chiave privata e la inserirà nel codice sorgente di FreerTOS.

  • Utilizzare Onboard se la scheda supporta la generazione di chiavi private integrate (ad esempio, se il dispositivo ha un elemento protetto o se si preferisce generare la coppia di chiavi del dispositivo e il certificato). Assicurarsi di aggiungere un elemento secureElementConfig in ciascuna delle sezioni del dispositivo e inserire il percorso assoluto del file della chiave pubblica nel campo publicKeyAsciiHexFilePath.

  • Utilizzare No se la scheda non supporta il provisioning delle chiavi.

OTA

Indica se la scheda supporta la funzionalità di over-the-air aggiornamento (OTA). L'attributo OtaDataPlaneProtocol indica quale protocollo di piano dei dati OTA supporta il dispositivo. L'attributo viene ignorato se la caratteristica OTA non è supportata dal dispositivo. Quando è selezionato "Both", il tempo di esecuzione del test OTA viene prolungato a causa dell'esecuzione di MQTT, HTTP e test misti.

Nota

A partire da IDT v4.1.0, OtaDataPlaneProtocol accetta solo HTTP e MQTT come valori supportati.

BLE

Indica se la scheda supporta Bluetooth Low Energy (BLE).

devices.id

Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.

devices.connectivity.protocol

Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Valore supportato: uart.

devices.connectivity.serialPort

La porta seriale del computer host utilizzato per connettersi ai dispositivi da testare.

devices.secureElementConfig.PublicKeyAsciiHexFilePath

Il percorso assoluto del file che contiene la chiave pubblica in byte esadecimali estratta dalla chiave privata integrata.

Formato di esempio:

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

Se la tua chiave pubblica è in formato.der, puoi codificare direttamente in esadecimale la chiave pubblica per generare il file esadecimale.

Comando di esempio per la chiave pubblica.der per generare un file esadecimale:

xxd -p pubkey.der > outFile

Se la chiave pubblica è in formato.pem, puoi estrarre la parte codificata in base64, decodificarla in formato binario e quindi codificarla in esadecimale per generare il file esadecimale.

Ad esempio, utilizzate questi comandi per generare un file esadecimale per una chiave pubblica.pem:

  1. Estrai la parte codificata in base64 della chiave (elimina l'intestazione e il piè di pagina) e memorizzala in un file, ad esempio assegnagli un nomebase64key, esegui questo comando per convertirla in formato.der:

    base64 —decode base64key > pubkey.der
  2. Esegui il xxd comando per convertirlo in formato esadecimale.

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

(Facoltativo) Il numero di serie dell'elemento sicuro. Fornisci questo campo quando il numero di serie viene stampato insieme alla chiave pubblica del dispositivo quando esegui il progetto demo/test FreerTOS.

devices.secureElementConfig.preProvisioned

(Facoltativo) Imposta su «Sì» se il dispositivo dispone di un elemento sicuro prestabilito con credenziali bloccate, che non può importare, creare o distruggere oggetti. Questa configurazione features ha effetto solo se è KeyProvisioning impostata su «Onboard», insieme a «ECC». PKCS11

identifiers

(Facoltativo) Un array di coppie nome/valore arbitrarie. Puoi utilizzare questi valori nei comandi di compilazione e flashing descritti nella sezione successiva.

Configurazione delle impostazioni di compilazione, flashing e test

Affinché IDT for FreerTOS possa creare ed eseguire test flash sulla scheda automaticamente, è necessario configurare IDT per eseguire i comandi build e flash per il proprio hardware. Le impostazioni dei comandi di compilazione e flashing sono configurate nel file di modello userdata.json che si trova nella cartella config.

Configurazione delle impostazioni per il testing dei dispositivi

Le impostazioni di compilazione, flashing e test vengono eseguite nel file configs/userdata.json. Supportiamo la configurazione di Echo Server caricando i certificati e le chiavi del client e del server in. customPath Per ulteriori informazioni, consulta Configurazione di un server echo nella FreerTOS Porting Guide. Il seguente esempio JSON mostra come configurare IDT per FreerTOS per testare più dispositivi:

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

Il seguente elenca gli attributi utilizzati in userdata.json:

sourcePath

Il percorso alla radice del codice sorgente di FreerTOS portato. Per i test paralleli con un SDK, è sourcePath possibile impostarlo utilizzando il {{userData.sdkConfiguration.path}} segnaposto. Per esempio:

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

Il percorso verso il codice FreerTOS specifico del fornitore. Per i test seriali, vendorPath può essere impostato come un percorso assoluto. Per esempio:

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

Per test paralleli, vendorPath può essere impostato utilizzando il segnaposto {{testData.sourcePath}}. Per esempio:

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

La vendorPath variabile è necessaria solo quando viene eseguita senza un SDK, altrimenti può essere rimossa.

Nota

Quando si eseguono test in parallelo senza un SDK, il {{testData.sourcePath}} segnaposto deve essere utilizzato nei campivendorPath,,buildTool. flashTool Quando si esegue il test con un singolo dispositivo, i percorsi assoluti devono essere utilizzati nei campi vendorPath, buildTool, flashTool. Quando si esegue con un SDK, il {{sdkPath}} segnaposto deve essere utilizzato nei comandi, e. sourcePath buildTool flashTool

sdkConfiguration

Se stai qualificando FreerTOS con modifiche alla struttura di file e cartelle oltre a quelle richieste per il porting, dovrai configurare le informazioni del tuo SDK in questo blocco. Se non ti qualifichi con un FreerTOS portato all'interno di un SDK, allora dovresti omettere completamente questo blocco.

sdkConfiguration.name

Il nome dell'SDK che stai usando con FreerTOS. Se non stai utilizzando un SDK, l'intero sdkConfiguration blocco dovrebbe essere omesso.

sdkConfiguration.version

La versione dell'SDK che stai usando con FreerTOS. Se non stai utilizzando un SDK, l'intero sdkConfiguration blocco dovrebbe essere omesso.

sdkConfiguration.path

Il percorso assoluto della directory SDK che contiene il codice FreerTOS. Se non stai usando un SDK, allora l'intero sdkConfiguration blocco dovrebbe essere omesso.

buildTool

Il percorso completo allo script di build (.bat o.sh) contenente i comandi per creare il codice sorgente. Tutti i riferimenti al percorso del codice sorgente nel comando build devono essere sostituiti dalla AWS IoT Device Tester variabile {{testdata.sourcePath}} e i riferimenti al percorso SDK devono essere sostituiti da. {{sdkPath}} Utilizzate il {{config.idtRootPath}} segnaposto per fare riferimento al percorso IDT assoluto o relativo.

testStartDelayms

Speciifica quanti millisecondi aspetterà il test runner FreerTOS prima di iniziare a eseguire i test. Ciò può essere utile se il dispositivo sottoposto a test inizia a emettere importanti informazioni di test prima che IDT abbia la possibilità di connettersi e avviare la registrazione a causa della rete o di altra latenza. Il valore massimo consentito è 30000 ms (30 secondi). Questo valore è applicabile solo ai gruppi di test FreerTOS e non applicabile ad altri gruppi di test che non utilizzano il test runner FreerTOS, come i test OTA.

flashTool

Il percorso completo allo script di flash (.sh o.bat) contenente i comandi flash per il dispositivo. Tutti i riferimenti al percorso del codice sorgente nel comando flash devono essere sostituiti dalla variabile IDT per FreerTOS {{testdata.sourcePath}} e tutti i riferimenti al percorso SDK devono essere sostituiti dalla variabile IDT per FreeRTOS. Utilizzate il segnaposto per fare riferimento al percorso IDT assoluto o relativo. {{sdkPath}} {{config.idtRootPath}}

buildImageInfo
testsImageName

Il nome del file prodotto dal comando build durante la creazione dei test dalla cartella. freertos-source/tests

demosImageName

Il nome del file prodotto dal comando build durante la creazione dei test dalla freertos-source/demos cartella.

clientWifiConfig

Configurazione del Wi-Fi client. I test della libreria Wi-Fi richiedono la connessione di una scheda MCU a due punti di accesso. I due punti di accesso possono essere uguali. Questo attributo configura le impostazioni di rete Wi-Fi per il primo punto di accesso. Alcuni dei casi di test del Wi-Fi prevedono che il punto di accesso disponga di una certa sicurezza e che non sia aperto. Assicurati che entrambi i punti di accesso si trovino sulla stessa sottorete del computer host su cui è in esecuzione IDT.

wifi_ssid

SSID del Wi-Fi.

wifi_password

Password del Wi-Fi.

wifiSecurityType

Tipo di sicurezza Wi-Fi utilizzato. Uno dei valori:

  • eWiFiSecurityOpen

  • eWiFiSecurityWEP

  • eWiFiSecurityWPA

  • eWiFiSecurityWPA2

  • eWiFiSecurityWPA3

Nota

Se la scheda non supporta il Wi-Fi, devi comunque includere la sezione clientWifiConfig nel file device.json, ma puoi omettere i valori per questi attributi.

testWifiConfig

Effettua il test della configurazione Wi-Fi. I test della libreria Wi-Fi richiedono la connessione di una scheda MCU a due punti di accesso. I due punti di accesso possono essere uguali. Questo attributo configura l'impostazione del Wi-Fi per il secondo punto di accesso. Alcuni dei casi di test del Wi-Fi prevedono che il punto di accesso disponga di una certa sicurezza e che non sia aperto. Assicurati che entrambi i punti di accesso si trovino sulla stessa sottorete del computer host su cui è in esecuzione IDT.

wifiSSID

SSID del Wi-Fi.

wifiPassword

Password del Wi-Fi.

wifiSecurityType

Tipo di sicurezza Wi-Fi utilizzato. Uno dei valori:

  • eWiFiSecurityOpen

  • eWiFiSecurityWEP

  • eWiFiSecurityWPA

  • eWiFiSecurityWPA2

  • eWiFiSecurityWPA3

Nota

Se la scheda non supporta il Wi-Fi, devi comunque includere la sezione testWifiConfig nel file device.json, ma puoi omettere i valori per questi attributi.

echoServerCertificateConfiguration

Il segnaposto configurabile per la generazione di certificati del server echo per i test dei socket sicuri. Questo campo è obbligatorio.

certificateGenerationMethod

Speciifica se il certificato del server viene generato automaticamente o fornito manualmente.

customPath

Sono «Personalizzati» certificatePath e privateKeyPath sono obbligatori. certificateGenerationMethod

certificatePath

Speciifica il percorso del file per il certificato del server.

privateKeyPath

Speciifica il percorso del file per la chiave privata.

eccCurveFormat

Specifica il formato della curva supportato dalla scheda. Richiesto quando PKCS11 è impostato su «ecc» indevice.json. I valori validi sono «P224", «P256", «P384" o «P521".

echoServerConfiguration

Le porte configurabili del server echo per i test dei socket sicuri. WiFi Questo campo è facoltativo.

securePortForSecureSocket

La porta che viene utilizzata per configurare un server echo con TLS per il test di Secure Sockets. Il valore predefinito è 33333. Verificare che la porta configurata non sia bloccata da un firewall o dalla rete aziendale.

insecurePortForSecureSocket

La porta che viene utilizzata per configurare un server echo senza TLS per il test di Secure Sockets. Il valore predefinito utilizzato nel test è 33334. Verificare che la porta configurata non sia bloccata da un firewall o dalla rete aziendale.

insecurePortForWiFi

La porta utilizzata per configurare il server echo senza TLS per il test. WiFi Il valore predefinito utilizzato nel test è 33335. Verificare che la porta configurata non sia bloccata da un firewall o dalla rete aziendale.

otaConfiguration

La configurazione OTA. [Facoltativo].

otaFirmwareFilePath

Il percorso completo dell'immagine OTA creata dopo il build. Ad esempio, {{testData.sourcePath}}/relative-path/to/ota/image/from/source/root.

deviceFirmwareFileName

Il percorso completo del file sul dispositivo MCU in cui si trova il firmware OTA. Anche se alcuni dispositivi non utilizzano questo campo, è comunque necessario fornire un valore.

otaDemoConfigFilePath

Il percorso completo di aws_demo_config.h, disponibile in afr-source/vendors/vendor/boards/board/aws_demos/config_files/. Questi file sono inclusi nel modello di codice di porting fornito da FreerTOS.

codeSigningConfiguration

La configurazione della firma del codice.

signingMethod

Il metodo di firma del codice. I valori possibili sono AWS o Custom.

Nota

Per le regioni di Pechino e Ningxia, usa. Custom AWSla firma del codice non è supportata in queste regioni.

signerHashingAlgorithm

L'algoritmo hash supportato sul dispositivo. I valori possibili sono SHA1 o SHA256.

signerSigningAlgorithm

L'algoritmo di firma supportato sul dispositivo. I valori possibili sono RSA o ECDSA.

signerCertificate

Il certificato attendibile utilizzato per OTA.

Per il metodo di firma del AWS codice, usa Amazon Resource Name (ARN) per il certificato affidabile caricato su. AWS Certificate Manager

Per il metodo di firma del codice personalizzato, utilizza il percorso assoluto del file del certificato firmatario.

Per ulteriori informazioni sulla creazione di un certificato attendibile, consulta Creazione di un certificato di firma del codice.

signerCertificateFileName

Il nome del file del certificato di firma del codice sul dispositivo. Questo valore deve corrispondere al nome di file fornito durante l'esecuzione del aws acm import-certificate comando.

Per ulteriori informazioni, consulta Creazione di un certificato di firma del codice.

compileSignerCertificate

Imposta questa true opzione se il certificato di verifica della firma del firmatario del codice non è fornito o aggiornato, quindi deve essere compilato nel progetto. AWS IoT Device Tester recupera il certificato affidabile e lo compila in. aws_codesigner_certifiate.h

untrustedSignerCertificate

L'ARN o il percorso del file per un secondo certificato utilizzato in alcuni test OTA come certificato non attendibile. Per ulteriori informazioni sulla creazione di un certificato, consulta Creare un certificato di firma del codice.

signerPlatform

L'algoritmo di firma e hashing utilizzato da AWS Code Signer durante la creazione del processo di aggiornamento OTA. Al momento, i valori possibili per questo campo sono AmazonFreeRTOS-TI-CC3220SF e AmazonFreeRTOS-Default.

  • Scegli AmazonFreeRTOS-TI-CC3220SF se SHA1 e RSA.

  • Scegli AmazonFreeRTOS-Default se SHA256 e ECDSA.

Se ti occorre SHA256 | RSA o SHA1 | ECDSA per la configurazione, contattaci per ulteriore supporto.

Configura signCommand se hai scelto Custom per signingMethod.

signCommand

Il comando utilizzato per eseguire la firma del codice personalizzato. Puoi trovare il modello nella directory /configs/script_templates.

Sono necessari due segnaposto {{inputImageFilePath}} e {{outputSignatureFilePath}} nel comando. {{inputImageFilePath}} è il percorso del file dell'immagine creata da IDT da firmare. {{outputSignatureFilePath}} è il percorso del file della firma che verrà generato dallo script.

cmakeConfiguration

Configurazione CMake [opzionale]

Nota

Per eseguire i casi di test di CMake, devi specificare il nome della scheda, il nome del fornitore e frToolchainPath oppure compilerName. Puoi anche fornire, cmakeToolchainPath se disponi di un percorso personalizzato, alla toolchain CMake.

boardName

Nome della scheda sottoposta a test. Il nome della scheda deve essere uguale al nome della cartella in path/to/afr/source/code/vendors/vendor/boards/board.

vendorName

Nome del fornitore della scheda sottoposta a test. Il nome del fornitore deve essere uguale al nome della cartella in path/to/afr/source/code/vendors/vendor.

compilerName

Nome del compilatore.

frToolchainPath

Percorso completo del toolchain del compilatore.

cmakeToolchainPath

Percorso completo del toolchain CMake. Questo campo è facoltativo

freertosFileConfiguration

La configurazione dei file FreerTOS che IDT modifica prima di eseguire i test.

required

Questa sezione specifica i test obbligatori di cui sono stati spostati i file di configurazione, ad esempio PKCS11, TLS e così via.

configName

Il nome del test che viene configurato.

filePath

Il percorso assoluto dei file di configurazione all'interno del freertos repository. Utilizzate la {{testData.sourcePath}} variabile per definire il percorso.

optional

Questa sezione specifica i test opzionali di cui sono stati spostati i file di configurazione, ad esempio OTA e così via. WiFi

configName

Il nome del test che viene configurato.

filePath

Il percorso assoluto dei file di configurazione all'interno del freertos repository. Utilizzate la {{testData.sourcePath}} variabile per definire il percorso.

Nota

Per eseguire i casi di test di CMake, devi specificare il nome della scheda, il nome del fornitore e afrToolchainPath oppure compilerName. Puoi anche specificare cmakeToolchainPath se disponi di un percorso personalizzato per la toolchain CMake.

IDT per variabili FreerTOS

I comandi per creare il codice e eseguire il flashing del dispositivo potrebbero richiedere connettività o altre informazioni sui dispositivi per funzionare correttamente. AWS IoT Device Tester consente di fare riferimento alle informazioni sul dispositivo in flash e di creare comandi utilizzando JsonPath. Utilizzando JsonPath espressioni semplici, è possibile recuperare le informazioni richieste specificate nel device.json file.

Variabili di percorso

IDT per FreerTOS definisce le seguenti variabili di percorso che possono essere utilizzate nelle righe di comando e nei file di configurazione:

{{testData.sourcePath}}

Si estende al percorso del codice sorgente. Se utilizzi questa variabile, deve essere utilizzata sia nei comandi flash che di compilazione.

{{sdkPath}}

Si espande fino al valore del tuo userData.sdkConfiguration.path quando viene utilizzato nei comandi build e flash.

{{device.connectivity.serialPort}}

Si estende alla porta seriale.

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

Estende al numero seriale del dispositivo.

{{enableTests}}

Valore intero che indica se la compilazione è per test (valore 1) o demo (valore 0).

{{buildImageName}}

Il nome del file dell'immagine creata dal comando di compilazione.

{{otaCodeSignerPemFile}}

File PEM per il firmatario del codice OTA.

{{config.idtRootPath}}

Si espande fino al percorso principale. AWS IoT Device Tester Questa variabile sostituisce il percorso assoluto per IDT quando viene utilizzata dai comandi build e flash.