Bonjour
Question naive, si on sait programme en c peut on facilement se mettre au c embarqué ?
Merci 🙂
Bonjour
Question naive, si on sait programme en c peut on facilement se mettre au c embarqué ?
Merci 🙂
Le réponse courte non
En gros, en C embarqué, tu travailles :
- avec 1 norme de codage. Par exemple MISRA C.
- sous système d'exploitation (Operating System ou O.S. en anglais) en temps réel. Par exemple FreeRTOS. Tous tes traitements doivent être exécutés en 1 temps précis.
- avec des contraintes souvent fortes : taille mémoire (très petite), fréquence processeur (très faible), espace disque (quasi inexistant), ...
- Édit : tu travailles avec 1 compilateur/ chaîne de compilation ("toolchain" en anglais) qui est propriétaire et/ ou qui peut ne pas respecter les standards (C99) ou être compatible seulement C89/ C90/ C95
Réponse plus longue: ça dépend
Ca dépend de tes connaissances en C et de la notion que tu accordes à l'adverbe "facilement"...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
pas mieux que mr Foetus.
Il ya plus de contraintes pour écrire du code pour de l'embarqué
Bonjour,
Déjà est-ce que le C non embarqué est vraiment utilisé? Il n'a pas vraiment d'intérêt au C sur un gros système, des tas d'autres langages feront le boulot tout aussi bien.
On peut faire du C sur un PC, mais pour écrire quoi? Un logiciel avec de forte contrainte temporelle, ou un système d'exploitation. Mais par exemple le C++, sera plus adapté pour cela.
Je dirais que le domaine qui reste au C, c'est l'embarqué. Donc pourquoi différencier le C du C embarqué?
Il existe cependant des différences, mais elles sont infimes:
- Le C embarqué peut avoir quelques mots supplémentaires. Par exemple pour préciser dans quelle mémoire sera telle variable ou telle fonction. Par exemple pour caractériser une fonction pour préciser que c'est une interruption.
- La bibliothèque standard peut être légèrement différente. Par exemple, tout ce qui concerne les flottants peut être ôté, ou inversement étendu. Par exemple, pas de gestion de fichiers.
Finalement, il n'y a pas grand chose de différent. Je dirais que le besoin supplémentaire est de bien comprendre et gérer les contraintes dues à l'embarqué. Ca n'est pas dans les subtilités du langage que réside le problème.
Merci pour vos reponses rapides et claires
En fait ma question sous jacente et plus directe est :
peut on postuler pour un job C embarqué en ne connaissant que le C?
je connais l assembleur aussi sur pc
j ai regarde les offres pour le c et en effet il ne semble etre utilisé que pour l embarqué.
j imagine que ces jobs sont reservés a des personnes ayant un cursus d ingenieur.
je ne suis pas ingenieur, juste une licence informatique et autodidacte principalement
qu en pensez vous
Merci![]()
Tu connais le C, donc tu peux tout à fait postuler pour du C embarqué.
Tu connais l'assembleur PC (donc je suppose le IntelX86), les assembleurs en embarqué sont souvent pour d'autres processeurs mais c'est très similaire. Donc c'est un plus.
Un diplôme d'ingénieur n'est pas vital, c'est mieux qu'une licence mais n'est pas indispensable.
Je pense que tu as tout ce qu'il faut pour postuler pour du développement C embarqué.
En France c'est moins vraitoutes les sociétés qui recherchent des développeurs C, c'est soit
- 1 développeur qui a déjà 3-5 ans d'expérience - avec références professionnelles sur des projets concrets
- 1 profil "électronique" : savoir souder, connaître FPGA/ VHDL, ... souvent utiliser des logiciels comme LabView ou des langages "Truc BI" qui est 1 C sans pointeurs (<- j'ai de vagues souvenirs et peut-être sans fonctions
)
Édit : Surtout qu'en France toutes les sociétés en embarqué sont internationales (Airbus/ Arianne, Dassault, Thales, ...STMicroelectronics), des anciennes gloires (Alcatel-Lucent) ou étrangères ... sans parler des filiales et des "jeunes-pousses"
Il faut chercher beaucoup pour trouver la petite société (avec des conditions ultra-bof, salaire, avantages, taille équipe, budget projet, ...)
Tu as raisonet je l'ai rajouté : souvent tu travailles avec 1 compilateur/ chaîne de compilation ("toolchain" en anglais) qui est propriétaire et/ ou qui peut ne pas respecter les standards (C99) ou être compatible seulement C89/ C90/ C95.
Bonjour,
Il y a quand même une différence essentielle : c'est du soft hard.
Le développement sur MCU est d'autant plus contraint que les sociétés ne vont pas mettre un MCU 10 fois plus performant que le strict nécessaire (a contrario d'un amateur qui pourra utiliser un MCU tellement surdimensionné qu'il pourra même s'offrir le luxe de développer avec un langage interprété). Les contraintes déjà précitées sont donc réelles et impliquent une bonne connaissance des architectures des MCU utilisés car, en embarqué, il n'y a pas 10 couches d'abstraction entre le développeur et le matériel. Le code doit souvent directement agir sur des registres (ports, divers types de mémoires, timers, etc.) très liés à l'architecture cible.
Il en résulte une question d'embauche classique : quelles plateformes matérielles connaissez vous ?
Le besoin de connaissance de l'électronique va souvent de pair avec la taille de l'entreprise. Plus elle est grande, plus il y a de chances d'avoir des spécialistes pour concevoir et tester les montages. Mais dans une start up, le fer à souder n'est jamais très loin.
La réflexion de Foetus sur les conditions de travail est hélas avérée : plus on est près du matériel, plus on est loin de la reconnaissance sociale. Et contrairement aux exigences d'embauche qui empilent connaissances sur connaissances, ce sont les experts pointus qui arrivent le mieux à s'en sortir.
Mais cela reste un beau métier pour quelqu'un qui ne veut pas faire le nième logiciel de gestion pour une MOA qui ne sait pas ce qu'elle veut.
Salutations
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager