Du C ou du Java dans les systèmes embarqués automobile ?
Le
Zeldus
Bonjour,
Les voitures faisant de plus en plus appel à l'électronique pour
fonctionner, même pour les tâches les plus basiques, en quel langage sont
programmés les applications qui gèrent les différentes fonctions
électroniques intégrés aux voitures ?
J'ai pensé à l'assembleur mais vu la aujourd'hui puissance et le prix des
processeurs même les plus basiques, je pense que ce n'est pas le cas et la
tâche serait complexe pour les programmeurs.
Vient ensuite le C, celui qui serait probablement le plus adapté, ancien
mais toujours très efficace ou alors Java, complètement portable mais qui
nécessite une machine virtuelle assez lourde.
Si vous avez des infos sur le sujet,
Par avance, merci
Pierre
Les voitures faisant de plus en plus appel à l'électronique pour
fonctionner, même pour les tâches les plus basiques, en quel langage sont
programmés les applications qui gèrent les différentes fonctions
électroniques intégrés aux voitures ?
J'ai pensé à l'assembleur mais vu la aujourd'hui puissance et le prix des
processeurs même les plus basiques, je pense que ce n'est pas le cas et la
tâche serait complexe pour les programmeurs.
Vient ensuite le C, celui qui serait probablement le plus adapté, ancien
mais toujours très efficace ou alors Java, complètement portable mais qui
nécessite une machine virtuelle assez lourde.
Si vous avez des infos sur le sujet,
Par avance, merci
Pierre

Poser une question


Zeldus a écrit
L'étage microcontroleurs 8 bits (en particulier tout ce qui est
branché sur le réseau CAN ou KLine) c'est majoritairement du C, tout
simplement parce que le C est plus adapté pour ce type de
programmation quand même très très bas niveau.
Mais il est possible de voir de l'assembleur du Java ou du forth à cet
étage.
Pour l'étage au dessus, le processeur souvent gsm/gps (ARM7 ou ARM9 en
général) c'est soit du C soit du Java selon le fournisseur de chip
(Wavecom ou Telit par exemple) mais il y en a d'autres.
Enfin il peut y avoir encore un étage au dessus, par exemple pour le
système de navigation complet où on peut avoir qqch qui ressemble à un
petit PC, et là les langages de plus haut niveau peuvent apparaitre
(voire un mix).
En fait ça dépend beaucoup des composants et chips choisis pour
fabriquer le hardware.
--
zwim.
Rien n'est impossible que la mesure de la volonté humaine...
A noter que dans la norme Autosar (le dernier standard de l'architecture
des logiciels dans le domaine automobile http://www.autosar.org), les
langages d'implémentations sont représentée par un enum
(ImplementationProgrammingLanguageEnum pour autosar 21 et
ProgramminglanguageEnum pour autosar3x) qui peut prendre 3 valeurs:
- C
- CPP
- Java
Ce sont donc les langages attendus au niveau des implémentations des
"software components".
Perso j'ai pas encore eu entre les mains du code Java à connecter au RTE
;-) Du reste quand on voit les contraintes mémoire qu'il y a dans
certains softs "pas complètement bas-niveau mais presque" (c'est des
drivers ou des trucs qui tournent dans l'OS temps-réel), java est assez
vite exclu à ces endroits. En fait c'est le C qui domine: on a une bonne
maîtrise du code produit (performance et empreinte mémoire), et en plus
c'est "assez" portable d'un processeur à l'autre.
Il y a quelques années je m'étais intéressé au sujet, et j'avais
découvert que les langages de programmation utilisés étaient spécifique
au métier. Dans le même genre que Ladder pour les automates
programmables. Mais je n'en sais pas plus, il faudrait contacter
quelqu'un du métier pour avoir une information pertinente.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Seeking for a position
Question tout à fait intéressante qui permettrait de se donner une idée de
l'importance actuelle du C en informatique industrielle. Ce serait bien surtout
si on pouvait avoir des références et en particulier des références chiffrées.
Mais sinon, dans une voiture actuelle, qu'est-ce qui est gouverné par un
processeur et du logiciel codé dans tel ou tel langage de plus ou moins haut
niveau ? Il y a l'ordinateur de bord (kilométrage, tachymètre, conso, sécurité,
etc), il y sans doute un calculateur pour l'injection, quoi d'autre ?
Bon comme je n'y connais rien, je voudrais savoir, si on considère par exemple
une montre électronique (genre montre-bracelet courante) capable de donner
l'heure, la date, de déclencher une alarme sonore et de faire chrono avec
interruption et fonction lap, est-ce qu'une telle montre contient un
"processeur" ? Je suppose qu'on a dû coder quelque chose mais ça a été codé
comment ? dans un langage (assembleur ou autre) ou c'est juste une circuiterie
hadware ?
Une amie s'est vue dans l'impossibilité de démarrer sa Clio (la clé de
contact ne faisait plus rien du tout lorsqu'elle la tournait) et sa voiture
a été immobilisée sans qu'elle comprenne vraiment ce qui se passait. Selon
Renault appelé sur place, ce serait un "bug informatique" qui serait
responsable. Après mise à jour du logiciel dans la voiture (de quoi ??),
tout est rentré dans l'ordre.
Ceci est un exemple parmi d'autres...
Je suis surpris de voir que Java occupe une place visiblement importante
dans les logiciels embarqués dans les voitures.
Pierre