méthode de creation de logiciel embarqué

méthode de creation de logiciel embarqué - Divers - Programmation

Marsh Posté le 11-08-2004 à 15:58:49    

Bonjour!! :)
 
Je suis en train de rédiger mon mémoire de stage, et je dois faire une partie sur la methode générale de création de logiciels embarqué.
 
J'ai cherché sur google, et je n'ai pas trouver de lien avec une "charte"...
 
Auriez vous une idée donc des etapes à suivre pour créer un logiciel embarqué???
 
Merci!! :)
 
barucca


Message édité par barucca le 11-08-2004 à 15:59:05
Reply

Marsh Posté le 11-08-2004 à 15:58:49   

Reply

Marsh Posté le 11-08-2004 à 16:15:27    

bah c'est la même méthode pour tous les logiciels hein, réspecter les contrainte [:spamafote]
sauf que là les contraintes sont plus fortes c'est tout

Reply

Marsh Posté le 11-08-2004 à 16:34:40    

oki, donc en fait, rien de special mis a part des contraintes sur la taille du logiciel, le temps d'execution etc..?


Message édité par barucca le 11-08-2004 à 16:41:59
Reply

Marsh Posté le 11-08-2004 à 16:36:51    

la contrainte temps réel j'imagine non?

Reply

Marsh Posté le 11-08-2004 à 16:41:39    

oui aussi effectivement... :)

Reply

Marsh Posté le 11-08-2004 à 16:59:46    

moktar1er a écrit :

la contrainte temps réel j'imagine non?


 
en pratique ca veut dire quoi ?

Reply

Marsh Posté le 11-08-2004 à 17:02:46    

en pratique ça veut dire:
developpement selon les contraintes temps réel

Reply

Marsh Posté le 11-08-2004 à 17:03:57    

ah, coule, merci

Reply

Marsh Posté le 11-08-2004 à 17:09:08    

Ca veut simplement dire que tu dois t'assurer que ton soft réponde à un évènement dans un délai court et prédéfini, quelque soit son etat et sa charge de travail.
("répondre" signifie ici que tu as un certain délai pour finir le traitement de l'évènement et pas plus).
 
Bons cas :
instant t : évènement
instant t+x : traitement évènement
instant t+y : fin traitement
instant t+z : fin de la période de traitement autorisé
 
mauvais cas :
instant t : évènement
instant t+x : traitement évènement
instant t+z : fin de la période de traitement autorisé
instant t+y : fin traitement

Reply

Marsh Posté le 11-08-2004 à 17:10:27    

et si par malheur ton traitement est trop gros pour entré dans l'interval (t;t+z) tu fais comment ?

Reply

Marsh Posté le 11-08-2004 à 17:10:27   

Reply

Marsh Posté le 11-08-2004 à 17:10:41    

plus le principe de préemption des tâches les unes par rapport aux autres (priorité toussa)

Reply

Marsh Posté le 11-08-2004 à 17:11:41    

si ça dépasse: watchdog
si ton système n'est pas capable de faire le travail dans le temps imparti, c'est que soit tu t'es gourré, soit un problème imprévu est survenu...
quoiqu'il en soit, prévoir une sortie d'urgence propre et secure

Reply

Marsh Posté le 11-08-2004 à 17:13:04    

oué, mais question idiote, ca peut aussi dependre d'auter chose, genre une entrée E/S ? ou c'est vraiment reservé qu'a de tout petit truc ?
[:chacal_one333]

Reply

Marsh Posté le 11-08-2004 à 17:15:33    

chrisbk a écrit :

et si par malheur ton traitement est trop gros pour entré dans l'interval (t;t+z) tu fais comment ?


 
Si par malheur le traitement est trop gros ... douloureux souvenir.
Sur un OS temps reel, ton prog est flingué direct.
 
Sur un OS non temps reel, bein rien ne se passe.... tu ne fais pas du temps reel, c'est tout, puisque tu ne peux assurer que le traitement sera finit en un temps précis fixe.

Reply

Marsh Posté le 11-08-2004 à 17:17:08    

bah le problème c'est que souvent ça concerne des trucs hyper critiques (aide au pilotage par ex.)
le moindre événement "imprévu", doit immédiatement renvoyer le système dans un état de secours
mais ça peut être n'importe quoi
une mesure invalide, une panne, une explosion nucléaire...

Reply

Marsh Posté le 11-08-2004 à 17:25:42    

ca a l'air marrant comme tout dites donc :o

Reply

Marsh Posté le 11-08-2004 à 17:29:07    

t'es obligé de passer par là pour certaines choses [:spamafote]
imagine un peu les métros automatiques genre VAL fonctionner un moment sans ce genre de considérations...

Reply

Marsh Posté le 11-08-2004 à 17:30:30    

ben c'etait pas ironique hein?

Reply

Marsh Posté le 11-08-2004 à 17:32:58    

J'avais cru en voyant ton premier post, mais j'ai bien senti la nuance ensuite :D
Tu devrais essayer... ya des outils sympas genre vxworks

Reply

Marsh Posté le 11-08-2004 à 17:34:25    

moktar1er a écrit :

J'avais cru en voyant ton premier post, mais j'ai bien senti la nuance ensuite :D
Tu devrais essayer... ya des outils sympas genre vxworks


 
oué, tu sais que je suis en rech. d'emploi, l'embarqué reviens regulierement mais vu que j'ai 0 xp ... [:spamafote]
 
c'est quoi exactement vx ? un emu de tps reel ? on peut dl une demo ou chaipakoi ?

Reply

Marsh Posté le 11-08-2004 à 17:37:31    

gratuit je ne crois pas... faut voir pour une version démo...
j'ai une grosse doc là dessus, mais c'est en version papier [:spamafote]

Reply

Marsh Posté le 11-08-2004 à 17:38:57    

Un truc au passage : le terme temps-reel est utilisé pour désigner plein de choses différentes.
 
donc en cherchant de la doc, tu vas forcément tomber sur pleins de définitions différentes.
 
Tout ce que je peux affirmer sans risque de me planter c'est :
sur un OS temps-reel, tu peux t'assurer que ta fonction qui gère un évènement ne sera pas interrompue en plein milieu (ce qui n'est pas le cas dans un OS préemptif comme Win ou Linux). Donc tu peux t'assurer que ta fonction se terminera bien dans un délai fixe.
 
