Facebook EmaiInACirclel
Systèmes embarqués – IoT

Embedded C : un langage optimisé pour les objets connectés

PentaGuy
PentaGuy
Blogger

Le langage C est l’un des plus anciens langages de programmation, toujours très utilisé actuellement. Il a été constamment utilisé dans des applications qui avaient déjà été codées en assembleur tel que le système d’exploitation UNIX. Le C a directement ou indirectement influencé un grand nombre de langages de programmation ultérieurs, tels que C#, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python et C shell Unix. Malgré tous ces nouveaux langages, C reste un langage de programmation populaire.

Le C embarqué est composé d’un ensemble d’extensions de langage pour le langage de programmation C. Il a été approuvé par le comité du standard C. Grâce aux extensions Embedded C, ce comité ambitionnait de répondre aux problématiques liées au partage d’attributs qui existent entre les extensions du C pour différents systèmes embarqués.

Le C embarqué utilise une grande partie de la syntaxe et de la sémantique du langage C, comme par exemple la fonction main (), la définition des variables, la déclaration de type de données, les instructions conditionnelles (if, switch.case), les boucles (while, for), les fonctions, les tableaux et les chaînes de caractères, les structures et l’union, les opérations sur les bits, les macros, les syndicats, etc.

Pour les caractéristiques « exotiques » comme l’arithmétique en virgule fixe, plusieurs banques de mémoire distinctes et les opérations de base d’E/S, la programmation C embarquée nécessite des extensions non standard au langage C.

Bien que le C embarqué soit une extension du langage C, ces deux langages sont similaires à quelques exceptions prêt. En effet, le C est généralement utilisé pour les ordinateurs de bureau, alors que le C embarqué est plutôt intégré pour les applications à base de microcontrôleur. Le C peut utiliser les ressources d’un PC de bureau comme la mémoire, l’OS, etc.  alors que le C embarqué doit utiliser des ressources limitées telles que la RAM, ROM, les E/S sur un processeur embarqué. De plus, le C embarqué inclut des fonctionnalités supplémentaires par rapport au C comme les types virgule fixe (double, long, float), plusieurs zones de mémoire et du mapping (routage) des registres E/S. Les compilateurs pour C (ANSI C) génèrent en général des exécutables dépendants du système d’exploitation. Le C embarqué nécessite un compilateur pour créer des fichiers à télécharger sur les microcontrôleurs / microprocesseurs qu’il utilise pour fonctionner.

Java est également utilisé dans de nombreux systèmes embarqués mais les programmes Java nécessitent une machine virtuelle Java (JVM) qui consomme beaucoup de ressources. C’est pourquoi ce langage n’est pas utilisé pour les appareils embarqués qui ne disposent que de ressources limitées.

Alors, ce qui est fondamentalement différent lors de la programmation en C embarqué c’est l’état d’esprit : pour les applications embarquées, nous avons besoin d’utiliser de façon optimale les ressources, de coder efficacement les programmes et de satisfaire les contraintes de temps réel. Tout cela en utilisant les constructions basiques, les syntaxes et les bibliothèques de fonctions du C.

En conclusion, ce langage est parfaitement adapté pour l’implémentation des différents algorithmes sur des micro-contrôleurs dans des équipements divers tels que les objets connectés, l’électronique médicale de dernière génération, la robotique, la géolocalisation, etc.

Si vous avez des problématiques de développement embarqué, Proof Of Concept (POC) pour vos objets connectés, contactez-nous !


2 Commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *