Etapes de programmation

Ecriture du code source

Tout comme les processeurs généralistes (qui équipent la plupart des ordinateurs), les microcontrôleurs ne comprennent que du langage de bas niveau, encore appelé assembleur. Cependant, ces langages étant difficiles à comprendre et à appréhender pour un être humain, les fabricants de composants de ce type prévoient de les programmer à l’aide de langage de plus haut niveau (exemple : Python, C++, C…).

Selon les microcontrôleurs et le niveau d’abstraction de la couche matérielle que veut proposer le fabricant à ses utilisateurs, le langage utilisé pour coder les applications embarquées peut changer.

Compilation

Dans tous les cas, une fois le code écrit dans le langage associé à la cible microcontroleur, il existe des programmes qui permettent de transformer des langages dits de haut niveau (type langage Python, C, C++) vers ces langages machines. Ce sont les compilateurs.

La plupart du temps, ces compilateurs sont intégrés dans un environnement de développement propre au microcontroleur (ou au type de microcontroleur) et ils sont associés à une série de bibliothèques de fonctions permettant de gérer les traitements internes ou/et de communiquer avec des composants externes (entrées/sorties, écrans LCD, accéléromètres, modules BT…).

Compilation d’un langage de haut niveau vers l’assembleur

La compilation va réaliser deux étapes différentes :

  1. la traduction du code du langage C vers un langage de bas niveau qu’est l’assembleur
  2. l’attribution des lignes de code et des variables à des espaces mémoires (soit en ROM pour le programme, soit en RAM pour les données ou variables) en fonction de la cible choisie (i.e. la référence de microcontroleur utilisée)

Cette étape de compilation permet également de réunir, dans un seul et même fichier, l’ensemble du code écrit et des fonctions utilisées pour l’application (provenant des diverses bibliothèques utilisées). On obtient alors en sortie un fichier binaire pouvant par la suite être téléversé sur la cible.

Téléversement

La dernière étape est de transférer le fichier binaire fourni par l’étape précédente sur le microcontroleur.

Téléversement d’un programme binaire vers la cible microcontroleur

Pour cela, on utilise un dispositif qui s’appelle un programmateur. Il permet d’imposer les bons signaux sur le microcontroleur afin de le sortir de son mode de fonctionnement classique, pour l’emmener dans un mode de programmation. L’espace Flash-ROM est alors accessible en écriture pour pouvoir stocker le programme à l’intérieur. Cette phase nécessite souvent d’avoir une tension un peu supérieure à celle d’alimentation standard.

Une fois le téléversement du programme réalisé, le programmateur libère alors le microcontroleur de ce mode de programmation. L’application peut alors tourner normalement et sans l’intervention du programmateur ou de l’ordinateur auquel il est connecté.

Microcontrôleurs / Comment se programme un microcontroleur ?