OVH Cloud OVH Cloud

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

Avatar
Gabriel Dos Reis
Michael Doubez writes:

| On 7 juil, 23:16, Gabriel Dos Reis wrote:
| > Michael DOUBEZ writes:
| >
| > [...]
| >
| > | Ce que je vveux dire est que la liste ne montre et ne démontre r ien
| > | concernant l'utilisation de c++ en embarqué et encore moins en
| > | logicile critique.
| >
| > Tu veux dire, par exemple
| >
| >    Dutch ministry of transport, public works, and water manag ement:
| >    surge barrier control. The BOS control system for the Maes lant
| >    Barrier protecting Rotterdam from flooding. This safety-cr itical
| >    system (highest safety integrity level according to IEC 61 508) is
| >    built using C++, Z and PROMELA. A high level overview with nice
| >    pictures can be found here.
| >
| > ne « démontre rien concernant l'utilisation de c++ en embarqu é et encore
| > moins en  logicile critique. »
|
| Concerna,t ce projet:
| http://eprints.eemcs.utwente.nl/6381/01/fmsd.pdf
| <quote>
| In the implementation phase, the source code was created in a safe
| subset of C++.
| </quote>
|
| Oui ils ont utilisé C++ mais uniquement une sous partie qu'ils
| considèrent "safe".

Donc, c'est pas du C++ ?

| Dire que les indus se méfient de C++ n'est pas un FUD.

S'il se méfie de C++, il ne l'utiliserait pas. N'importe qu'elle proj et
embarqué ou critique utilise toujours un sous-ensemble des langages
populaires.

[...]

| > | mais sur ce qui est effectivement fait derrière.
| >
| > il est effectivement légitime de se poser des questions sans mettr e en
| > doute -- par exemple, on peut se demander s'il y avait une chèvre dans
| > ton lit (et ce qu'elle faisait là) et si tu répondais qu'il n 'y en
| > avait pas, est-ce que cela démontrerait quelque chose
|
| Choix d'illustration original.
|
| Sauf qu'il n'y a pas d'enjeux à dire qu'une chèvre se trouvait dans
| mon lit.

Ah, tu voulais qu'il y en ai un enjeu sur ta personne ?
Fais attention à tes chevilles, elles vont mal quand elles gonflent.

-- Gaby
Avatar
bpascal123
Bonjour,

Je commence à apprendre le C le soir et le week-end sans expérience
particulière en informatique ni mathématique ou électronique. Je suis
comptable de formation. La programmation peut être intéressante je
pense pour des systèmes de gestion de données comme Oracle. A
condition d'élargir l'apprentissage de la programmation à java. Je
pense que sur 3 ou 5 ans, je peux acquérir une petite adresse. Si
j'ajoute un congé de 3-6 mois pour une formation intensive en Inde,
peut-être je peux devenir l'auxiliaire d'un consultant et avec 10
années d'expérience (donc quand j'aurais 50 ans si tout va bien)
recevoir le titre de consultant... J'y crois.

Pour en revenir à la discussion sur les différents langages
informatiques, il me semble comprendre que le C permet de faire des
choses variées.

Je voudrais comprendre un peu plus les technologies qu'on trouve dans
le systèmes portables comme les téléphones portables et les gps.

Qu'est-ce qu'on trouve comme langage de programmation derrière un
appareil gps?

Est-ce qu'un récepteur gps est comme une carte wifi ?

Est-ce que le récepteur gps communique avec les antennes relais ? Ou
bien, les antennes relais communique avec les téléphone par ce qu'on
appelle le module radio qui varie selon les pays et les normes ?
Maintenant, si les téléphones ne communiquent que par satellite dans
les prochaines années, il n'y aura plus de module "radio" dans les
téléphones?

Au niveau du gps, il y a un échange entre le satellite et le
téléphone ? Je ne sais pas dans quel(s) langage(s) mais ca doit être
proche de l'électronique (low level) ?


Merci à celui ou ceux qui pourront m'éclairer.

Pascal
Avatar
Sylvain SF
a écrit :

Je commence à apprendre le C le soir et le week-end sans expérience
particulière en informatique ni mathématique ou électronique. [...]
donc quand j'aurais 50 ans si tout va bien [] recevoir le titre
de consultant... J'y crois.



imprimez-vous tout de suite des cartes de visite "ingénieur conseil en
informatique"; l'usage de "ingénieur" n'est pas réglementé en France.

Qu'est-ce qu'on trouve comme langage de programmation derrière un
appareil gps?



aucun.
on trouve soit des fils, soit une antenne bluetooh.

Est-ce qu'un récepteur gps est comme une carte wifi ?



non.

Est-ce que le récepteur gps communique avec les antennes relais ?



non.

ou les antennes relais communique avec les téléphone par ce qu'on
appelle le module radio qui varie selon les pays et les normes ?



hein ?
oui un mobile communique avec les antennes-relais-mobiles,
avec ou sans gps et indépendamment du gps.

Maintenant, si les téléphones ne communiquent que par satellite
dans les prochaines années



aucune chance et aucune raison.

il n'y aura plus de module "radio" dans les téléphones?



(bis) c'est quoi ici le "module radio" ?
si c'est le modem GSM ou UMTS ou ..., bien sur qu'il existera
toujours, et bien sur qu'un téléphone satellite a un tel module.

Au niveau du gps, il y a un échange entre le satellite et le
téléphone ?



non. (et cela ne rien strictement rien dire).
au niveau du gps, il y a un récepteur gps, point barre.


Je ne sais pas dans quel(s) langage(s) mais ca doit être
proche de l'électronique (low level) ?



vous devriez commencer à faire la part des choses entre un langage
- qui permet l'écriture d'un flux d'instruction - et un matériel
(de l'"électronique") qui ne fait qu'envoyer des trains de bits
selon un protocole défini.

Sylvain.
Avatar
Michael Doubez
On 8 juil, 18:28, Gabriel Dos Reis wrote:
Michael Doubez writes:

| On 7 juil, 23:24, Gabriel Dos Reis wrote:
| > Michael DOUBEZ writes:
| >
| > | Gabriel Dos Reis a écrit :
| > | > Sylvain SF writes:
| > | >
| > | > | Gabriel Dos Reis a écrit :
| > | > | >
| > | > | > | Par exemple:
| > | > | > | Boeing 787 software. Entirely written in C++, using STL.
| > | > | | > | Et le software de quoi ? Du réseau interne ?
| > | > | >
| > | > | > Tu peux demander à Bjarne -- au cas où tu as des doutes s ur ce qu'il
| > | > | > dit, je suis persuadé qu'il te répondra.
| > | > | | le point n'a jamais été: faut-il douter de qu'il dit (é crit!).
| > | >
| > | > Je crois qu'on peut faire l'hypotrhèse qu'il est honnête et q ue s'il y a
| > | > une erreur de sa part, il la corrigera, et que si la personne qui lui
| > | > fournit l'information lui a menti (à son insue) il n'y peut rie n.
| > | >
| > | > Et comme il le dit lui même, il n'a pas vérifié par lui m ême *toutes* les
| > | > informations qui lui ont été communiquées -- cela ne veut p as dire qu'il
| > | > n'en a vérifié aucun.
| > | >
| > | > En ce qui concerne les informations sur JPL (Mars Rover), ou JSF
| > | > C++ Rules, il est relativement safe de supposer qu'il les as vé rifiées
| > | > d'une manière ou d'une autre.
| > | > On peut noter par exemple, qu'il travaille sur des projets en com mun
| > | > avec les gens de la NASA directement impliqués dans certains de ces
| > | > softs.
| > |
| > | Oui. Mais la NASA a pas mal de travaux de recherche. Ca ne veut pas
| > | dire que tous sont en exploitation.
| >
| > De cette assertion, tu conclus que l'information qu'il a eu et qu'il a
| > mise sur sa page est fausse ?
|
| Non. Je dit juste que l'information qu'il a mise ne prétend pas que C +
| + est utilisé en environement critique à la NASA; en environement
| embarqué oui sûrement.

Donc pour toi le système de politage autonome du Mars Rover n'est pas
critique ?



Pas si ils peuvents se permettre de mettre le système en panne une
heure histoire de retélécharger un code.


[...]

| > | mon propos est surtout que la liste ne dit pas ce que je
| > | pense tu veux lui faire dire.
| >
| > et qu'est-ce que *tu penses* que je veux lui faire dire ?
|
| Comme tu te contentes de citer la liste sans te mouiller en élaborant ,

« mouiller » ?



De façon laconique sans expliciter ce que tu penses ou dis.


| c'est ouvert à interprétation.
|
| Ma supposition d'après le contexte plus haut est que tu prétends qu e
| dire que C++ est pas/peu utilisé en environnement critique/embarqué
| est un FUD.

pas != peu.  

Mais dans les deux cas, peut-être devrais-tu t'en tenir plus à ce que je
dis qu'à ce que tu supposes que je dis.  



Dans ce cas, un effort de communication aide à la discussion.

--
Michael
Avatar
Marc Boyer
On 2009-07-08, Gabriel Dos Reis wrote:

Pardon de répondre derrière le message de Gabriel, j'ai
du mal à retrouver celui de Michael.

Michael Doubez writes:
| On 7 juil, 23:16, Gabriel Dos Reis wrote:
| > Michael DOUBEZ writes:
| Concerna,t ce projet:
| http://eprints.eemcs.utwente.nl/6381/01/fmsd.pdf
| <quote>
| In the implementation phase, the source code was created in a safe
| subset of C++.
| </quote>
|
| Oui ils ont utilisé C++ mais uniquement une sous partie qu'ils
| considèrent "safe".



Ca, c'est un non argument.
De ce que je connais du C embarqué critique, c'est toujours
un sous-ensemble "safe" qui est utilisé: pas de malloc,
pas de récursivité, souvent pas de pointeur, et parfois
même pas de variable sur la pile (tout en static).

Que les mêmes contraintes apparaissent en C++ me semble
logique. Et d'ailleurs, pour revenie à Java embarqué, c'est
plus facile de faire du C++ sans tout ça que du Java.

| Dire que les indus se méfient de C++ n'est pas un FUD.



De toute façon, les indus de l'embarqué critique que
je connais n'aiment pas le changement. Changement de
processeur, de techno réseau, de langage, tout cela
demande de requalifier des outils, de reprendre
les méthodes et procédures, etc.


Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
Michael Doubez
On 8 juil, 18:33, Gabriel Dos Reis wrote:
Michael Doubez writes:

| On 7 juil, 23:16, Gabriel Dos Reis wrote:
| > Michael DOUBEZ writes:
| >
| > [...]
| >
| > | Ce que je vveux dire est que la liste ne montre et ne démontre ri en
| > | concernant l'utilisation de c++ en embarqué et encore moins en
| > | logicile critique.
| >
| > Tu veux dire, par exemple
| >
| >    Dutch ministry of transport, public works, and water managemen t:
| >    surge barrier control. The BOS control system for the Maeslant
| >    Barrier protecting Rotterdam from flooding. This safety-critic al
| >    system (highest safety integrity level according to IEC 61508) is
| >    built using C++, Z and PROMELA. A high level overview with nic e
| >    pictures can be found here.
| >
| > ne « démontre rien concernant l'utilisation de c++ en embarqué et encore
| > moins en  logicile critique. »
|
| Concerna,t ce projet:
|http://eprints.eemcs.utwente.nl/6381/01/fmsd.pdf
| <quote>
| In the implementation phase, the source code was created in a safe
| subset of C++.
| </quote>
|
| Oui ils ont utilisé C++ mais uniquement une sous partie qu'ils
| considèrent "safe".

Donc, c'est pas du C++ ?



Ca veut juste dire qu'ils considèrent que le C++ est "unsafe" et
qu'ils ont pris un sous-essemble "safe".

J'appelle pas ça un vote de confiance.


| Dire que les indus se méfient de C++ n'est pas un FUD.

S'il se méfie de C++, il ne l'utiliserait pas.  N'importe qu'elle pro jet
embarqué ou critique utilise toujours un sous-ensemble des langages
populaires.



Les règles et normes de condage seraient un sous-ensemble d'un
langage ?

AMA, qu'il y ait des constructions bannies n'en fait pas un sous
ensemble du langage.


[...]

| > | mais sur ce qui est effectivement fait derrière.
| >
| > il est effectivement légitime de se poser des questions sans mettre en
| > doute -- par exemple, on peut se demander s'il y avait une chèvre d ans
| > ton lit (et ce qu'elle faisait là) et si tu répondais qu'il n'y e n
| > avait pas, est-ce que cela démontrerait quelque chose
|
| Choix d'illustration original.
|
| Sauf qu'il n'y a pas d'enjeux à dire qu'une chèvre se trouvait dans
| mon lit.

Ah, tu voulais qu'il y en ai un enjeu sur ta personne ?



non sequitur.

Fais attention à tes chevilles, elles vont mal quand elles gonflent.



Procès d'intention ?

Ce que je dis est qu'on se fiche pas mal qu'il y ait eu un jour ou non
une chèvre dans mon lit. Alors que dire qu'un référencement dans un
projet, que ce soit pour un langage ou une société, a un enjeu
(d'image, de prestige ...).

Les enjeux ne sont pas les même donc la situation est différente.

--
Michael
Avatar
Michael Doubez
On 8 juil, 17:55, Sylvain SF wrote:
Michael Doubez a écrit :


[snip]
> Les outils sont là, pas de problèmes mais les décideurs n'ont pas
> encore vraiment adopté C++. Dans mon ancienne, boite, je leur ait
> proposé de passer à C++ en continuant à faire du C (pour avoir
> quelques features qui leur aurait simplifier la vie). En insistant
> sur l'aspect type safe ...
> Parler de sourde oreille est un euphémisme.

juste un pb d'audition alors, pas de manipulation (FUD) hein ;-)



Un damart aurait peut être aidé pour les frileux :)

Ce qui est en jeux ici est un changement de culture. Même si une
technique se trouve supérieure à l'existant, elle n'est pas forcément
adoptée même si elle est reconnue comme telle par ceux qui la
refusent.

--
Michael
Avatar
Michael Doubez
On 9 juil, 09:45, Marc Boyer wrote:
On 2009-07-08, Gabriel Dos Reis wrote:

  Pardon de répondre derrière le message de Gabriel, j'ai
du mal à retrouver celui de Michael.

> Michael Doubez writes:
>| On 7 juil, 23:16, Gabriel Dos Reis wrote:
>| > Michael DOUBEZ writes:
>| Concerna,t ce projet:
>|http://eprints.eemcs.utwente.nl/6381/01/fmsd.pdf
>| <quote>
>| In the implementation phase, the source code was created in a safe
>| subset of C++.
>| </quote>
>|
>| Oui ils ont utilisé C++ mais uniquement une sous partie qu'ils
>| considèrent "safe".

  Ca, c'est un non argument.
  De ce que je connais du C embarqué critique, c'est toujours
un sous-ensemble "safe" qui est utilisé: pas de malloc,



Malloc n'est pas unsafe en soit, c'est la consommation mémoire et ça
empèche d'avoir à résoudre des problème de leak.
En pratique, où j'ai travaillé, nous utilisions des techniques
alternatives (pool, allocation par bloc bornée) pour avoir une partie
dynamique et où il est facile de monitorer l'état des ressources.

pas de récursivité,



Pour les dépassements de pile mais le langage n'est pas en cause,
c'est l'algorithme.

souvent pas de pointeur, et parfois
même pas de variable sur la pile (tout en static).



Le standard C++ ne prévoit pas de stack, juste un temps de vie des
variables.
Je pense qu'il en va de même du C.

[snip]
>| Dire que les indus se méfient de C++ n'est pas un FUD.

  De toute façon, les indus de l'embarqué critique que
je connais n'aiment pas le changement. Changement de
processeur, de techno réseau, de langage, tout cela
demande de requalifier des outils, de reprendre
les méthodes et procédures, etc.



Je suis d'accord.

--
Michael
Avatar
Marc Boyer
On 2009-07-08, wrote:
Bonjour,

Je commence à apprendre le C le soir et le week-end sans expérience
particulière en informatique ni mathématique ou électronique. Je suis
comptable de formation. La programmation peut être intéressante je
pense pour des systèmes de gestion de données comme Oracle. A
condition d'élargir l'apprentissage de la programmation à java.



De toute façon, une formation d'informaticien ne saurait se
restreindre à un seul langage, surtout un impératif type C. Il
faudrait aussi un moins un langage orienté objet (C++ ou Java),
un langage fonctionnel (Caml, Haskell, Lisp...), et puis une
formation en algorithmique.
Et puis un peu de compilation, un peu de réseau, un soupson
de complexité, un peu de base de donnée, de l'architecture
des ordinateurs, etc.
Enfin, il suffit d'aller regarder le programme des DUT d'info quoi...

Je
pense que sur 3 ou 5 ans, je peux acquérir une petite adresse. Si
j'ajoute un congé de 3-6 mois pour une formation intensive en Inde,
peut-être je peux devenir l'auxiliaire d'un consultant



Pourquoi pas un DUT en un an tout simplement ?

Pour en revenir à la discussion sur les différents langages
informatiques, il me semble comprendre que le C permet de faire des
choses variées.



On devrait même pouvoir dire qu'il permet de tout faire
de ce qu'on peut faire avec un ordinateur, ou presque (pour
aller positionner certains flags du processeur, il faut
aller taper directement l'ASM).

Je voudrais comprendre un peu plus les technologies qu'on trouve dans
le systèmes portables comme les téléphones portables et les gps.

Qu'est-ce qu'on trouve comme langage de programmation derrière un
appareil gps?



Surement C et Java. Mais bon, pourquoi pas du C# ou autre...

Est-ce qu'un récepteur gps est comme une carte wifi ?



Oui et non. Ca dépend de la définition de "comme".

Maintenant, si les téléphones ne communiquent que par satellite dans
les prochaines années, il n'y aura plus de module "radio" dans les
téléphones?



Avant qu'un téléphone de poche ait la puissance pour aller
parler à un satellite, on saura faire des voitures électriques
avec 10000km d'autonomie.

Au niveau du gps, il y a un échange entre le satellite et le
téléphone ? Je ne sais pas dans quel(s) langage(s) mais ca doit être
proche de l'électronique (low level) ?



Ca va être dur de faire un cours de réseau sur fclc.

Merci à celui ou ceux qui pourront m'éclairer.



Je ne saurait que vous conseiller deux ouvrages d'Andrew Tanenbaum,
"les réseaux" et "systèmes d'exploitation". Et puis
"Accelerated C++" aussi, de Koenig et Moo.

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
Marc Boyer
On 2009-07-09, Michael Doubez wrote:
On 9 juil, 09:45, Marc Boyer wrote:
On 2009-07-08, Gabriel Dos Reis wrote:
> Michael Doubez writes:
>| On 7 juil, 23:16, Gabriel Dos Reis wrote:
>| > Michael DOUBEZ writes:
>| Concerna,t ce projet:
>|http://eprints.eemcs.utwente.nl/6381/01/fmsd.pdf
>| <quote>
>| In the implementation phase, the source code was created in a safe
>| subset of C++.
>| </quote>
>|
>| Oui ils ont utilisé C++ mais uniquement une sous partie qu'ils
>| considèrent "safe".

  Ca, c'est un non argument.
  De ce que je connais du C embarqué critique, c'est toujours
un sous-ensemble "safe" qui est utilisé: pas de malloc,



Malloc n'est pas unsafe en soit, c'est la consommation mémoire et ça
empèche d'avoir à résoudre des problème de leak.
En pratique, où j'ai travaillé, nous utilisions des techniques
alternatives (pool, allocation par bloc bornée) pour avoir une partie
dynamique et où il est facile de monitorer l'état des ressources.



Ce qui se fait super facilement en C++ ;-)

pas de récursivité,



Pour les dépassements de pile mais le langage n'est pas en cause,
c'est l'algorithme.



FORTRAN 77 ne permettait pas la récursivité dans mon (douloureux)
souvenir. C'était donc un langage plus "safe"...

souvent pas de pointeur, et parfois
même pas de variable sur la pile (tout en static).



Le standard C++ ne prévoit pas de stack, juste un temps de vie des
variables.



Ne pinaille pas: tu parles de "dépassement de pile" dans le paragraphe
au dessus, qui n'est prévu ni par le standard C, ni le C++.

>| Dire que les indus se méfient de C++ n'est pas un FUD.

  De toute façon, les indus de l'embarqué critique que
je connais n'aiment pas le changement. Changement de
processeur, de techno réseau, de langage, tout cela
demande de requalifier des outils, de reprendre
les méthodes et procédures, etc.



Je suis d'accord.



Résultat, généralement, il faut soit une obligation technique
réelle pour changer (proc qui n'existe plus, bus qui ne tient
pas la charge), soit une "volontée politique forte" (genre
"on va faire du Java les gars, c'est ça l'avenir" :-( ).

Peut-être existe il des endroits où l'on est pro-actif,
où l'on change de techno parce qu'on pense que la nouvelle
est mieux, et que c'est une changement anticipé de longue
date suite à une analyse détaillée des besoins et limites
des technos, des gains possibles. Théoriquement, rien n'empèche
une telle situation de se produire.

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0