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à.
Portare l'interfaccia di trasporto di rete
Integrazione della libreria TLS
Per l'autenticazione Transport Layer Security (TLS), utilizza il tuo stack TLS preferito. Consigliamo l'utilizzoTransport Transport Transport Transport
Indipendentemente dall'implementazione TLS utilizzata dal dispositivo, è necessario implementare gli hook di trasporto sottostanti per lo stack TLS con lo stack TCP/IP. Devono sostenere ilsuite di crittografia TLS supportate daAWS IoT.
Portare la libreria Network Transport Interface
È necessario implementare un'interfaccia di trasporto di rete da utilizzareCoreMQTT
Prerequisiti
Per il porting del test, sono necessari i seguenti elementi:
Un progetto con un sistema di build in grado di creare FreerTOS con una porta del kernel FreerTOS convalidata.
Implementazione funzionante dei driver di rete.
Portabilità
InserisciTest di integrazione delle librerie ERTOS gratuiti
come sottomodulo del tuo progetto. Non importa dove sia collocato il sottomodulo nel progetto, purché possa essere costruito. Copia
config_template/test_execution_config_template.h
econfig_template/test_param_config_template.h
in una posizione del progetto nel percorso di creazione e rinominali intest_execution_config.h
etest_param_config.h
.Includi i file pertinenti nel sistema di compilazione. Se si utilizza
CMake
,qualification_test.cmake
esrc/transport_interface_tests.cmake
vengono utilizzati per includere i file pertinenti.Implementa le seguenti funzioni in una sede di progetto appropriata:
-
UN
network connect function
: La firma è definita daNetworkConnectFunc
nelsrc/common/network_connection.h
. Questa funzione utilizza un puntatore al contesto di rete, un puntatore alle informazioni sull'host e un puntatore alle credenziali di rete. Stabilisce una connessione con il server specificato nelle informazioni sull'host con le credenziali di rete fornite.UN
network disconnect function
: La firma è definita daNetworkDisconnectFunc
nelsrc/common/network_connection.h
. Questa funzione utilizza un puntatore a un contesto di rete. Disconnette una connessione precedentemente stabilita memorizzata nel contesto di rete.setupTransportInterfaceTestParam()
: Questo è definito insrc/transport_interface/transport_interface_tests.h
. L'implementazione deve avere esattamente lo stesso nome e la stessa firma definiti intransport_interface_tests.h
. Questa funzione utilizza un puntatore aTransportInterfaceTestParamstruttura. Popolerà i campi delTransportInterfaceTestParamstruttura utilizzata dal test dell'interfaccia di trasporto.
IMPLEMENTAREUNITY_OUTPUT_CHARin modo che i registri di output del test non si interlacciano con i registri del dispositivo.
Chiama
runQualificationTest()
dall'applicazione. L'hardware del dispositivo deve essere inizializzato correttamente e la rete deve essere connessa prima della chiamata.
Gestione delle credenziali (chiave generata sul dispositivo)
QuandoFORCE_GENERATE_NEW_KEY_PAIRneltest_param_config.h
è impostato su 1, l'applicazione del dispositivo genera una nuova coppia di chiavi sul dispositivo ed emette la chiave pubblica. L'applicazione del dispositivo utilizzaECHO_SERVER_ROOT_CAeTRANSPORT_CLIENT_CERTIFICATEcome CA root del server echo e certificato client quando si stabilisce una connessione TLS con il server echo. IDT imposta questi parametri durante la fase di qualificazione.
Gestione delle credenziali (chiave di importazione)
L'applicazione del dispositivo utilizzaECHO_SERVER_ROOT_CA,CERTIFICATO_CLIENT_TRASPORTOeTRANSPORT_CLIENT_PRIVATE_KEYneltest_param_config.h
come CA principale del server echo, certificato client e chiave privata del client quando si stabilisce una connessione TLS con il server echo. IDT imposta questi parametri durante la fase di qualificazione.
Test
Questa sezione descrive come testare localmente l'interfaccia di trasporto con i test di qualificazione. Ulteriori informazioni sono disponibili nel file README.md fornito neltransport_interface
In alternativa, puoi anche utilizzare IDT per automatizzare l'esecuzione. VediAWS IoT Device Testerper FreerTOSnelGuida per l'utente di FreerTOSper ulteriori informazioni.
Abilita il test
Apriretest_execution_config.h
e definisciTRANSPORT_INTERFACE_TEST_ENABLEDa 1.
Configura il server echo per il test
Per i test locali è necessario un server echo accessibile dal dispositivo che esegue i test. Il server echo deve supportare TLS se l'implementazione dell'interfaccia di trasporto supporta TLS. Se non ne hai già il certificato,Test di integrazione delle librerie ERTOS gratuiti
Configurazione del progetto per i test
Intest_param_config.h
, aggiornaECHO_SERVER_ENDPOINTeECHO_SERVER_PORTalla configurazione dell'endpoint e del server nel passaggio precedente.
Credenziali di configurazione (chiave generata sul dispositivo)
ImpostareECHO_SERVER_ROOT_CAal certificato del server echo.
ImpostareFORCE_GENERATE_NEW_KEY_PAIRa 1 per generare una coppia di chiavi e ottenere la chiave pubblica.
ImpostareFORCE_GENERATE_NEW_KEY_PAIRtorna a 0 dopo la generazione della chiave.
Usa la chiave pubblica e la chiave e il certificato del server per generare il certificato client.
ImpostareTRANSPORT_CLIENT_CERTIFICATEal certificato client generato.
Credenziali di configurazione (chiave di importazione)
ImpostareECHO_SERVER_ROOT_CAal certificato del server echo.
ImpostareTRANSPORT_CLIENT_CERTIFICATEal certificato client pregenerato.
ImpostareTRANSPORT_CLIENT_PRIVATE_KEYalla chiave privata del client pregenerata.
Crea ed esegui il flashing dell'applicazione
Crea ed esegui il flashing dell'applicazione utilizzando la toolchain che preferisci. QuandorunQualificationTest()
viene richiamato, verranno eseguiti i test dell'interfaccia di trasporto. I risultati dei test vengono inviati alla porta seriale.
Nota
Per qualificare ufficialmente un dispositivo per FreerTOS, è necessario convalidare il codice sorgente portato del dispositivo rispetto ai gruppi di test OTA PAL e OTA E2E conAWS IoT Device Tester. Segui le istruzioni inUsandoAWS IoT Device Testerper FreerTOSnelGuida per l'utente di FreerTOSda configurareAWS IoT Device Testerper la convalida delle porte. Per testare la porta di una libreria specifica, è necessario abilitare il gruppo di test corretto neldevice.json
file inAWS IoT Device Tester configs
cartella.