TD 1 Introduction Introduction et prise en main de l outil de dvp Beck et IDE borland Objectif : Prise en main de la chaîne de développement BECK (chip tool +BorlandC + debugguer). Réaliser une configuration de base de la base de registre du Beck (chip.ini) Utiliser les services de l OS (serveur WEB, serveur FTP, serveur telnet). Utiliser le port série et son API téléchargement de l image de l OS dans le beck. La première étape consiste à utiliser le bootloader de Beck (chiptool) pour télécharger l image de l OS V1.01b dans le processeur SC13. Connecter la maquette Beck sur le hub Ethernet et lancer chiptool. Les RTOS compilés sont récupérables sur le site beck : http://www.beck-ipc.com/ipc/download/lizenz.asp?id=2209&sp=en On prendra un modèle d OS intégrant le serveur WEB et FTP mais sans le support PPP. (large sans PPP) Avec Chiptool, sélectionner ce modèle d image et téléchargez le dans le beck. On fixera par la même occasion l adresse IP du processeur selon les indications de séance. Indiquez votre numéro de série de SC13 dans la rubrique Serial Number or MAC-ID.(voir le sticker sur le coté du chip) Les règles pour l adresse IP sont les suivantes : 10.23.93.x avec X le numéro du host de dvp. Masque 255.255.0.0 et passerelle 10.23.0.254 sans DHCP. Repérer votre Beck dans la liste (a l aide de son numéro de série), configurez son IP (10.23.93.x), mask (255.255.0.0) et gateway (10.23.0.254) Procéder au téléchargement de l OS avec chiptool via le boot loader résident sur le beck. Lancer le client FTP présent dans chiptool et analyser ensuite le file system interne et plus spécialement le fichier de base de registre chip.ini. Utilisation du serveur FTP du Beck à l aide d un client FTP type filezilla. On peut récupérer gratuitement (www.télécharger.fr) un client FTP sur Internet pour effectuer la gestion de fichier. Un client FTP est également inclus dans l outil chiptool. Cela permet d écrire/lire des fichiers dans le filesystem interne ou externe du beck. Le protocole FTP utilise un port TCP 21 et est spécialisé dans la manipulation des fichiers entre serveur FTP. La mise en place du protocole FTP date P.LAURENT Page 1 17/03/2006
de 1971, date à laquelle un mécanisme de transfert de fichiers (décrit dans le RFC 141) entre les machines du MIT (Massachussetts Institute of Technology) avait été mis au point. Il permet également la Création/suppression d arborescence en envoyant des commandes au file système. Manipuler le client FTP pour récupérer le fichier config.ini et le stocker dans votre répertoire de travail. Effectuer une session FTP en utilisant l Hyper terminal en connexion winsock sur le port 21 : USER ftp 331 User name okay, need password. PASS ftp 230 User logged in, proceed. PWD 257 "/" is current directory. PASV 227 Entering Passive Mode (10,23,12,3,210,32). QUIT Refaire un accès au serveur ftp du beck par le client intégré à chiptool et éditer le fichier chip.ini. Ouverture d une connexion par client telnet : Ouvrir une connexion TELNET par le client intégré à Windows (menu démarrer/exécuter TELNET 10.23.93.x Login TEL Password TEL puis lancer des commandes du shell, >help,>dir >type Refaire la même opération avec l hyper terminal en mode winsock sur le port 23 Exemple : demo_beck Telnet session Username: tel Password: *** User logged in dir Configuration du fichier de base de registre chip.ini On peut, en fixant des clés dans le fichier chip.ini paramétrer l OS au démarrage du système Exemple de clé dans chip.ini : [SERIAL] COM_BAUD=115200 Permet avec la clé SERIAL (paramétrage des liaisons séries) de fixer une vitesse de transfert à 115200 baud (sans parité 8bits et 1 stop bit par défaut. Ouvrir une console client TELNET sur l adresse IP du Beck fixée dans chiptool Editez le contenu du fichier chip.ini actuel. Analyser le contenu du fichier chip.ini suivant et commentez : [IP] DHCP=0 ADDRESS=10.23.12.3 NETMASK=255.255.0.0 GATEWAY=10.23.0.254 [FTP] ENABLE=1 USER0=ftp PASSWORD0=ftp P.LAURENT Page 2 17/03/2006
DRIVE0=0 ROOTDIR0=\ [WEB] DRIVE=0 ENABLE=1 ROOTDIR=\WEB MAINPAGE=index.htm HTTPPORT=80 [TELNET] USER0=telnet PASSWORD0=telnet [DEVICE] NAME=demo_beck [SERIAL] COM_BAUD=115200 EXT_DMA=0 SEND_DMA=1 EXT_BAUD=9600 Modification du fichier chip.ini: Modifier le fichier chip.ini actuellement présent dans le beck en utilisant un client FTP pour que Le port COM travaille en 115200 baud, que le répertoire par défaut du serveur http soit A:\my_web, qu un utilisateur n 1 (USER1) ait comme login et mot de passe FTP et telnet : Login=name1 et password=pass1 Créer un répertoire sous A:\my_web\ Vérifier que le USER1 pour se connecter en TELNET et FTP sur le beck dans le nouveau répertoire répertoire racine A:\my_web\ Modifier le répertoire par défaut du serveur HTTP et le faire pointer sur une page nommée google.htm Récupérer la page d accueil de www.google.fr ainsi que le répertoire contenant ses fichiers image. Les télécharger avec le sous répertoire dans a:\my_web Vérifier le fonctionnement du serveur http avec internet explorer sur l adresse IP du Beck: http://10.23.9.x et vérifier l apparition de la page de démarrage de google. Se connecter en TELNET et FTP sur le Beck avec les paramètres du USER1 Amélioration :chercher dans la documentation un moyen de sécuriser l accès à ce répertoire Web depuis un client http en utilisant les paramètres de USER1 (login et mot de passe) [WEB] SEC_URLx=Define a path for the security feature SEC_USERx=Define a user name for the security feature SEC_PASSWORDx=Define a password for the security feature Connexion sur le port COM en liaison série Connecter un câble série croisé (femelle/femelle) entre le COM du Beck et le port COM1 du PC Etablir la liaison par l hyper terminal en 115200bd, 8 bits, pas de parité, pas de contrôle de flux. Vérifier que l on peut passer des commandes au shell et éditez le fichier config.ini (>type chip.ini) Ecriture d une application de base en C Créer un projet type plateforme DOS, fichier en C, dans le répertoire courant. Associer au projet la bibliothèque compilé CLIB200L.LIB qui se trouve dans c:\bc5\lib Paramétrer le projet pour pouvoir effectuer un débug de cette application par debug@chip P.LAURENT Page 3 17/03/2006
Saisie le code source suivant : //simple demo application for writing in console #include <clib.h> //inclue all protrotype of CLIB API #include <stdio.h> int my_char=0; void main (void) { BIOS_Set_Focus ( FOCUS_APPLICATION);//set SDTIO focus to application only BIOS_Select_Stdio ( STDIO_COM STDIO_TELNET, SET_STDIN SET_STDOUT); } while ( BIOS_kbhit()!=1) {printf("bonjour licence pro ISE \n"); RTX_Sleep_Time ( 1000 ); //sleep for 1 s } my_char=bios_getch ( ); BIOS_Set_Focus ( FOCUS_BOTH);//set SDTIO focus to SHELL and application Compiler et builder cette application : on doit obtenir un fichier.exe portant le nom du projet Transférer ce fichier dans le Beck par un client FTP et l exécuter depuis la console TELNET. Déboguage d une application en C Apres avoir vérifier que les options de debug (include debug information et include line number) étaient présentes, lancer l outil debug @ chip depuis borland5 : menu tools/debug@chip Configurer le canal de communication pour piloter la cible (@IP) sur la liaison Ethernet et le port TCP 3000 (menu file/configuration/comm) Dans le menu de configuration, vérifier que borland a bien transmis la référence à l application à déboguer. (fichier.exe) Copier/coller le fichier problite.exe (deamon de débug disponible dans c:\program files\debug@chip\probe\ sous la racine du Beck par un client FTP et créer un fichier autoexec.bat (avec notepad) contenant la référence au fichier probe.exe (lancement du deamon de debug à chaque démarrage du beck). Rebooter la cible et vérifier que la connexion s établit bien avec le Beck depuis debug@chip. Télécharger l application dans la cible depuis debug@chip (file>download file to target). Mettre un point d arrêt sur la ligne RTX_Sleep_Time Lancer l application (bouton START). Une fois atteint le point d arrêt, relancer le code par le bouton RUN. P.LAURENT Page 4 17/03/2006
Installation d un file système externe. L OS Beck permet à l utilisateur d enregistrer auprès du noyau un second disque de sauvegarde qui sera géré par le file system. Cela permet d étendre la capacité de stockage interne (512K- taille de l OS) à 2 gigabyte (gestion du disque externe en FAT16) Beck fournit un exemple d application (extide.c) qui réalise cet enregistrement : Notre disque est en fait une compact flash fonctionnant en émulation IDE en mode 8bits et ses deux bases de registre sont mappées en mémoire externe : 0x600 pour Chip sélect 1 et 0x610 pour chip sélect 2. Récupérer sur le site Internet www.beck-ipc.com http://www.beck-ipc.com/ipc/download/load.asp?id=2475&sp=en l exemple contenant le driver file system externe (Ext IDE). Editer le code source de l application EXTIDE de Beck et modifier le fichier de paramétrage (define.h) pour pouvoir enregistrer notre compact flash auprès du KERNEL (mode 4 et changement des CE1 =0x600et CE2=0x610 Recompiler en activant le mode debug (dé-commenter le #define DEBUG) et télécharger l application EXTIDE.exe dans le Beck avec le client FTP. Mettre en place la compact flash (alimentation éteinte) et lancer EXTIDE.EXE depuis une console TELNET. Vérifier le montage du disque B et que les transferts de fichier sont possible de A : vers B : et inversement. Vérifier aussi l accès au driver B : depuis le client FTP inclus dans chiptool. Analyser brièvement le code de cette application et localiser la fonction qui sera invoquée à chaque accès sur le disque, et celle qui permet d enregistrer cette application auprès du kernel. Modification du chip.ini. COUPER/COLLER le répertoire a:\my_web sur la compact flash et définissez B:\my_web comme nouveau répertoire racine du serveur HTTP. vérifiez avec un navigateur web le bon fonctionnement du serveur http. Faire de même pour le répertoire racine du serveur FTP. Tester avec votre client FTP. Vérifier s'il est également possible de déboguer une application avec le debug@chip sur le disque B :. Au niveau du debug@chip menu FILE>CONFIGURATION >Target Program rajouter la commande suivant au champs Target File Path and Name Relancer le téléchargement de notre application et vérifier avec le client FTP de chip tool que l application est bien présente sur b : Proposer une solution pour effectuer automatiquement le montage du disque b : lors du démarrage du Beck. Vérifier le fonctionnement de cette solution. P.LAURENT Page 5 17/03/2006