« SE4 2022/2023 EC3 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 3 : Ligne 3 :
Il vous est demandé de :
Il vous est demandé de :
* concevoir et réaliser un projet LUFA sur la base de la démonstration bas-niveau RNDIS ;
* concevoir et réaliser un projet LUFA sur la base de la démonstration bas-niveau RNDIS ;
* la cible est l'ATMega8u2 d'un Arduino Uno Rev3 ;
* la cible est l'<s>ATMega8u2</s>ATMega16u2 d'un Arduino Uno R3 ;
* d'intégrer dans le projet LUFA une micro-pile TCP/IPv4 comportant :
* <s>d'intégrer dans le projet LUFA une micro-pile TCP/IPv4 comportant</s> de réduire la pile TCP/IP du projet LUFA à une micro-pile permettant  :
** la gestion des requêtes et des questions ARP,
** la gestion des requêtes et des questions ARP,
** la gestion des paquets IPv4, en particulier avec les calculs de sommes de contrôle,
** la gestion des paquets IPv4, en particulier avec les calculs de sommes de contrôle,
** la gestion des paquets ICMP de type requête et réponse d'écho,
** la gestion des paquets ICMP de type requête et réponse d'écho,
* vous testerez votre projets LUFA à partir d'une machine Linux en lançant un <code>ping</code> sur l'adresse IPv4 de l'Arduino UNO ;
* vous testerez votre projets LUFA à partir d'une machine Linux en lançant un <code>ping</code> sur l'adresse IPv4 de l'Arduino UNO ;
* pour rendre le test plus visuel vous utilisez les deux LED TX et RX commandées par l'ATMega8u2 :
* pour rendre le test plus visuel vous utilisez les deux LED TX et RX commandées par l'<s>ATMega8u2</s>ATMega16u2 :
** une LED pour indiquer la réception de paquets IPv4 destinés à l'ATMega8u2 ;
** une LED pour indiquer la réception de paquets IPv4 destinés à l'<s>ATMega8u2</s>ATMega16u2 ;
** une LED pour toute requête d'écho destinée à l'ATMega8u2.  
** une LED pour toute requête d'écho destinée à l'<s>ATMega8u2</s>ATMega16u2.


= Matériel nécessaire =
= Matériel nécessaire =

Version du 12 juillet 2023 à 08:37

Objectifs

Il vous est demandé de :

  • concevoir et réaliser un projet LUFA sur la base de la démonstration bas-niveau RNDIS ;
  • la cible est l'ATMega8u2ATMega16u2 d'un Arduino Uno R3 ;
  • d'intégrer dans le projet LUFA une micro-pile TCP/IPv4 comportant de réduire la pile TCP/IP du projet LUFA à une micro-pile permettant  :
    • la gestion des requêtes et des questions ARP,
    • la gestion des paquets IPv4, en particulier avec les calculs de sommes de contrôle,
    • la gestion des paquets ICMP de type requête et réponse d'écho,
  • vous testerez votre projets LUFA à partir d'une machine Linux en lançant un ping sur l'adresse IPv4 de l'Arduino UNO ;
  • pour rendre le test plus visuel vous utilisez les deux LED TX et RX commandées par l'ATMega8u2ATMega16u2 :
    • une LED pour indiquer la réception de paquets IPv4 destinés à l'ATMega8u2ATMega16u2 ;
    • une LED pour toute requête d'écho destinée à l'ATMega8u2ATMega16u2.

Matériel nécessaire

Le seul matériel nécessaire est un Arduino Uno Rev3.

Travail réalisé

Semaine 1

  • Recherche d'un Arduino Uno Rev3
  • Activation de RNDIS sur Ubuntu 20.04
  • Tentative de compréhension de la démo RNDISEthernet dans LUFA.
  • Modification du Makefile du programme de démonstration pour l'adapter au matériel.
  • Passage de l'Arduino en mode DFU (en connectant la broche RESET de l'ATmega16u2 à la masse)
  • Premier téléversement du programme de démonstration RNDISEthernet (problème de compatibilité avec l'ATmega16u2, qui ne semble pas faire partie des microcontroleurs compatible) avec dfu-programmer, puis rétablissement du firmware d'origine.

ReX : L'exemple RNDIS de la LUFA est bien plus complet que prévu, en particulier une pile TCP/IP est déjà implantée dans le sous-répertoire Lib.

ReX : Effectivement l'exemple complet ne peut pas tourner sur un ATMega16u2, rien que la variable globale utilisée pour un paquet Ethernet fait 1500 octets (un ATMega16u2 n'a que 2K de mémoire).

ReX : Votre sujet est modifié en conséquence.

Semaine 2

Documents Rendus