ex : une bete boucle
int j=0;
for(int i=0;i<16;i++) { j++; }
 va s'éxécuter en temps fixe, fini et mesurable. C'est du temps-reel. Si tu prends le chiffre 16 en argument ailleurs, ce n'en est plus forcément.
 
Les OS temps reels sont utilisés dans beaucoup d'applications aeronautiques, ferrovières etcetc...
 
Au passage, Linux peut etre rendu temps-reel moyennant quelques extensions (je ne me souviens plus les noms). Windows ne l'est pas (meme sous Win2000, une tache en priorité critique sera interrompue et ne respectera pas les contraintes temps-reel)
Doit y avoir de la doc sur le net à ce sujet.

Reply

Marsh Posté le 11-08-2004 à 17:39:59    

je développais sur un calculateur embarqué avec un OS temps réel mais je ne me rappelle plus le nom c'est con [:gratgrat]

Reply

Marsh Posté le 11-08-2004 à 17:57:39    

y a QNX comme OS temps-réel connu


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 11-08-2004 à 19:59:38    

Les conventions de codage sont importantes.
Comme conventions spécifiques au domaine de l'embarqué, il existe entre autres le Firmware Standards Manual (disponible ici) et les recommandations MISRA (pour l'automobile).
 
Les principales contraintes, comme cela a été dit, concernent l'occupation mémoire (ROM/RAM) et le déterminisme (temps réel).
 
Concernant la méthodologie: il faut garder à l'esprit qu'on ne développe pas un logiciel embarqué, mais un système embarqué (donc un produit); le logiciel n'en est qu'un composant (certes essentiel). Par conséquent, la contrainte matérielle est omniprésente.
 
