Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Du C ou du Java dans les systèmes embarqués automobile ?

246 réponses
Avatar
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

10 réponses

1 2 3 4 5
Avatar
Jean-Marc Bourguet
candide writes:

Donc il y a plein de microcontrôleurs dans une voiture, n'est-ce pas, des
dizaines ?



Ca ne m'etonnerais pas.

Ce microcontrôleur, quelqu'un l'a programmé avec un langage pour qu'il
puisse gérer le protocole de communication dont tu parles (ou alors c'est
juste une circuiterie "morte") ?



Les communications, c'est souvent une pile de protocoles. Les niveaux les
plus pas sont geres purement en hard, les niveaux plus eleves en soft.
Apres, le choix du niveau de la frontiere, c'est un classique compromis
d'ingenerie entre des facteurs comme le cout a l'unite, le cout de
conception, le respect d'enveloppe de consommation, etc.

Tu peux faire une recherche sur "hardware-software codesign" (attention,
c'est une expression qui a aussi ete appropriee par le marketting et donc
est parfois utilisee dans un contexte ou elle n'a en fait aucun sens ou
accompagnee de promesses irrealisables).

Oui mais est-ce que le processeur qu'on va trouver dans cette montre peut
servir à autre chose que gérer le programme de fonctionnement d'une
montre ?



Presque par definition, un processeur c'est d'usage general meme s'il peut
avoir des instructions qui sont d'utilisation tres particuliere.

Et notre programmeur C ou java qu'est-ce qu'il va programmer dans tout
ça?



Tout depend de comment la repartition aura ete faite entre le hard et le
soft. Ne pas oublier que des que tu maitrises la hard, tu as beaucoup de
souplesse.

que si j'appuie sur tel bouton, je vais passer en mode chrono, que si
j'appuie en continu sur celui-là, les chiffres devront défiler ? Est-ce
que notre programmeur doit gérer l'affichage des segments de l'affichage
LCD ou encore doit-il gérer le changement de date en fonction de l'heure?
Je pose la question parce que finalement faire programmer à quelqu'un qui
apprend le C une montre de ce type sur un PC (pas un microcontroleur),



J'ai fait faire ce genre d'exercices quand j'enseignais (mais pour une
carte sur laquelle on charchait le programme via l'interface serie).

même dans une console et éventuellement avec ncurses ou avec une
bibliothèque graphique quelconque ne serait pas très éloigné de ce que
fait un professionnel de la programmation.



Ne pas oublier que les pratiques dependent beaucoup du domaine.

A+

--
Jean-Marc
FAQ de fclc: http://www.levenez.com/lang/c/faq
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Avatar
Zeldus
"Marc Boyer" a écrit dans le message de
news:

Je n'ai pas de chiffre, mais je peux te parler de ce que je connais,
le constructeur Airbus.
Dans la partie "critique", c'est en général programmé dans un langage
"métier", semi-graphique. Ce langage fait appel à des primitives, codées,
elles en C à la main.
Nous travaillons avec le CEA sur des outils d'analyse statique, donc pour
l'embarqué avion mais potentiellement aussi le nucléaire. Le langage cible
est C. Java n'est pas à ma connaissance sur les écrans radards.




C'est paradoxal, vu la complexité "informatique et électronique" d'un Airbus
de dernière génération (du type A380 par ex), ce doit être un sacré boulot
de coder toutes les primitives en C à la main ! Bien au contraire, c'est là
que j'aurais vu du Java partout, pour la sécurité et la souplesse de
réutilisation sur d'autres avions d'autres génération comme les A340, A330,
A320, etc... Car la quantité de ligne de codes dans un Airbus et une
voiture, ça ne doit pas être comparable...

Bref, plein d'infos très intéressantes pour la culture en programmation dans
ce fil, merci à tous.

Pierre
Avatar
Erwan David
Marc Boyer écrivait :

Je n'ai pas de chiffre, mais je peux te parler de ce que je connais,
le constructeur Airbus.
Dans la partie "critique", c'est en général programmé dans un langage
"métier", semi-graphique. Ce langage fait appel à des primitives, codées,
elles en C à la main.
Nous travaillons avec le CEA sur des outils d'analyse statique, donc pour
l'embarqué avion mais potentiellement aussi le nucléaire. Le langage cible
est C. Java n'est pas à ma connaissance sur les écrans radards.



Par contre il est dans les cartes SIM, les passeports biométriques,
etc...
Il peut aussi être dans des terminaux de paiement ou des téléphones
portables. Mais il ne faut oas réver : la VM estécrite en C.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Erwan David
"Zeldus" écrivait :

"Marc Boyer" a écrit dans le
message de news:

Je n'ai pas de chiffre, mais je peux te parler de ce que je connais,
le constructeur Airbus.
Dans la partie "critique", c'est en général programmé dans un langage
"métier", semi-graphique. Ce langage fait appel à des primitives, codées,
elles en C à la main.
Nous travaillons avec le CEA sur des outils d'analyse statique, donc pour
l'embarqué avion mais potentiellement aussi le nucléaire. Le langage cible
est C. Java n'est pas à ma connaissance sur les écrans radards.




C'est paradoxal, vu la complexité "informatique et électronique" d'un
Airbus de dernière génération (du type A380 par ex), ce doit être un
sacré boulot de coder toutes les primitives en C à la main ! Bien au
contraire, c'est là que j'aurais vu du Java partout, pour la sécurité
et la souplesse de réutilisation sur d'autres avions d'autres
génération comme les A340, A330, A320, etc... Car la quantité de ligne
de codes dans un Airbus et une voiture, ça ne doit pas être
comparable...



Java avec son allocation dynamique et son GC n'est pas vraiment adapté
au temps réel. Par ailleurs la portabilité et la réutilisabilité ça se
fait en C aussi. De mêe qu'on voit des codes javas complètement cradees
et non réutilisables

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
espie
In article <4a4cdfc0$0$2454$,
Zeldus wrote:
C'est paradoxal, vu la complexité "informatique et électronique" d'un Airbus
de dernière génération (du type A380 par ex), ce doit être un sacré boulot
de coder toutes les primitives en C à la main ! Bien au contraire, c'est là
que j'aurais vu du Java partout, pour la sécurité et la souplesse de
réutilisation sur d'autres avions d'autres génération comme les A340, A330,
A320, etc... Car la quantité de ligne de codes dans un Airbus et une
voiture, ça ne doit pas être comparable...



Tu oublies sans doute un peu que, dans une JDK java, il y a aussi le code
de la JDK elle-meme, en plus du code de l'utilisateur. Pour avoir un peu
regarde le code de sun, ce n'est pas forcement le code dans lequel j'aurais
le plus confiance...

il faut voir aussi que, meme si C pose aussi des problemes, c'est des problemes
connus, avec les 40 ans du langage... et que les gens qui font de l'embarque
ont le plus souvent des normes de codage extremement strictes, precisement
pour eviter ces problemes.

A cote de ca, java, c'est un petit jeune en pleine poussee d'acnee juvenile...
Avatar
espie
In article ,
Erwan David wrote:
Par contre il est dans les cartes SIM, les passeports biométriques,
etc...
Il peut aussi être dans des terminaux de paiement ou des téléphones
portables. Mais il ne faut oas réver : la VM estécrite en C.



Il est aussi sur le site de vente en ligne de la sncf, ce qui explique
sans doute pourquoi je n'arrive presque jamais a obtenir ce que je veux...
Avatar
Pierre Maurette
Marc Espie, le 02/07/2009 a écrit :
In article ,
Erwan David wrote:
Par contre il est dans les cartes SIM, les passeports biométriques,
etc...
Il peut aussi être dans des terminaux de paiement ou des téléphones
portables. Mais il ne faut oas réver : la VM estécrite en C.



Il est aussi sur le site de vente en ligne de la sncf, ce qui explique
sans doute pourquoi je n'arrive presque jamais a obtenir ce que je veux...



Un billet gratuit ?

--
Pierre Maurette
Avatar
espie
In article ,
Pierre Maurette wrote:
Marc Espie, le 02/07/2009 a écrit :
In article ,
Erwan David wrote:
Par contre il est dans les cartes SIM, les passeports biométriques,
etc...
Il peut aussi être dans des terminaux de paiement ou des téléphones
portables. Mais il ne faut oas réver : la VM estécrite en C.



Il est aussi sur le site de vente en ligne de la sncf, ce qui explique
sans doute pourquoi je n'arrive presque jamais a obtenir ce que je veux...



Un billet gratuit ?



Non, juste un billet. Entre les jours ou le site est totalement en panne
(la derniere fois), ceux ou ils ont merde leur config (redirection en
boucle), et le debile profond qui ne sait pas parser les erreurs de leur
partenaire (traduire "une erreur technique est intervenue" par "le train
que tu veux reserver est complet, gros naze"), je vais regulierement
directement a la gare.

Ca marchait mieux avant, sans ajax et webservices et framework a la con.
Faut dire croire'ils ne savent pas faire de tests exhaustifs, ce qui n'est
jamais tres simple en environnement dynamique...

Bref, moins je verrai de java dans un contexte critique, mieux je me
porterai.
Avatar
Zeldus
> Bref, moins je verrai de java dans un contexte critique, mieux je me
porterai.



Java n'est qu'un langage parmi d'autre. On trouve des bugs aussi en C++, en
C, en Objective C, en Delphi et j'en passe. Ce que je vois c'est qu'en
environnement professionnel, Java s'est énormément développé ces dernières
années. Dans mon cas, chez Alcatel Lucent, quand je paramètre un équipement
qui gère le GPRS chez l'opérateur mobile ou je travaille, j'utilise des
applis Java embarquées dans l'équipement et ça marche très bien.

Il faut éviter les généralités, et par ailleurs, dans le cas du site de la
SNCF, rien ne prouve que le problème provient de l'appel Java. Avec l'HTML,
Javascript, Flash, Ajax et j'en passe, c'est devenu un vrai bazar la
conception des sites web.

Pierre
Avatar
Erwan David
(Marc Espie) écrivait :

In article ,
Erwan David wrote:
Par contre il est dans les cartes SIM, les passeports biométriques,
etc...
Il peut aussi être dans des terminaux de paiement ou des téléphones
portables. Mais il ne faut oas réver : la VM estécrite en C.



Il est aussi sur le site de vente en ligne de la sncf, ce qui explique
sans doute pourquoi je n'arrive presque jamais a obtenir ce que je veux...



ça c'est poarcequ'il ets fait pour les nostalgiques du minitel.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
1 2 3 4 5