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.
Portierung der Netzwerktransportschnittstelle
Integration der TLS-Bibliothek
Verwenden Sie für Transport Layer Security (TLS) -Authentifizierung Ihren bevorzugten TLS Stack. Wir empfehlen die VerwendungTLS einbetten
Unabhängig von der von Ihrem Gerät verwendeten TLS-Implementierung müssen Sie die zugrunde liegenden Transport-Hooks für den TLS-Stack mit dem TCP/IP-Stack implementieren. Sie müssen dieTLS-Verschlüsselungssammlungen, die unterstützt werden vonAWS IoT.
Portierung der Network Transport Interface-Bibliothek
Sie müssen eine Netzwerktransportschnittstelle implementieren, um sie verwenden zu könnenCoreMQTT
Voraussetzungen
Um diesen Test zu portieren, benötigen Sie Folgendes:
Ein Projekt mit einem Build-System, das FreeRTOS mit einem validierten FreeRTOS-Kernelport erstellen kann.
Funktionierende Implementierung von Netzwerktreibern.
Portierung
HinzufügenFreeRTOS-Bibliotheken — Integrationstests
als Submodul in Ihr Projekt. Es spielt keine Rolle, wo sich das Submodul im Projekt befindet, solange es gebaut werden kann. Kopieren
config_template/test_execution_config_template.h
undconfig_template/test_param_config_template.h
zu einem Projektspeicherort im Build-Pfad und benennen sie um intest_execution_config.h
undtest_param_config.h
.Nehmen Sie relevante Dateien in das Build-System auf. Wenn Sie verwenden
CMake
,qualification_test.cmake
undsrc/transport_interface_tests.cmake
werden verwendet, um relevante Dateien einzuschließen.Implementieren Sie die folgenden Funktionen an einem geeigneten Projektstandort:
-
EIN
network connect function
: Die Signatur ist definiert durchNetworkConnectFunc
insrc/common/network_connection.h
. Diese Funktion verwendet einen Zeiger auf den Netzwerkkontext, einen Zeiger auf Hostinformationen und einen Zeiger auf Netzwerkanmeldedaten. Sie stellt mit den angegebenen Netzwerkanmeldedaten eine Verbindung zu dem in den Host-Informationen angegebenen Server her.EIN
network disconnect function
: Die Signatur ist definiert durchNetworkDisconnectFunc
insrc/common/network_connection.h
. Diese Funktion nimmt einen Zeiger auf einen Netzwerkkontext auf. Sie trennt eine zuvor hergestellte Verbindung, die im Netzwerkkontext gespeichert ist.setupTransportInterfaceTestParam()
: Das ist definiert insrc/transport_interface/transport_interface_tests.h
. Die Implementierung muss genau den gleichen Namen und die gleiche Signatur haben, wie sie in definiert sindtransport_interface_tests.h
. Diese Funktion nimmt einen Zeiger auf einTransportInterfaceTestParamStruktur. Es wird die Felder in der füllenTransportInterfaceTestParamStruktur, die vom Transportschnittstellentest verwendet wird.
ImplementierenUNITY_OUTPUT_CHARsodass sich Testausgabeprotokolle nicht mit Geräteprotokollen überschneiden.
Rufen Sie an
runQualificationTest()
aus der Anwendung. Die Gerätehardware muss ordnungsgemäß initialisiert und das Netzwerk muss vor dem Anruf verbunden sein.
Verwaltung von Anmeldeinformationen (auf dem Gerät generierter Schlüssel)
WannFORCE_GENERATE_NEW_KEY_PAIRintest_param_config.h
ist auf 1 gesetzt, generiert die Geräteanwendung ein neues key pair auf dem Gerät und gibt den öffentlichen Schlüssel aus. Die Geräteanwendung verwendetECHO_SERVER_ROOT_CAundTRANSPORT_CLIENT_CERTIFICATEals Root-CA des Echo-Servers und als Client-Zertifikat beim Aufbau einer TLS-Verbindung mit dem Echo-Server. IDT legt diese Parameter während des Qualifikationslaufs fest.
Verwaltung von Anmeldeinformationen (Schlüssel importieren)
Die Geräteanwendung verwendetECHO_SERVER_ROOT_CA,TRANSPORT_CLIENT_CERTIFICATEundTRANSPORT_CLIENT_PRIVATE_KEYintest_param_config.h
als Root-CA des Echo-Servers, Client-Zertifikat und privater Client-Schlüssel, wenn eine TLS-Verbindung mit dem Echo-Server hergestellt wird. IDT legt diese Parameter während des Qualifikationslaufs fest.
Testen
In diesem Abschnitt wird beschrieben, wie Sie die Transportschnittstelle mit den Qualifikationstests lokal testen können. Weitere Informationen finden Sie untertransport_interface
Alternativ können Sie auch IDT verwenden, um die Ausführung zu automatisieren. SieheAWS IoT Device Testerfür FreeRTOSin derFreeRTOS BenutzerhandbuchWeitere Informationen.
Den Test aktivieren
Öffnentest_execution_config.h
und definiereTRANSPORT_INTERFACE_TEST_ENABLEDbis 1.
Richten Sie den Echo-Server zum Testen ein
Für lokale Tests ist ein Echoserver erforderlich, auf den von dem Gerät aus zugegriffen werden kann, auf dem die Tests ausgeführt werden. Der Echoserver muss TLS unterstützen, wenn die Implementierung der Transportschnittstelle TLS unterstützt. Wenn Sie noch keine haben,FreeRTOS-Bibliotheken — Integrationstests
Konfiguration des Projekts zum Testen
Imtest_param_config.h
, aktualisierenECHO_SERVER_ENDPOINTundECHO_SERVER_PORTzum Endpunkt- und Server-Setup im vorherigen Schritt.
Anmeldeinformationen für die Einrichtung (auf dem Gerät generierter Schlüssel)
EingestelltECHO_SERVER_ROOT_CAzum Serverzertifikat des Echoservers.
EingestelltFORCE_GENERATE_NEW_KEY_PAIRauf 1, um ein key pair zu generieren und den öffentlichen Schlüssel zu erhalten.
Stellen Sie einFORCE_GENERATE_NEW_KEY_PAIRnach der Schlüsselgenerierung zurück auf 0.
Verwenden Sie den öffentlichen Schlüssel sowie den Serverschlüssel und das Zertifikat, um das Client-Zertifikat zu generieren.
SetTRANSPORT_CLIENT_CERTIFICATEzum generierten Client-Zertifikat.
Anmeldeinformationen einrichten (Schlüssel importieren)
EinstellenECHO_SERVER_ROOT_CAzum Serverzertifikat des Echoservers.
EingestelltTRANSPORT_CLIENT_CERTIFICATEzum vorgenerierten Client-Zertifikat.
SetTRANSPORT_CLIENT_PRIVATE_KEYzum vorgenerierten privaten Client-Schlüssel.
Erstellen und flashen Sie die Anwendung
Erstellen und flashen Sie die Anwendung mit der Toolchain Ihrer Wahl. WannrunQualificationTest()
wird aufgerufen, werden die Tests der Transportschnittstelle ausgeführt. Die Testergebnisse werden an die serielle Schnittstelle ausgegeben.
Anmerkung
Um ein Gerät offiziell für FreeRTOS zu qualifizieren, müssen Sie den portierten Quellcode des Geräts anhand von OTA PAL- und OTA E2E-Testgruppen validieren mitAWS IoT Device Tester. Folgen Sie den Anweisungen unterVerwendenAWS IoT Device Testerfür FreeRTOSin derFreeRTOS BenutzerhandbucheinrichtenAWS IoT Device Testerfür die Portvalidierung. Um den Port einer bestimmten Bibliothek zu testen, muss die richtige Testgruppe in derdevice.json
Datei imAWS IoT Device Tester configs
Ordner.