Bio-Genetic

  • : Embedded
  • embedded
  • : Informatique Linux Logiciel Windows Electronique Hi Tech
  • : [ Embarqué ] Immersion dans les systèmes embarqués dit aussi « enfouis », qui peuvent êtres définis comme des systèmes électronique et informatique autonomes, dédiés à une tâche bien précise. Embarqué est souvent similaire à des contraintes : temps réel, consommation réduite, taille réduite, environnement sévère …. Le terme embarqué désigne aussi bien le matériel que le logiciel qui l’anime.
  • Recommander ce blog
  • Retour à la page d'accueil
  • Contact

Classification

W3C

  • Flux RSS des articles

Systèmes - OS

Jeudi 4 janvier 2007 4 04 /01 /2007 12:59
Microsoft propose trois voir quatre systèmes d’exploitation pour les applications embarquées : Windows CE, Windows XP embedded ( Xpe ), Windows Embedded for POS ( Point Of Service) et aussi Windows Mobile. Aussi, comment déterminer celui qui est le plus approprié pour une application ?
Cet article ne s'étendra pas sur Windows Mobile qui est un Windows CE dédié aux SmartPhones. Au premier abord, CE, Xpe et POS se ressemblent beaucoup, puisque tous sont des systèmes d’exploitations qui ont été repensés pour les applications embarquées, tous arborent des interfaces de programmation semblables ( Win32, cpc, ATL, NET etc … ), et tous supportent les technologies classiques d’un système exploitation ( fichiers, réseau, navigateur Internet etc .. )


CE est le plus ancien, car il a maintenant 10 ans et il en est à sa version 6. CE a été conçu comme un système temps réel, avec une petite « empreinte » en mémoire et supportant diverses architectures processeurs. En effet il supporte les architectures ARM, MIPS, SH et x86 : on retrouve dans la famille ARM tous les processeurs tels que les PXA d’Intel, le AT91SAM9261 ATMEL, iMX Freescale ; dans la famille MIPS les processeurs de chez AMD, MIPS ou QuickLogic ; dans la famille SH toute la série des processeurs SH de chez Renesas ; pour finir la famille x86 où l’on retrouve AMD avec les processeurs Geode, K6 et 486DX, et bien sûr Intel avec les Pentium, Celeron, Pentium II à IV et Xeon : liste des processeur supportés par Windows CE

L'une des différences majeures entre CE et ses frères c'est l'empreinte mémoire qui est nettement plus petite : un OS CE de base sans fioritures plafonne à 500 Ko, dépendant toujours des composants qui ont été associés ; il faudra quand même compter avec une dizaine de Mo de RAM pour qu'il se sente à l'aise. Un routeur Wifi grand public, avec administration par navigateur web et sécurité réseau taille CE à 4 Mo environ. Un PDA simple avec navigateur web, lecteur médias, support .net, Windows explorer etc , nécessite une taille de noyau d'environ 18 Mo. Loin de donner des tailles exactes, ces exemples permettent de donner un ordre de grandeur suivant les applications. Voir aussi les spécifications générales Hardware pour une carte supportant CE - Standard Development Board ( SDB ).

Autre différence majeur entre CE et ses frères : CE est un vrai OS 32 bits qui ne supporte pas les applications MS-DOS et Windows 3.x. L'architecture est d'ailleurs complètement différente : les trois composants principaux d'un Windows desktop à savoir Kernel32, GDI32 et User32, n'existent pas sur CE, car ils sont remplacés par Coredll et GWES. Une application desktop ne tournera pas sur CE, il faudra au minimum recompiler l'application d'une part parce que les architectures sont différentes, mais aussi et surtout parce que les processeurs cibles peuvent être très différents ( x86 uniquement avec Xpe, ARM / MPIS / SH / x86 sous CE ).
De plus, les API de programmation diffèrent : l’API Win32 de CE est un peu dépréciée et dans quelques rares cas, les paramètres de certaines fonctions changent. Pour ce qui est du développement .NET, le Framework disponible sous CE est le Compact Framework plus petit et ne proposant pas autant de classes que son homologue du monde du PC (faute de place).

Enfin CE a été conçu pour être un OS « temps réel dur » avec un temps de latence aux interruptions de 10 µS ( temps mesuré avec une architecture ARM à 200 Mhz ) ce qui n'est pas si mal et permet de couvrir une grande majorité des besoins en la matière dans le monde industriel. De part cet aspect, son empreinte mémoire faible et sa diversité de cibles processeurs, CE semble être un choix judicieux pour toute application embarquée optimisée ( ressources système, coût, intégration etc .. ), tout en négligeant pas les options étoffées d'un bon OS ( connectivité, compatibilité, sécurité etc .. ) De plus de nombreuses cartes d’évaluation de CPUs sont vendus avec le support Windows CE sous la forme d’un Board Support Package ( BSP ) mettant à disposition les drivers et la couche d’adaptation de CE au hardware. Il ne reste plus qu’à développer les quelques drivers spécifiques à l’application développée, compiler le noyau, et développer l’applicatif à proprement parler, le tout avec Visual Studio 2005, et en bénéficiant de fonctionnalités telles que le debug croisé ou encore le profiling, …

Pour Windows CE ( à priori c’est le même prix pour la version 5.0 et 6.0 ) il faut compter 5 $ pour 1000 licences pour la version « CORE » et environ 15 $ pour 1000 licences pour la version « PRO » plus complète … A cela il faut ajouter l’outil Platform Builder ( 995 $ ) qui permet de construire le noyau Win CE en fonction des besoins de l’application : c’est un plugin de Visual Studio, ce dernier étant par ailleurs fourni avec le CD de Platform builder .


XPe peut être considéré comme une version de Windows XP Pro service pack 2 avec des fonctionnalités embarquées en plus. Celui-ci est décomposé en presque 12.000 composants, avec 9000 modules de gestion de périphériques et 3000 composants du système d’exploitation. Il est possible de choisir exactement, les composants, modules et services inclus dans l’image finale du système d’exploitation. Cette possibilité permet de réduire la taille du système d’exploitation et de l’adapter au mieux à l’application finale. Une image moyenne d’un Windows XPe est de l'odre de 40 Mo : ce n’est qu’une indication, qui dépend des composants / services incluent dans l’image finale.
Contrairement à CE, Xpe ne supporte que des processeurs basés sur l’architecture x86 tels que la famille Celeron / Pentium d’Intel ou la famille K6 / Athlon / Duron d’AMD.
La configuration minimum recommandée serait basée sur un Pentium II ou équivalent 233 à 300 MHz minimum, 128 Mo de RAM ( 64 Mo possible mais limitation des performances et des caractéristiques ), mémoire Flash de 200 Mo et vidéo super VGA ( 800 x 600 ).
Cette limitation devient un avantage puisque au niveau du développement on a une plate-forme unifiée et donc une rapidité et une flexibilité formidable. Comme Xpe tourne sur une architecture x86 et donc sur une architecture de type PC Windows, cela signifie que n'importe quel programme sous Win 2000 ou XP sur PC peut tourner sur une application Xpe, sans modifications. D'ailleur Xpe est fourni avec des composants compatibles desktop PC, qui assurent la compatibilité avec les applications et les drivers.
Le développement d’un noyau XPe se fait avec un ensemble d’outils mettant à disposition une base de donnée de composants qu’il s’agit de sélectionner et de paramétrer dans un environnement graphique confortable. Parmi les outils en question, il en est qui permettent d’analyser une configuration hardware automatiquement pour constituer le projet contenant tous les composants nécessaires à sa bonne exploitation (affranchissant l’utilisateur d’un fastidieux travail).


Windows Embedded for POS est un cas à part car dédié aux « point of service » comme les terminaux points de ventes, distributeurs automatiques, caisses de magasins etc ...WEPOS propose une plateforme standard avec une installation identique à XP pro sur CD, sans outils de génération du noyau : ce dernier point est une différence majeure avec CE ou Xpe, dont le noyau peut être personnalisé. Similitude avec Xpe, WEPOS ne tourne que sur une architecture x86. La spécificité de WEPOS c'est qu'il met à disposition tout ce qu'il faut pour exploiter de manière efficace, rapide et universelle les périphériques associés que l'on rencontre sur les applications visées : lecteurs de codes barres, cartes à puces ou magnétiques, scanners, imprimantes, afficheurs etc ... L'objectif étant de pérenniser le système en cas de remplacement d'un périphérique et d'avoir un plug-and-play assuré quelque soit la marque du périphérique. Configuration minimum pour POS : Pentium II 233 Mhz, 64 Mo RAM et 280 Mo de stockage.

Merci à Olivier pour sa participation à l'écriture de cet article - Le blog d'Olivier, Windows Embedded
Toujours chez Olivier : présentation Windows Embedded à RTS 2007

Tags : Freescale iMX - Renesas SH - Intel PXA - MIPS - Centre de dev MSDN mobilité et embarqué - XP Embedded - Windows CE - Windows Embedded for POS - Windows Embedded Home
Par BigEndian - Publié dans : Systèmes - OS
Ecrire un commentaire - Voir les commentaires - Recommander
Jeudi 1 février 2007 4 01 /02 /2007 21:06
Récemment la firme Suédoise IAR à mis sur le marché un noyau temps réel dédié à l’architecture ARM. IAR PowerPack V1.10, complète les outils IAR déjà bien connu pour le développement d’applications embarquées, que sont IAR embedded Workbench et IAR VisualState. A mi-chemin entre un noyau et un exécutif temps réel, PowerPack se distingue par un module de gestion de fichiers baptisé PowerPack file system ; deuxième point important, l’OS est dédié à l’architecture ARM : IAR annonce la compatibilité avec ARM7, ARM9, ARM9E, ARM10E, ARM11, SecurCore, Cortex M3 et Xscale ; dernier point important, l’OS est « marié » corps et âme avec l’environnement de développement IAR Workbench for ARM V4.40.

Coté noyau c’est assez classique : l’ordonnancement des tâches est de type préemptif avec une gestion de priorités ( 255 max. ) : les tâches ayant le même niveau de priorité sont gérées en boucle ( Round-Robin ). La préemption peut être désactivée sur l’intégralité d’une tâche ou sur des portions ( sections critiques ). Le nombre de tâches, sémaphores, boîtes aux lettres et timers n’est limité que par la mémoire disponible. Le cœur de noyau, écrit en assembleur, permet d’obtenir une commutation de contexte rapide, un temps de latence aux interruptions faible et une empreinte mémoire réduite. On retrouve des fonctions API ( Application Programming Interface ) classiques permettant la gestion des tâches, de la communication, de l’ordonnancement etc … La plupart des fonctions API peuvent aussi être appelée dans une routine d’interruption. Tous les appels de fonctions peuvent se faire à partir du C, C++ et assembleur.

Plus rare c’est de trouver un noyau temps réel de ce type avec un système de gestion de fichier livré avec : celui-ci est un vrai système de fichier compatible MS-DOS / Windows FAT12, FAT16 et FAT32. PowerPack File system est composé de 4 couches : une couche API, une couche gestion de fichiers, une couche gestion des blocs logiques et une couche pour les pilotes d’interface hardware. Ces dernier peuvent supporter différents périphériques de stockage : disque en RAM, Multimedia Card ( MMC ), Secure Digital Card ( SD ), Compact Flash, disque dur IDE, flash NOR et flash NAND. A noter aussi qu’il est possible d’accéder à plusieurs périphériques en même temps. Les fonctions API pour la gestion de fichiers sont vues au travers d’une librairie type ANSI C stdio.h.

Coté licence, il s’agit d’une licence de développement individuelle ou collective ( jusqu’à 20 développeurs ou une licence site illimitée ), comme d’ailleurs l’outil de développement : donc pas de redevances à payer. A noter que le code source est fourni. Une version d’évaluation est disponible gratuitement avec une limitation à 3 tâches et la gestion d’un fichier seulement. IAR Power pack nécessite une plate-forme ARM et l’outil de développement associé de chez IAR : IAR Workbench for ARM V4.40. Tag : IAR
Par BigEndian - Publié dans : Systèmes - OS
Ecrire un commentaire - Voir les commentaires - Recommander
Samedi 10 mars 2007 6 10 /03 /2007 13:26
Déjà présent dans l'embarqué avec Windows XP embedded, Windows CE et Windows POS [ lire article ], Microsoft renforce sa présence avec la disponibilité d'un kit de développement logiciel ( SDK ), pour la plateforme .Net Micro Framework. Nul besoin d'un OS embarqué ( Microsoft ou autre ) .Net Micro Framework boot et s'exécute en mémoire flash sur des coeurs ARM7, ARM9 et bientôt ARM Cortex M3 [ Lire article ] ; pas besoin de MMU, les ressources mémoires sont faibles avec un minimum de 256 Ko de RAM et 512 Ko de Flash.

Net Micro Framework est une version allégée de la structure .Net Compact Framework disponible en standard sur Windows CE : plus de 1400 classes pour cette version complète, alors que .Net Micro Framework ne comporte que 70 classes. On peut alors développer une application embarquée en C# ( C sharp ) sous Visual Studio 2005 !

L’architecture .NET Micro Framework est décomposée en 5 couches : la première étant l’application utilisateur ( programme écrit en C # dans Visual Studio ) ; la deuxième couche c’est les librairies .NET, WPF, COMM etc …. ; la troisième couche c’est la couche CLR ( Common Langage Runtime ) qui se comporte comme une machine virtuelle ; PAL ( Physical Adaptation Layer ) c’est la quatrième couche, qui standardise l’accès aux ressources physiques type mémoire, Timer et E/S en général ; au dessous c’est la couche HAL ( Hardware Abstraction Layer ) qui supporte les drivers des différents périphériques ; enfin la dernière couche c’est le hardware ….

Le cœur de cette architecture c’est la couche CLR, qui est le moteur d’exécution du code .NET : en fait le code C# ou visual basic est transformé en un code intermédiaire appelé MSIL ( Microsoft Intermediate Langage )qui est interprété puis exécuté par la couche CLR. Dans la couche CLR, le module « Interop » permet de faire appel à du code natif existant, comme des pilotes écrits en C par exemple. A noter MSIL est bien du code « interprété » et non compilé, donc légèrement moins performant.

Microsoft est soutenu par quelques poids lourds tels que Freescale et Digi par exemple, qui proposent des kits de développement autour de .Net Micro Framework.
Embedded Fusion propose aussi des cartes et systèmes de développement complets, autour de processeurs PXA Intel ou iMX Freescale.
Pour compléter cet article, Centre de dev MSDN mobilité et embarqué et présentation .Net Micro Framework  sur le blog d'Olivier, Windows Embedded

Tags : Microsoft Micro FrameworkFreescale Digi Embedded Fusion
Par BigEndian - Publié dans : Systèmes - OS
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Mardi 29 mai 2007 2 29 /05 /2007 10:04
Face à le demande toujours plus forte de sûreté de fonctionnement et de temps réel ( médical, ferroviaire, aéronautique etc ) il parait bien difficile d’intégrer des solutions middleware telles que des OS type Linux ou Windows CE [ lire article ]. En effet dès qu’il s’agit de passer les certifications liées aux secteurs critiques ( FDA 510k pour le médical, FAA DO178 B pour l’aéronautique, IEC 61508 etc .. ) le problème deviens épineux. Comment prouver la sûreté de fonctionnement vu le nombre de modules et le nombre de lignes de code qui les composent. Il ne s’agit pas seulement de pouvoir disposer du code source de l’OS, encore faut savoir quoi en faire … Car tout va passer par une vérification et la validation du code constituant l’OS ; Concernant Linux il n’y a aucune « visibilité » sur l’aspect qualité logiciel, du fait de la nébuleuse autour de la communauté où tout le monde y met un peu du sien, mais où aucun document de va attester de la vérification et de la validation du code. Idem pour Microsoft, qui ne livrera pas ses documents internes … Quid aussi dans la démarche qualité pour aller faire un audit du « fournisseur » : à quelle porte taper du coté Linux ? quand à Microsoft on se voit mal sonner à la porte de Bill à Redmond et dire « c’est pour un audit qualité ! »

A côté de cela il existe tout de même des solutions « certifiables » tels que Integrity de Green Hills, Linux Secure de Linux Works, µC/OS-II de Micrium etc …Ces OS peuvent déjà être fournis avec un certain nombre de documents de vérification et de validation, complétés par des outils logiciels qui peuvent mener à bien la couverture de validation suivant tel ou tel standard.
Comme une application, un OS sans bugs n’existe pas. Le problème n’est pas qu’il y ai des bugs, c’est surtout de savoir où ils sont situés et ce qu’ils font. Le pire serai un OS qui plante sans crier gare et qui met tout le système dans un état instable et non contrôlé : on peut imaginer les conséquences d’une telle situation dans une application critique.

Mais comment faire pour intégrer Linux ou Windows CE dans une application critique : une solution passe par la virtualisation. Rappel : la virtualisation consiste à faire tourner sur un même système plusieurs OS et / ou applications, séparément les uns des autres, comme si ils fonctionnaient sur des systèmes physiquement distinct. Pour Linux on trouve déjà des solutions de virtualisation soft : PikeOS de Sysgo en est un exemple. PikeOS est un micro-noyau à partitions qui s’intercale entre la couche matérielle est l’OS qui peut être par exemple ElinOS ( distribution Linux embarquée ), Posix ou des systèmes plus exotiques tels Java temps réel, Ada, Osek, iTron …
PikeOS s’appui sur des processeurs avec MMU ( Intel x86, ARM, Power PC, MIPS ) pour plus de sécurité ; justement de ce côté là c’est PikeOS qui est le garant de la sûreté de fonctionnement et de l’aspect temps réel, et c’est donc lui qui va être certifié : composé d’environ 5000 lignes de codes, la tâche reste abordable, comparativement à des dizaines de millier de lignes de code qu’il faudrait couvrir autrement. Détail important aussi, on est loin du Linux tout gratuit , c’est évident : entre distribution commerciale et briques soft, l’addition est salée !

Coté Windows CE c’est un peu le désert sur cet aspect de virtualisation soft : l’idéal, qui est encore de mise dans bon nombre d’applications critiques, c’est d’avoir 2 ou plusieurs processeurs. On peut imaginer la partie Windows CE qui gère la partie IHM, communication, fichiers et une autre partie ( sur un autre processeur plus petit ), qui gère la partie temps réel dur et la sûreté de fonctionnement. Tout comme la virtualisation soft, cette solution simplifie le processus de certification, dont la plus grosse partie va se déporter sur le système secondaire, plus petit et donc plus facile à certifier.
Il faut rappeler que sous Linux comme sous Windows CE, même si l’aspect « temps réel » peut atteindre quelques dizaines de micro-secondes, il y a jitter non négligeable et on ne peut pas parler de temps réel « dur » : ce jitter est lié à l’OS mais aussi à la gestion de MMU et aux caches.
Par BigEndian - Publié dans : Systèmes - OS
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Jeudi 2 août 2007 4 02 /08 /2007 15:23
La version 1.5 de Microsoft Robotics Studio [ lire article ] est disponible avec des améliorations telles que le support pour Windows CE 6.0 et Windows Mobile, une documentation mise à jour, de nouveaux exemples, des améliorations de l'outils de design graphique Visual Programming Language et d'autres choses encore.
Par BigEndian - Publié dans : Systèmes - OS
- Voir les commentaires - Recommander
Mercredi 8 août 2007 3 08 /08 /2007 11:07
Suite bien à propos d’un précédent article [ Sûreté de fonctionnement sous Linux ou Windows CE ], cet article met en avant la solution novatrice et complète proposée par TRANGO Systems, filiale de la société ELSYS DESIGN. Créée fin 2003, à GRENOBLE, TRANGO Systems innove dans la virtualisation de processeur en proposant le seul hyperviseur Temps Réel du Marché compatible avec plusieurs OS et processeurs du marché.

TRANGO se base sur le concept de l’hyperviseur permettant de faire cohabiter les parties critiques et non critiques d’un système embarqué, sur un seul et même processeur : il faut pouvoir les isoler afin de garantir leur intégrité et leur sécurité respectives. Comme PikeOS, TRANGO se fonde sur une couche basse, un micronoyau, qui s'intercale entre le matériel et les OS invités. Cette couche fournit les services minimaux utiles aux systèmes pour s'interfacer avec le matériel, mais ne les remplace pas. Elle gère essentiellement les ressources : partitionnement de la mémoire, gestion du temps, des périphériques et des entrées-sorties. Elle garantit aussi l'interopérabilité entre les différents systèmes. L'existence de partitions indépendantes facilite les évolutions, notamment pour les entreprises qui désirent développer avec Linux ou Windows CE tout en gardant des modules existants conçus avec des solutions propriétaires.

L’hyperviseur TRANGO d’une taille d’environ 20 à 30 Ko seulement, est compatible avec la plupart des architectures du marché : ARM, MIPS, SH4, POWER PC …. La nouveauté c’est que cet hyperviseur peut supporter différents OS dont Linux et Windows CE. TRANGO offre une autre alternative à la traditionnelle solution bi-processeur pour les applications embarquées sécurisées : Médical, Bancaire, Aéronautique etc …
Par BigEndian - Publié dans : Systèmes - OS
Ecrire un commentaire - Voir les commentaires - Recommander

Atomic Clock

Décembre 2009
L M M J V S D
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
<< < > >>

Yahoo Search

Blog Policy

Blog non commercial régulièrement mis à jour. Les marques et liens cités le sont au seul titre d'information et de commodité : aucune rémunération n'est perçue pour cette publicité indirecte.

Tout internaute a la possibilité de publier des commentaires, sous sa responsabilité. Cette publication est libre dans la mesure où cela est pertinent par rapport à l’article considéré.
Les contenus des liens et commentaires textuels ne devront pas être contraires aux bonnes mœurs, à l’ordre public, ni aux lois et réglementation en vigueur. Ils devront être libres de tous droits et seront sous l’entière responsabilité de leur auteur.

Sont proscrits les comportements tels que le détournement de service à des fins commerciales ou professionnelles, la contrefaçon de marques déposées, la divulgation d’informations nominatives sur les personnes, la violence ou l’incitation à la violence politique, raciste ou xénophobe, la pornographie, la pédophilie, le révisionnisme, le négationnisme, les commentaires à caractère diffamatoire ou injurieux, les discriminations de toutes natures, et toutes les activités illégales de copies d’œuvres telles que logiciels, photos et images. [ BigEndian ]
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus