Portage FreeRTOS+TCP - FreeRTOS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Portage FreeRTOS+TCP

FreeRTOS+TCP est une pile TCP/IP native pour le noyau FreeRTOS. Pour plus d'informations, consultez FreeRTOS.org.

Prerequisites

Pour porter la bibliothèque FreeRTOS+TCP, vous avez besoin des éléments suivants :

Porting

Avant de commencer à porter la bibliothèque FreeRTOS-TCP, vérifiez le répertoire freertos/libraries/freertos_plus/standard/freertos_plus_tcp/portable/NetworkInterface pour voir si un portage vers votre appareil existe déjà.

S’il n'existe pas de portage, procédez comme suit :

  1. Suivez les instructions Porting FreeRTOS+TCP to a Different Microcontroller sur FreeRTOS.org pour porter FreeRTOS+TCP vers votre appareil.

  2. Si nécessaire, suivez les instructions Porting FreeRTOS+TCP to a New Embedded C Compiler sur FreeRTOS.org pour porter FreeRTOS+TCP vers un nouveau compilateur.

  3. Implémentez un nouveau portage qui utilise les pilotes Ethernet ou Wi-Fi du fournisseur dans un fichier nommé NetworkInterface.c et enregistrez le fichier dans freertos/libraries/freertos_plus/standard/freertos_plus_tcp/portable/NetworkInterface/board_family.

    Note

    Les fichiers du répertoire freertos/libraries/freertos_plus/standard/freertos_plus_tcp/portable/BufferManagement sont utilisés par plusieurs portages. Ne modifiez pas les fichiers de ce répertoire.

Après avoir créé un portage, ou si un portage existe déjà, ouvrez freertos/vendors/vendor/boards/board/aws_tests/config_files/FreeRTOSIPConfig.h et modifiez les options de configuration afin qu'elles soient correctes pour votre plateforme. Pour plus d'informations sur les options de configuration, consultez FreeRTOS+TCP Configuration sur FreeRTOS.org.

Testing

Si vous utilisez un IDE pour générer des projets de test, vous devez configurer le portage de votre bibliothèque dans le projet IDE.

Configuration du projet de test IDE

Si vous utilisez un IDE pour le portage et le test, vous devez ajouter des fichiers source au projet de test IDE avant de pouvoir tester votre code porté.

Important

Dans les étapes suivantes, assurez-vous d’ajouter les fichiers source à votre projet IDE depuis leur emplacement sur disque. Ne créez pas de copies de vos fichiers source.

Pour configurer la bibliothèque FreeRTOS+TCP dans le projet IDE

  1. Ajoutez tous les fichiers d'en-tête et la source d'freertos/libraries/freertos_plus/standard/freertos_plus_tcp et ses sous-répertoires dans le projet IDE aws_tests.

    Note

    FreeRTOS inclut cinq exemples d'implémentations de gestion de pile sous freertos/freertos_kernel/portable/MemMang. FreeRTOS+TCP et BufferAllocation_2.c nécessitent les implémentations heap_4.c ou heap_5.c. Vous devez utiliserheap_4.couheap_5.cafin de vous assurer que les applications de démonstration FreeRTOS fonctionnent correctement. N'utilisez pas une implémentation de pile personnalisée.

  2. Ajoutez freertos/libraries/freertos_plus/standard/freertos_plus_tcp/include au chemin à inclure de votre compilateur.

Configuration du fichier CMakeLists.txt

Si vous utilisez CMake pour générer votre projet de test, vous devez définir une cible de couche portable pour la bibliothèque dans votre fichier de liste CMake.

Pour définir la cible de couche portable d'une bibliothèque dans CMakeLists.txt, suivez les instructions de Couches portables FreeRTOS.

Le fichier de liste de modèles CMakeLists.txt sous freertos/vendors/vendor/boards/board/CMakeLists.txt inclut des exemples de définition cible de couche portable. Vous pouvez supprimer la mise en commentaire de la définition de la bibliothèque que vous portez et modifier celle-ci pour qu'elle corresponde à votre plateforme.

Configuration de votre environnement de test local

Après avoir configuré la bibliothèque dans votre projet IDE, vous devez configurer des fichiers à tester.

Pour configurer les fichiers source et d'en-tête pour les tests TCP

  1. Si vous n'avez pas porté la bibliothèque Secure Sockets, ouvrez freertos/libraries/freertos_plus/standard/utils/src/iot_system_init.c et dans la fonction SYSTEM_Init(), commentez la ligne qui appelle SOCKETS_Init(). Lorsque vous atteindrez la section Portage de la bibliothèque Secure Sockets, vous serez invité à supprimer la mise en commentaire de cet appel de fonction d'initialisation.

  2. Ouvrez freertos/vendors/vendor/boards/board/aws_tests/application_code/main.c et supprimez le commentaire de l'appel à FreeRTOS_IPInit().

  3. Remplissez les tableaux suivants avec des valeurs valides pour votre réseau :

    Variable Description
    uint8_t ucMACAddress[ 6 ] Configuration par défaut de l'adresse MAC.
    uint8_t ucIPAddress[ 4 ]

    Configuration par défaut de l'adresse IP.

    Note

    Par défaut, l'adresse IP est acquise par DHCP. Si DHCP échoue ou si vous ne souhaitez pas utiliser DHCP, l'adresse IP statique définie ici est utilisée.

    Pour désactiver DHCP, ouvrezfreertos/vendors/vendor/boards/board/aws_tests/config_files/FreeRTOSIPConfig.het définissezipconfigUSE_DHCPsur0. Pour des démonstrations,ipconfigUSE_DHCPest défini dansfreertos/vendors/vendor/boards/board/aws_demos/config_files/FreeRTOSIPConfig.h.

    uint8_t ucNetMask[ 4 ] Configuration par défaut du masque de réseau.
    uint8_t ucGatewayAddress[ 4 ] Configuration par défaut de l’adresse de la passerelle.
    uint8_t ucDNSServerAddress[ 4 ] Configuration par défaut de l’adresse du serveur DNS.
  4. Ouvrez freertos/vendors/vendor/boards/board/aws_tests/config_files/FreeRTOSIPConfig.h et définissez la macro ipconfigUSE_NETWORK_EVENT_HOOK sur 1.

  5. Ouvrez freertos/vendors/vendor/boards/board/aws_tests/application_code/main.c et ajoutez le code suivant au début de la définition de fonction de vApplicationIPNetworkEventHook() :

    if (eNetworkEvent == eNetworkUp) { configPRINT("Network connection successful. \n\r"); }

Exécution des tests

Pour exécuter les tests FreeRTOS+TCP

  1. Générez le projet de test, puis flashez-le sur votre appareil pour l'exécuter.

  2. Vérifiez les résultats de test dans la console UART. Si Network connection successful s'affiche, le pilote Ethernet ou Wi-Fi est correctement connecté au réseau et le test est terminé.

Validation

Pour qualifier officiellement un périphérique pour FreeRTOS, vous devez valider le code source porté du périphérique avecAWS IoTDevice Tester. Suivez les instructions de la sectionUtiliserAWS IoTDevice Tester pour FreeRTOSdans le manuel de l'utilisateur de FreeRTOS afin de configurer Device Tester pour la validation de port. Pour tester le port d'une bibliothèque spécifique, le groupe de test correct doit être activé dans le fichier device.json du dossier configs de Device Tester.