Programmation embarquée pour micro-contrôleurs - Découverte

De Wiki Cours Linux embarqué CPE-Lyon
< Dev
Aller à : navigation, rechercher


Présentation

Les clés "GPIO Demo" et les cartes "LPC1224-BreakOut" sont des mini kits de développement pour le micro-contrôleur LPC1224 de NXP créés pour le projet DomoTab.

Vous trouverez plus d'infos sur le projet et les clés sur le site de Techno-Innov sous le menu "DomoTab --> Données techniques --> Modules --> Module GPIO-Démo".

Quelle est l'architecture du micro-contrôleur utilisé ? Recherchez ses caractéristiques (fréquence, mémoire, périphériques, ....)

Chaîne de Cross-Compilation

Quel compilateur est nécessaire pour créer du code pour le module GPIO-Démo ? Installez la version fournie par le projet Debian en suivant les instructions de la section "Installation des chaînes de (cross-)compilation" sur la page Système de développement

Sources

Un code source d'exemple complet est disponible depuis le git de techno-innov, cependant je vous propose une approche plus progressive.

Reportez vous à l'article que j'ai écrit pour le magazine Open Silicium et qui est disponible sur le Wiki du projet DomoTab (mettre lien vers PDF de l'article)

Analysez le contenu (fichiers).

  • Quel fichier correspond au point d'entrée du programme ?
  • Quels fichiers contiennent la définition des parties spécifiques au micro-contrôleur ?
  • Pourquoi les fonctions memcpy(), memset, strcpy(), strlen(), snprintf() ... sont elles re-codées dans le dossier lib/ ?

Compilation

Quel est le format par défaut d'un binaire crée par gcc ?

Ce format (page man) inclue de nombreuses sections. Seules certaines ont un intérêt pour un processeur ou un micro-contrôleur.

De plus, notre micro-contrôleur (comme tous les micro-contrôleurs et processeurs) a une organisation mémoire bien spécifique.

Quel est le fichier permettant de préciser au compilateur l'organisation propre à notre micro-contrôleur ?

Quelle commande permet de créer une image binaire ne contenant que les sections dont nous avons besoin pour flasher notre micro-contrôleur ?

Flash du micro-contrôleur

Les micro-contrôleurs LPC* de NXP ont la particularité de pouvoir être flashés par une simple liaison série à l'aide d'un protocole simple entièrement décrit dans la documentation. Pour en simplifier l'utilisation, un adaptateur USB-UART a été implanté sur les modules GPIO-Démo : le FT230XS de FTDI.

Il nous faut cependant un outil permettant d'utiliser ce protocole pour envoyer notre binaire sur le module. Il en existe plusieurs, je vous propose d'utiliser celui que j'ai créé : lpctools, qui est désormais intégré à la distribution Debian GNU/Linux.

Pour flasher le micro-contrôleur il faut utiliser la commande lpcprog (lpcisp permet un accès à chaque commande du protocole de communication avec l'ISP individuellement)

lpcprog -d /dev/ttyUSB0 -c flash image.bin