Et, au risque de me faire flammer, je dirais que la qualité du code est prépondérante et probablement plus importante que pour d'autres logiciels. Non pas que les développeurs embarqués soient meilleurs ou moins fainéants que les autres bien sûr (d'ailleurs, bien souvent, un code d'électronicien est dégueulasse), mais cela vient du fait que certains produits ne peuvent plus être corrigés après avoir été mis sur le marché (on peut toujours corriger les séries suivantes, ou proposer une mise à jour de la FLASH pour certains produits, mais ce n'est pas tout le temps le cas).

Reply

Marsh Posté le 11-08-2004 à 20:10:32    

chrisbk a écrit :

oué, tu sais que je suis en rech. d'emploi, l'embarqué reviens regulierement mais vu que j'ai 0 xp ... [:spamafote]
 
c'est quoi exactement vx ? un emu de tps reel ? on peut dl une demo ou chaipakoi ?


 
VxWorks, OS temps réel commercial pour applications embarquées, avec environnement de développement. L'un des plus utilisés.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 11-08-2004 à 20:11:56    

oliv5 a écrit :


Au passage, Linux peut etre rendu temps-reel moyennant quelques extensions (je ne me souviens plus les noms). Windows ne l'est pas (meme sous Win2000, une tache en priorité critique sera interrompue et ne respectera pas les contraintes temps-reel)
Doit y avoir de la doc sur le net à ce sujet.


 
RT-Linux, je crois. Je ne sais pas si ça fonctionne.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 11-08-2004 à 20:53:37    

el muchacho a écrit :

VxWorks, OS temps réel commercial pour applications embarquées, avec environnement de développement. L'un des plus utilisés.


 
... en 32 bits [:aloy]
Plutôt utilisé pour les applications "sérieuses" (industrielles, automobile, aviation, etc.). Pour les applications multimédia/télécom, Windows CE est en progression. Et pour les applications critiques, généralement ce sont les noyaux de GHS.
 
Sinon, outre Linux (qui n'est pas un véritable noyau temps-réel), il y a eCos qui est libre \o/

Reply

Marsh Posté le 13-08-2004 à 16:50:53    

Ya aussi RTEMS qui est libre.  
 
Sinon, il y a RTAI qui une version de linux temps réel (RT-linux est payant)
 
La grosse différence est le fait que la plateforme de dev n'est pas la cible du dev. IL faut donc travail avec des moniteur/émulateur/crosscompilo et autre saleté bien chiante...
 
Je crois que eclipse tant à dominer le marché de l'IDE pour embarqué.

Reply

Marsh Posté le 13-08-2004 à 19:55:57    

l'eau de la a écrit :

Ya aussi RTEMS qui est libre.  
 
Sinon, il y a RTAI qui une version de linux temps réel (RT-linux est payant)
 
La grosse différence est le fait que la plateforme de dev n'est pas la cible du dev. IL faut donc travail avec des moniteur/émulateur/crosscompilo et autre saleté bien chiante...
 
Je crois que eclipse tant à dominer le marché de l'IDE pour embarqué.


 
Heu... nan :D
 
Sinon, dans l'embarqué on a toujours travaillé avec des cibles différentes de l'hôte et je ne vois vraiment pas pourquoi ça poserait le moindre problème [:spamafote]

Reply

Marsh Posté le 09-02-2005 à 11:45:26    

Barucca, je te conseille d'aller voir sur le site Embedded Touch, tu devrait trouver les infos qui t'intéressent : http://www.embeddedtouch.com
 
Ils ont publié un article sur Eclipse : http://www.embeddedtouch.com/et/client/0501276225.php

Reply

Marsh Posté le 09-02-2005 à 14:55:46    

Je débarque peut etre mais il ne semble pas qu'il a été fait allusion à la différence entre temps réel dur et temps réel soft.
La différence se tient -en gros- dans la gestion du dépassement de l'échéance (le temps réel soft est tolérant au dépassement, dans le cadre du temps réel dur, le dépassement peut etre catastrophique).
Niveau langage, c'est la robustesse qui prime : Ada (qui gère le temps réel et la concurrence nativement), C/Posix 1b (anciennement Posix 4)...
Comme bons bouquins il y a "Introduction aux systèmes temps réel", "Real-Time Systems and Programming Languages" dont il y a une critique là : http://linuxfr.org/2001/03/12/2712.html

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed