Microinformatique embarquée
à l’ISET - HEL
2 approches sont étudiées
A) Windows CE
B) Linux embarqué
Traitement Image Matrox DOS
Spectromètre embarqué NTEDiscOnChip
Traitement des Défauts Apprentissage RedHat Emacs
Mise en Œuvre Clips
Historique A&R
Windows CE
Historique CE
2000 2001 200219991998 2003 200419971996
CE 2.11CE 2.11
CE 2.12CE 2.12
CE 3.0CE 3.0 CE .net 4.0CE .net 4.0
CE .net 4.1CE .net 4.1
CE .net CE .net 4.24.2
CE 5.0CE 5.0
CE 1.0CE 1.0CE 2.0CE 2.0
Temps réelPB 3.0
eVC & eVB 3.0
PB 4.0eVC 4.0 CE 6.0CE 6.0
2006
Qui fait quoi ?
ApplicationWin32 - CE
Matériel
Sous-ensemble de l’API Win32
Couche d'adaptation du matériel (OAL)
DeviceDrivers
ObjectStore
Kernel GWES Shell
microsoft
OEM
utilisateur
Les Outils Windows CE• Etape 1 Fabriquer le système
– Platform Builder • Gestion des composants du système
• Etape 2 Surveiller le système– Embedded Visual Tools
• Processus, Mémoire, Fichiers …
• Etape 3 Développer des Applications– Embedded Visual Studio
Applications C/C++ utilisant l’API win32 et la LibC– Visual Studio.net
• Applications C# utilisant le Compact Framework
PlatformPlatformManagerManager
inclus
inclus
1 - Platform Builder
• Base de données de Binaires & Sources– OEM Adaptation Layer– Noyau Windows CE– Pilotes de Périphériques (PCI, USB, Com …)– Piles de protocoles, Systèmes de fichiers, Modèle
d’IHM– Shells & Applications
1 - Platform Builder
• Environnement de développement– Génération de Makefiles– Compilateurs croisés (x86, ARM, SH, MIPS)– Outils de packaging, et de téléchargement
• Outil Graphique Interactif (IDE)– Visualisation des composants, choix, Drag&Drop– Menus contextuels, Debug symbolique.
2 - Embedded Visual Tools• Outils de Vérification & Performances
– Kernel Tracker chronogrammes des objets systèmechronogrammes des objets système– Call Profiler analyse des temps d’exécutionanalyse des temps d’exécution– Performance Monitor graphiques d’activité du systèmegraphiques d’activité du système
• Outils de gestion de la cible et utilitaires– ZoomIn copies d’écranscopies d’écrans
• Outils de Debug– SPY++ messages Windowsmessages Windows– Heap Walker analyse de la zone de mallocanalyse de la zone de malloc– Process Viewer informationinformation processus et threadsprocessus et threads
– File Viewer gestion des fichiers de la ciblegestion des fichiers de la cible– Registry Viewer édition de la base de registres de la cibleédition de la base de registres de la cible– System Infos paramètres généraux du systèmeparamètres généraux du système
3 - Développer des Applications
OS Windows CE .NETOS Windows CE .NET
Runtime CLR
Modèle d’application Modèle d’application ManagedManaged
Visual Studio .NETVisual Studio .NETavec Device Extensionsavec Device Extensions
C# ou VB .NETC# ou VB .NET
Applications pour le Applications pour le Compact Framework .NETCompact Framework .NET
Compact FrameworkCompact Framework
Compilées
Modèle d’application Modèle d’application NativeNative
embedded Visual Studio 4.0embedded Visual Studio 4.0Platform Builder 4.1Platform Builder 4.1
C ou C++C ou C++
Applications Win32Applications Win32
Common Language Runtime
Application CE 6.0
Présentation d’Olivier Delvaux
Linux EmbarquéApplications Web Server
Présentation de la carte DIL/NetPC DNP/5280
Le kit de développement est composé d’un microcontrôleur basse consommation Motorola ColdFire, d’un stack TCP/IP Realtek et d’un Web Server « BOA ».
Présentation de la carte DIL/NetPC DNP/5280
Présentation de la carte DIL/NetPC DNP/5280
• DIL/NetPC DNP/5280 with 66 MHz Motorola MCF5280 ColdFire and Firmware in Flash memory, 3.3 VDC Vcc
• Firmware and Embedded Linux pre-installed in Flash memory
• Evaluation Board DNP/EVA2-SV6 (Special Version 6)• Null modem Cable• 110 VAC or 230 VAC to 5 VDC International Power
Supply• CD-ROM with User Manual and
Hardware/Programmers Manuals• Embedded Linux with Source
Présentation de la carte DIL/NetPC DNP/5280
• GNU Cross Tool Chain for C/C++ Software Development for Linux-based PCs
• elf2flt Converter Program (m68k ELF to uClinux bFLT)
• GNU gdb and gdbserver for Ethernet-based Remote Debugging
• Free TFTP Server Program for Win32-based PCs• Linux Remote Login with Telnet• Web Server Setup Sample• Embedded TFTP Client• Many Sourcecode Samples
Configuration de la carte
Pour activer le mode Debug, Placer le Jumper entre la Pin1 et la Pin20 du connecteur BDM (Background Debug Mode)
Mode Debug: Activation
Accès au mode DEBUGRS232
115200Bauds8 bits de données No Parity1 Stop BitPas de contrôle de flux
• Test de la communication» Communication hyperterminal
ouverte
» Reset de la carte
Mode Debug: Utilisation (1)
Configuration de la carte
Configuration de la carte
• Commandes utiles à la configuration– Show
– Set – Client <son IP>
– Gateway <passerelle du réseau local>
– Netmask <adresse de sous-réseau>
– Server <adresse IP du serveur utilisé lors de la MAJ de l’image Linux>
Mode Debug: Utilisation (2)
• Commandes utiles à la configuration– Help : affiche toutes les commandes disponibles.– Dn –i : permet d’uploader l’« image.bin » à partir du serveur TFTP renseigné par le
champ serveur (cf. set serveur <IP>)
– fl w 0xff850000 0x10000 0x200000Ecriture physique en mémoire FLASH
MAJ de l’image Linux avec la liaison RS-232 implémentée
Configuration de la carteMode Debug: Utilisation (3)
Connexion au PC• Connexion Ethernet à l’aide d’un câble croisé. • Pour se connecter via une liaison Ethernet nous devons
configurer des IP en mode statique. Exemple : IP Serveur = 192.168.0.2
IP Client = 192.168.0.1
Connexion via TELNET
Sous Linux :• Connexion : telnet adresse_IP_Serveur• Upload d’un fichier via TFTP : tftp –g –l nom_du_fichier adresse_IP_machine• ... autres commandes Consol Linux (rm,cd .., …)
Sous Windows :• Connexion : telnet adresse_IP_Serveur• Upload et download d’un fichier via TFTP : PUT et GET
Serveur WEB embarqué
• Le noyau linux embarqué possède un serveur web « BOA »
• Il se trouve dans le répertoire /home/httpd/ de la carte de développement
• Ce répertoire doit obligatoirement contenir un fichier index.html
CGI
• La Common Gateway Interface (littéralement « Interface passerelle commune »), est une technologie des serveurs HTTP.
Ce dernier, au lieu de renvoyer le contenu d'un fichier (image ou HTML), exécute un programme puis retourne le contenu généré, comme s'il s'agissait d'un contenu de fichier.
• CGI permet de passer des paramètres au programme, de telle manière qu'il en tienne compte pour générer les données.
CGI
• Indépendant du langage
• Certains répertoires sont définis pour être servis par un programme CGI (CGI-BIN dans notre cas). Lorsqu'une requête correspondant à ce répertoire est effectuée, le serveur appelle le programme CGI correspondant, en envoyant au programme toute donnée que le client aurait envoyée (par exemple, un mot-clé pour effectuer une recherche). Le résultat du programme CGI est récolté par le serveur, puis retourné au client.
CGI
• Indépendant du langage.
• Certains répertoires sont définis pour être servis par un programme CGI (CGI-BIN dans notre cas). Lorsqu'une requête correspondant à ce répertoire est effectuée, le serveur appelle le programme CGI correspondant, en envoyant au programme toute donnée que le client aurait envoyée (par exemple, un mot-clé pour effectuer une recherche).
• Le résultat du programme CGI est récolté par le serveur, puis retourné au client.
Résumé
Les CGI sont des programmes (c ou c++ …) spécifiques situés sur un serveurqui peuvent être exécutés par un client à partir de pages HTML et renvoient unflux HTML au client au travers d’un serveur web (BOA dans ce cas).
Principe en C
main{printf( «<HTML> [FLUX HTML] </HTML> »);
return(EXIT_SUCCESS);}
CGI
• Mécanisme:– Paramétrage et activation de la liaison série.– Switch case sur les paramètres d’entrée
• Envois de la commande adéquateex: serial_tx(dev,RS232,strlen(RS232));
• Réception et interprétation de la String de retrourex: serial_rx(dev,rx,98);
• Renvois du flux HTML avec variablesprintf("<HTML>\n");printf("TEST DE LA CONNEXION : %s \n",&rx);printf("<A HREF=\"http://172.16.108.91\">Back to the
menu</A>");printf("</HTML>\n");
CGI
• Mise en place d’un CGI:1.Compilation sur une station Linux :
m68k-elf-gcc –m5307 –Wl,-elf2flt –Os –o cgihello cgihello.c –lc
2.Migration vers la carte :cd /home/httpd/cgi-bin
tftp –g –l cgihello <IP Source>chmod 777 cgihello
Ligne de compilation du cross compilateur C (GCC)
CGI
CGI
Première Application
Affichage de la température de 2 capteurs via la ligne série de
l’ATMega8
• Le température est envoyée sur le port série par une carte annexe (ATMega8).
• La plateforme linux coldfire renvoie ces données sur demande en flux http.
Capteurs de température Dallas 1Wire DS1820 et I2C DS1621
Liaisons Ethernet
Client HTTP
DNP/5280
Architecture
<a href=http://192.168.0.200/cgi-bin/temp?a>Afficher la valeur des 2 capteurs. <br><br></a>
<a href=http://192.168.0.200/cgi-bin/temp?b>Afficher la valeur du capteur i2c. <br><br></a>
<a href=http://192.168.0.200/cgi-bin/temp?c>Afficher la valeur du capteur 1wire.<br><br></a>
Suivant le lien sur lequel on clique, on envois un argument au programme CGI
Page HTML
switch(*argv[1]) {case 'a':
printf ("Content-type: text/html\n\n");printf ("<html>\n");printf ("<head>\n");printf ("<title>\nCGI Hello Demo</title>\n");printf ("</head>\n");printf("<BODY vLink=#FFFFFF aLink=#FFFFFF link=#FFFFFF bgColor=#800000>");printf("<center>");printf("<center><font color=#FFFFFF> Thermometre numerique</font></center>");printf ("<h1>\n capteur 1wire : %c%c</h1>\n",var1,var2);printf ("<h1>\n capteur i2c : %c%c,%c</h1>\n",var3,var4,var5);printf ("</body>\n");printf ("</html>\n");
break;
Résultat
Deuxième Application
Contrôle à distance d’un oscilloscope numérique à travers
une interface CGI
Aperçu du résultat à obtenir
Liaison Logique
Linux Embedded
Browser
RS-232
• Communication :– RS232 :
• No Parity
• 1 Stop Bit
• 9600 Bauds
• Pas de contrôle de flux
• 8 bits de données
– Logiciel :
• Hyper terminal pour tester les commandes.
Oscilloscope TDS210
• Commandes utilisées pour le dialogue avec l’oscilloscope :– RS232?
• Affiche la configuration en cours de la liason serie de l’oscilloscope.
– MEASUREMENT:IMMED?• Affiche la configuration de la mesure immédiate :
– CH1 / CH2– TYPE : Moyenne ou Fréquence– Coupling : AC/DC
Oscilloscope TDS210
• Commandes utilisées pour le dialogue avec l’oscilloscope (2):– MEASUREMENT:IMMED:VALUE?
• Renvoi la valeure de la mesure immédiate
– BUSY?• Renvoi : 1 (Occupé) / 0 (Libre)
– MEASUREMENT:IMMED:TYPE FREQ• Défini la mesure pour une fréquence.
– MEASUREMENT:IMMED:TYPE MEAN• Défini la mesure pour une tension (DC-AC efficace ).
Oscilloscope TDS210
• Commandes utilisées pour le dialogue avec l’oscilloscope (3):– CHX:COUPLING YY
• X : 1 ou 2 pour le canal.
• YY : AC-DC pour la valeur à mesurer.
– MEASUREMENT:IMMED:SOURCE CHX• Défini le canal X (1 ou 2) comme la source de la mesure.
– CHX:VOLTS?• Retourne l’échelle des V/DIV du canal X (1 ou 2).
Oscilloscope TDS210
Serveur WEB embarqué
• Exemple de page html :
<html><head>
<title>Nouvelle page 1</title> </head><body>
<A HREF="http://172.16.108.91/cgi-bin/test.cgi?a"> Test RS-232 </A>
</body></html>
Résultat : Page web avec un lien vers le test.cgi en passant le paramètre ‘a’.
• Exemple de page html :
<TABLE BORDER=5 CELLPADDING=0 CELLSPACING=0 ALIGN="CENTER">
<TR><TD><p></p>
<A HREF="http://172.16.108.91/cgi-bin/test.cgi?a"> Test RS-232 </A>
</TD></FORM></TR></TABLE>
[Oscilloscope]
[Résultat Browser]
1
2
34
Serveur WEB embarqué
Merci pour votre attention
Place à la Jeunesse
Top Related