Home
        авбдгжеиз © fi
         Contents
1.     Read  call    Description    Reading the pdisol6 digital I O board means to control the status of the relay  channels    As for an ioctl   or a write   call  before making a read   call  the device must have  been opened    Then to make any read   call user has to indicate the file descriptor  int fd  that has  been returned by the open   function  a result buffer and  its size  The call then may  look like nbrd read fd  buffer  sizeof buffer   where nbrd is the number of bytes read   In the pdisol6 device driver  user can give a byte wise or word wise buffer according to  his choice of a single port reading or a dual one     Reading relay channels status        In single port mode  user must provide a 8 bits buffer  u8   unsigned char   The  status of each channel can be accessed using logical operations      int n   u8 buffer      ioctl fd  CHANGE_PORT  PORT2      n   read fd   amp buffer  sizeof  buffer       if  m gt 0       Channel 0 is the LSB  Less Significant Bit  of the byte    u8 channel_O   buffer  amp  0x01    u8 channel_1   buffer  amp  0x02     u8 channel_6   buffer  amp  0x40   u8 channel_7   buffer  amp  0x80     Channel 7 is the MSB  Most Significant Bit       rtl_printf       channel_0 relay    s     channel_O    0    off     on         rtl_printf       channel_7 relay    s     channel_7    0    off     on                In dual port mode  user must provide a 16 bits buffer  u16   unsigned short   The  device driver can put in it  the result of the readi
2.    mou    depuis  l   espace utilisateur  de sa gestion du syst  me de fichier  proc  information syst  me   et  du d  veloppement de modules PERL  RTAI est un syst  me extr  mement int  ressant et  particuli  rement adapt      un d  veloppement dans un cadre universitaire ou de recherche  et d  veloppement    RTLinux appara  t plus adapt      l   industrie bien que  une fois encore  RTAI prenne   de plus en plus d importance dans ce secteur    Finalement  les deux syst  mes sont excellents et il ne faut en n  gliger aucun   La comp     tition acharn  e qu   ils se livrent parfois ne fait que stimuler la cr  ativit   de leurs    contri   buteurs        5 1 3  Portail web pour le monde des Linux temps r  el        LinuxDevices The embedded Linux portal http   www linuxdevices com      realtimelinux org http   www realtimelinux org    21    5 1 4  Les sites des    distributions    historiques        RTLinux Home Site http   www rtlinux org aussi pr  sent sur           RealTimeLinux http   www rtlinux com d  veloppement et support assur   par  Finite State Machine Labs http   www fsmlabs com        Pour RTAI  http   www rtai org    5 2  RTLinux   Architecture    RT Linux est un syst  me d   exploitation dans lequel cohabitent un micro noyau temps  r  el et le noyau Linux  L   intention des concepteurs est de continuer d   utiliser les services  de haut niveau du syst  me    temps partag    tout en permettant de fournir un compor   tement d  terministe dans un environnement o   l
3.   le micro noyau libre ou  ELKS pour les machines    base de 286 http    www elks ecs soton ac uk cgi bin   ELKS     Les processeurs et   ou architectures diff  rents de x86 PC demandent plus de tra   vail de configuration  Les utilisateurs   tant moins nombreux  on ne dispose pas d   une  aide aussi rapide et les documents sont plus difficiles    trouver    Aucune soci  t   n   est    l   origine du d  veloppement de GNU Linux  Je vois plut  t   a  comme un avantage et un gage de p  rennit   mais certains d  cideurs semblent le craindre   De plus  ceci est une opportunit   pour des soci  t  s de service qui peuvent s engager  comme responsables de d  veloppements logiciels libres aupr  s de leurs clients  Je pense  bien s  r ici    IRTS      4 2 3  Embarqu     temps r  el    Un logiciel embarqu   n   a pas forc  ment de contraintes temps r  el  On peut s   attendre     ce qu   une machine doive suivre un tel comportement si elle est reli  e au monde r  el   via des entr  es   sorties  Les   v  nements ext  rieurs doivent   tre trait  s en un temps  d  termin   pour produire une r  action appropri  e     Un syst  me fonctionne en temps r  el lorsqu il est capable d   absorber toutes les  informations d   entr  e sans qu   elles soient trop vieilles pour l int  r  t qu   elles pr  sentent   et par ailleurs  de r  agir    celles ci suffisamment vite pour que cette r  action ait un  sens     ou   Un logiciel ou un sous ensemble de logiciel est dit temps r  el ou d  terministe si
4.   quantes avec sans   ch  ances     6  mbuff permet d   utiliser des composants de m  moire partag  e entre les processus  Linux et RTLinux     23    Le syst  me est donc pens   pour   tre transparent  modulaire et extensible  Par exemple   on peut trouver un scheduler impl  mantant les modes RoundRobin ou FIFO de la norme  POSIX  comme module de remplacement  cod   par un membre de la Communaut       5 2 2  RTLinux et POSIX    Le consortium de normalisation POSIX entretient des relations d   attraction   r  pul   sion avec le monde du temps r  el et les concepteurs de RTOS  Il est souvent dit par la  communaut   temps r  el que la normalisation de l   interface est un frein    la performance   Le processus est initi   par les grands   diteurs d   UNIX qui se pr  occupent de gros sys   t  mes ou de syst  mes de bureau  L   API propos  e  m  me pour les extensions temps r  el   POSIX 4 Draft 14   P1003 1b   est assez lourde 4 mettre en oeuvre   de nombreux    diteurs s   en d  marque  Par exemple QNX se contente de POSIX 1  base   processus   fichiers  pipes     et  2  shell et utilitaires    LynxOS V2 2 y ajoute seulement un support  de POSIX 4 Draft 10     De plus  de part l   architecture originale de RT Linux  de nombreuses impl  mentations  du standard sont impossibles  syst  me de fichier   Un compromis a   t   trouv   par les  concepteurs de RTLinux    savoir l   utilisation du    Minimal Realtime System Profile      POSIX 13 Draft 9  reprenant les sp  cifications propr
5.  ant that it has succeeded  the  Message_ structs what member contains   RECV_ DONE        OK code in com h      define RECV_DONE 0x10   Error codes are sent to the Linux process the same way      Error codes in com h       define RECV_ERR1  1    define RECV_ERR2  2    define CMD_ERR  3    define SEND_ERR  4    Result messages The result message   s what member is always TAKE DATA and its  value member is filled with the result of the request previously passed on to the device  driver  If a single port access is done  this 16 bits value only contains its lowest byte  valid  I recommend to give a 0 filled value member to the read   function  In case of a  double port access  the entire value field is OK and the lowest byte corresponds with  portl     43    Miscellaneous    Debug options    At the compilation of the driver  user can specify which level of debug he wants  to be displayed on the kernel log  This is done by uncommenting  define DEBUG for  debug level 1 or both  define DEBUG and  define DEBUG2 for debug level 2 in the  pdiso16 c file  In real time In general  debug level 1 displays actions and probable causes  of command faults and debug level 2 add the state of important global and local variables  at that time so that you can determine what was wrong    You can also display all the kernel messages by using dmesg command    Note that debug options slow down the device driver     Special files    Kernel uses special files to save all the systems parameters  Some of
6.  com ou http   www   editions oreilly fr  Un livre sur les Linux temps r  el doit sortir chez eux  avant  le quatri  me trimestre 2000    Les   ditions Eyrolles http   www eyrolles com  ou CampusPress http    www campuspress fr produisent aussi de tr  s bons ou   vrages        Internet et les    portails    classiques   http    www linuxfr org http   www slashdot   org http   www  linuxdevices com http   www  linuxembedded com        Les listes de diffusion ou    mailing lists    auxquelles on peut souscrire    partir de  nombreux sites Internet        Les nouvelles ou    news     un groupe comp os linux embedded est sur le point de se  cr  er        Exemple   Pour le temps r  el      Realtimelinux org a une    mailing lists    permettant de se tenir au courant des nou   veaut  s dans le monde des Linux temps r  el  Chacun peut   mettre un point de vue  poser  une question ou demander de l   aide    Pour souscrire    cette liste  il suffit de se rendre  sur le site http   realtimelinux org et de suivre la proc  dure d  crite  Archives des  mailing lists http   www realtimelinux org archives    La plus int  ressante des ces  listes et la plus active est celle intitul  e    realtime       Un autre groupe  plus proche du produit RTLinux et extr  mement actif est la liste  de diffusion maintenue par rtlinux org  Elle apporte de bons renseignements au jour le  jour  il me semble indispensable d   y souscrire   http   www rtlinux org    19    5  Les Linux Temps R  el    5 1  Introd
7.  de la construction d   une mini distribution  ttp   www toms  net rb     4 3 2  Solutions d entreprises commerciales    Les entreprises proposant une solution Linux embarqu       BlueCat de Lynx Real Time Systems Inc  entre dans la strat  gie d     diteur de se rap   procher du monde des logiciels libres  Lynx nous d  voile sa strat  gie Lynx Linux  Initiative et LynuxWorks    Lynx Inc  met aussi en place une compatibilit   binaire  entre Linux  format ELF  et son RTOS LynxOS 4 0  Sur le diagramme suivant   on peut se rendre compte des possibilit  s qu offre BlueCat Linux et des outils  qu il fournit  Le manuel utilisateur est extr  mement pr  cis et guide le concepteur     travers des exemples pertinents     Organigramme du d  veloppement sous BlueCat Linux  http   www bluecat com    Embedix   Lineo d  veloppe et vend des composants logiciels et des solutions de syst  mes  embarqu  s en interaction avec Internet  Lineo d  tient Embedix  embedded Linux  OS   Embrowser  embedded web browser   DR DOS et de nombreuses technologies  de l   embarqu    En rachetant Zentropix  il s impose comme un acteur majeur de  Venfoui et du temps r  el    base de Linux     Hard Hat Linux est un produit commercial de la soci  t   Monta Vista qui s   attache a  faciliter le d  veloppement de syst  mes embarqu  s  Elle initie de nombreux tra   vaux pour am  liorer les performances temps r  el du noyau Linux  modification du  scheduler   http   www mvista com      17    Les entreprises proposant u
8.  kernel  will display a    busy device or resource    message on console     locti   calls    Description    Before making an ioctl   call to a special file  device driver description file in our  case   the device must have been opened by the RTLinux task  using the driver   s open      37    function call which may look like fd   open   dev pdiso   O_ NONBLOCK     Then to make any ioctl   call user has to indicate the file descriptor  int FD  that  has been returned by the open   function  a command parameter  unsigned char cmd   and  if required  an argument parameter  The call then may look like err ioctl FD  cmd   arg  where err is an integer returned by the function  In the pdiso16 device driver  arg is  required while reading digital inputs thus  the ioctl   function waits for well sized buffer    User must then provide a buffer address to the function  Used with CHANGE PORT  command  arg takes two values   PORT1 or PORT2 constants    This section explains the specifications of cmd and arg parameters and the returned  values of the ioctl   function     Command parameter  cmd     This unsigned char parameter is used to indicate to the driver which port s   CHANGE _ PORT   BOTH_PORTS  you want to read or to write on the pdisol6 board  You can also indi   cate that you want to read digital inputs of your board  DIGITAL INPUT      cmd CHANGE PORT   read   write   functions applied on relay port given in arg  field  byte wise bit manipulation    cmd BOTH_ PORTS   read   wri
9.  mat  rielles    On peut s   amuser    d  couper une station de travail classique suivant cinq blocs  fonctionnels  Puis  en   liminant tour    tour un ou plusieurs blocs  on obtient diff  rentes  configurations mat  rielles pouvant s   appliquer    un   quipement embarqu            Cette excellente id  e est tir  e du livre    Java embarqu       10      12    Fic  4 1      Typologie des architectures    En utilisant le sch  ma 4 1 on peut construire      1  avec tous les blocs une station de travail industrielle connect  e    un r  seau  2  avec l   unit   centrale  une IHM  et de la m  moire de masse  un PC domestique    3  avec l   unit   centrale  et des entr  es   sorties sp  cifiques  un syst  me industriel  ind  pendant que l   on peut relier    un r  seau si on lui adjoint le bloc  5     4  Su    Il y a ainsi 14 configurations possibles  car certaines des 27 sont absurdes  d  crivant cha   cune un   quipement informatique  GNU Linux est pens      l   origine comme un syst  me  d exploitation pour station de travail de type PC connect  e    un r  seau  blocs 1 2 3 4    Il faut donc voir s   il est assez configurable pour pouvoir animer les autres agencements  de blocs sans trop de modifications et   ou de pertes de performance    D   autre part  augmentation de la proportion de mat  riel standard  et notamment  de type PC  dans les   quipements embarqu  s est tout    fait remarquable  En effet        leur fiabilit     leur disponibilit   imm  diate   leur facilit   d i
10.  mener un d  veloppement en interaction forte avec le mat  riel   de bout en bout  En effet  j avais    apprendre comment construire un driver     utiliser  les ressources de RTLinux et    coder les programmes de tests de ce driver  Le document  pr  sent en annexe est le manuel d utilisation de ce driver  Pour pouvoir   tre utilis    par la Communaut    ce document est r  dig   en anglais   l   ensemble des programmes de  tests  versions de drivers et documentations sont disponibles sur Internet pour permettre    27    l   utilisation et l   am  lioration de mon travail  http   www chez com noglitch    Ce que l   on peut tirer de ce premier d  veloppement complet sous RTLinux est que  cet environnement est tout    fait homog  ne  stable et simple d   utilisation  Il est tr  s  important  comme il est mentionn   dans tout manuel sur RTLinux  de bien d  limiter la  partie temps r  el et la partie qui ne l   est pas  En effet  Il s   agit de minimiser la partie de  code    critique    et d utiliser au maximum les facilit  s offertes par un d  veloppement dans  l   espace utilisateur de Linux  d  boguage  protection m  moire  librairies  graphismes          L   API de style POSIX disponible dans l   espace RTLinux  facilite la compr  hension  du code   crit pour utiliser le driver  Toutefois  elle peut entra  ner des confusions avec  l   utilisation dans l   espace Linux  noyau ou utilisateur   Je conseille d   avoir les id  es  claires sur la situation du code que l   on est en 
11.  mes    base de logiciels libres  Je pense que cette approche  permettra    JRTS de choisir la bonne solution logicielle en r  ponse    une demande  client dans ce domaine     2 2  Environnement de d  veloppement    Afin de mettre en oeuvre ses solutions    base de logiciels libres  la soci  t   IRTS a cr      une plate forme de d  veloppement de type PC  Julien Gaulmin y a install   GNU Linux   lors d   un stage pr  c  dent    Ce PC    base de processeur AMD K6II 300MHz tourne sous une distribution SuSE  Linux 6 1  J   y ai ajout   les diff  rents outils logiciels n  cessaires    un projet sous RTLinuz   RTAI  Linux et BlueCat Linux  La distribution Red Hat Linux 6 1 a d     tre install  e  sur ce PC pour pouvoir utiliser le kit de d  veloppement de Lynx   BlueCat Linux    Tous les outils d ing  nierie logicielle    diteurs de textes  compilateurs    diteurs de  liens     ainsi que les pages de manuel et les codes sources de l OS et des drivers existants  sont fournis dans les distributions et sont disponibles sur de nombreux sites Internet   J   ai dispos   ainsi de nombreuses sources d   informations et d   une communaut   toujours     l     coute des probl  mes de l   un de ses membres     Le rack CPCI inova sert de machine cible dans le d  veloppement d   applications  embarqu  es  Le cycle de mise en oeuvre d   un syst  me embarqu    r  sum   sur le sch  ma  2 2  est facilit   par l   utilisation des outils mis    la disposition du d  veloppeur par BlueCat  Linux     2 
12.  possibilit   de traiter  les interruptions  celles arriv  es entre temps sont disponibles et peuvent   tre trait  es par  la routine de gestion d   interruptions de Linux  handler d   IT Linux dans la figure 5 1    Les codes assembleurs des processeurs 1486 cli  sti et iret sont remplac  s dans le noyau  Linux par des macro instructions S  CLI  S STI et S_IRET  Toutes les interruptions    22    mat  rielles sont attrap  es par l     mulateur qui distribue des interruptions logicielles  soft  interrupts     Les t  ches temps r  el suivent les sp  cifications de la norme POSIX 1c d  crivant les  threads  Elles peuvent   tres application utilisateur  service fourni par l   environnement  RTLinux ou pilote de p  riph  rique  Charg  es comme module noyau  elles s   ex  cutent en  suivant les ordres dict  s par le scheduler  Le temps CPU est fourni    la t  che de plus  haute priorit    scheduler de base RTLinux     Ces    kernel threads    disposent des droits entiers sur la machine et peuvent acc  der     toutes les ressources  Ils occupent tous le m  me espace d   adressage  celui du noyau   et  se chargent dynamiquement  Il r  sulte de ces trois points qu il est d  licat de d  velopper  un tel module  En effet  la moindre erreur de programmation  vite advenue en C du fait  de la manipulation de pointeurs  est fatale au syst  me  En revanche  cette architecture  permet d augmenter les performances en   liminant les temps de changement de niveau de  protection et en raccourcissa
13.  pour but de cr  er et de maintenir toute une panoplie de programmes utilitaires compatibles UNIX  et de les mettre gratuitement    disposition de tous  On appelle abusivement Linux  le syst  me  d   exploitaiton GNU Linux qui est constitu   du noyau Linux et des outils GNU     2  Le projet    2 1  Pr  sentation du sujet    Le projet qui m   a   t   confi   fait suite au d  veloppement de l   utilisation des logiciels  libres  au cours de ces derni  res ann  es  L   une des composantes les plus populaires du  monde du logiciel libre est le syst  me d   exploitation GNU Linux  En plus d     tre popu   laire dans les milieux universitaires et de recherche  ce syst  me  de par ses innombrables  qualit  s qui seront expos  es ult  rieurement  s  duit les entreprises    La soci  t   IRTS voit dans cette mont  e en puissance des perspectives de nouveaux  march  s et a donc d  cid   d   ajouter GNU Linux et ses d  riv  s  temps r  el notamment   a ses domaines de comp  tences    Le sujet de base de ce stage   tait la mise en oeuvre et l     valuation du noyau RTLinux  en terme de fonctionnalit  s et de performances  Mais  RT Linux  de par son architecture   est utilis   en interaction forte avec le noyau Linux et les outils GNU qui l   accompagnent   Le noyau temps r  el RT Linux n   est rien par lui m  me  J   ai donc pris l   initiative d     largir  le sujet de mon stage  d   autant qu      plusieurs reprises  j   ai d   r  pondre    des questions  g  n  rales relatives aux syst 
14.  son  ex  cution a lieu en un temps d  termin   et connu    Un syst  me d   exploitation est dit temps r  el ou d  terministe s   il permet d   ex  cuter des  t  ches logicielles en temps r  el  Cette notion est ind  pendante de la vitesse de calcul     Pour assurer le d  terminisme des t  ches  un syst  me d   exploitation doit   tre soit  monot  che  soit multit  che et totalement pr  emptif  La pr  emptivit   induit un autre  concept  la notion de priorit    En effet  un noyau multit  che pr  emptif   recevant une    2ABRIAL et BOURGNE  3Dont la t  che courante peut   tre interrompue     15    interruption  doit r  partir de nouveau le temps CPU entre les t  ches  Cette r  partition  est effectu  e par le moniteur syst  me  scheduler  selon un crit  re         pour un OS temps partag    c   est le temps CPU d  j   accord      la t  che        pour un OS temps r  el    mou    c   est l   ordre d   arriv  e de l   interruption        pour un OS temps r  el    dur    c   est l   ordre d   arriv  e de l   interruption mais aussi la   priorit   des diff  rentes t  ches s   ex  cutant   Linux      t   impl  ment      partir des sp  cifications POSIX pour construire un syst  me  d exploitation temps partag    En revanche  la norme POSIX 1b sp  cifie des extensions  temps r  el au syst  me de base  POSIX 1   Ces extensions  disponibles dans Linux  sont  entre autres   s  maphores  timers  queues de messages et scheduler pr  emptif g  rant les  priorit  s  Il y a l   tout ce qu   i
15.  those can be  very useful to get informations about the device driver       proc devices   this file indexes all the devices drivers installed on the system with  their major number and their type  char or block       proc interrupts   this file indexes all the interrupts that have already appear on the  system with their interrupt vector  their frequency and the name of the device  driver which owns them      proc ioports   this file indexes all the I O regions that have been taken by devices  drivers  The name of the device driver that owns the region is also displayed    proc ksyms   this file indexes all the kernel entry points with their address and the   name of the function  You can display these informations with the ksyms command      proc modules   this file registers all the loaded modules with their memory occupa   tion and the number of processes threads that have opened it  You can display  these informations with the lsmod command      proc version   this file contains the current running kernel version  It is useful to see  if your module version is compatible with the current kernel but you can force the  module even if the versions are incompatible with insmod  f      dev pdiso   this file is the devices files associated with the board using the pdiso16  device driver  You can see major and minor number of this file with Js  l command      var log messages   these file contains all the messages sent by kernel with printk    calls  You can display these mess
16.  utilitaires permettant de se    loger    sur le syst  me  et faire la main   tenance des utilisateurs  S  curis   il utilise le m  canisme de    shadow password        4 3 4  Outils documentaires    Il est fort int  ressant  lorsque l   on d  veloppe une solution    base de logiciels libres   de disposer d   une liaison Internet pour avoir acc  s aux forums de discussions et aux  listes de diffusions  En effet  on trouve rapidement une r  ponse en posant une question  sur un des forums listes d  di  s aux Linux temps r  els car ce milieu est passionn   et  enthousiaste  Attention tout de m  me de ne pas poser une question    r  ponse triviale    lire la documentation avant toute requ  te    Internet est une base de documentation in  puisable et effervescente   Il est impossible  de faire le tour de tous les papiers mis    la disposition du d  veloppeur  Il faut donc avoir  quelques flotteurs pour ne pas se noyer et    surfer    confortablement d   un renseignement     l   autre       Les outils les plus efficaces     la disposition du d  veloppeur sont principalement      18        Les livres  peu nombreux et assez chers  ils ne correspondent pas toujours aux  besoins et sont souvent   dit  s avec un retard certain par rapport    ce que l   on  peut trouver sur Internet  Mais  certaines maisons d     dition n   h  sitent pas    pu   blier d   excellents ouvrages   clairant les d  veloppements r  cents de la Commu   naut    je pense aux   ditions O   Reilly http   www oreilly
17.  what   WRITE_RELAY    Send_Cmd value   OxAA         Finally  he sends his message through the rt fifo using the write   call to the proper  rt fifo file descriptor     if  write Fd_Wr   amp Send_Cmd  MESSAGE_SIZE   lt  0     fprintf stderr   Can   t send a command to RT task n      exit  1       42    Send request messages        The what member is the command sent to the device driver  It can take the  following values       command codes for the message types  what tag      define WRITE RELAY 0x1     read   function     define READ STATE 0x2     write   function     define TAKE DATA 0x3     ioctl fd  DIGITAL INPUT       function     AND the ioctl   commands CHANGE PORT PORT1 PORT2 in value tag  and  BOTH_ PORTS       The value member contains the buffer to send to command the relay channels  the  result of the reading or the data from digital inputs  Its length is linked with the  number of ports required     Receive messages    To receive a message  the Linux user space process must listen to the RTLinux  pdisol6 device driver  User can simply implement it with a read   call or use read    with a select   call on the rt fifo  Example could be fount in the app c source file  A  Message_ struct data structure must be used while calling the read   function     Acknowledgment messages The device driver passes on an acknowledgment message  to the Linux process when no result is required   write or ioctl commands    Thus  the  device driver says that it has received the command
18. 1      Mat  riel mis    ma disposition     FIG  2 2      Cycle de d  veloppement d   un logiciel embarqu      FIG  2 3      Planning de d  roulement du stage     3  Conclusion    Autonomie pourrait   tre le ma  tre mot de mon stage car j   ai pu organiser  sans  contrainte  ma progression dans le monde des Linux temps r  el et du logiciel libre em   barqu    La soci  t   IRTS m   a donc laiss   toute latitude pour mener    bien une exp  dition  dans cette jungle et d  fricher le terrain  J esp  re lui avoir permis d   y voir plus clair et  d utiliser ces outils plus facilement avec l   aide de ce rapport    Ce stage m   a appris    prendre mes responsabilit  s et    organiser le d  roulement de  mon activit   technique  Je pense que ce stage sera riche d   enseignements pour mes futurs  projets    Sur le plan humain  j   ai eu la chance d     voluer dans une jeune soci  t   dynamique et  dans une excellente ambiance de travail  Ceci m   a permis de choisir la structure dans  laquelle je voulais d  buter ma vie professionnelle    Cette exp  rience m   a aussi permis de d  couvrir le travail communautaire si vital au  d  veloppement de GNU Linux  J   ai ainsi obtenu    gratuitement    et quasiment instanta   n  ment de l   aide tr  s pointue aupr  s des milliers de d  veloppeurs syst  mes passionn  s de  cet OS  ceci via les newsgroups  les forums et les nombreux articles et livres disponibles  en ligne     10    Deuxi  me partie      Dossier Technique    4  GNU Linux comme sys
19. 3  D  roulement de l activit   technique    Mon stage a commenc   par deux semaines de travail intense   je devais r  pondre     un appel d offre lanc   par le Service Technique de la Navigation A  rienne  La consul   tation portait sur un ensemble de PC industriels tournant sous GNU Linux op  rant  dans un syst  me critique du contr  le a  rien  Rentrant dans un m  canisme de gestion de  calculateurs redondants  ces PC devaient contr  ler d   autres machines et faire basculer  le travail  d   un calculateur    l   autre  en cas de panne  Robustesse  fiabilit   et temps de  r  ponse sont demand  s    de tels syst  mes  Ceci m   a permis d aborder directement le  monde de l   embarqu   sous GNU Linux    Puis  j   ai abord   la partie principale de mon stage   les Linux temps r  el et RTLinux  en particulier  Le choix de RTLinux est discut   dans le dossier technique en 5 1 2    La partie de mon projet concernant le son s   est av  r  e   tre ardue car elle mobilisait  beaucoup de concepts  nouveaux pour moi  Il fallait me familiariser avec les notions  relatives au signal sonore  aux driver PCI     la mesure de performance d   un syst  me  d exploitation temps r  el  Donc  cette partie avait aussi pour but de mesurer les per   formances temps r  el de RTLinux soit la latence  la g  te et le temps de r  ponse    une  interruption    Durant toutes les phases de ce stage  j   ai d   me tenir au courant de tous les d     veloppements relatifs au monde de l   informatique embarqu  
20. M  moire de fin d   tude    GNU Linux   syst  mes embarqu  s    Nicolas Ferre   M5    Mars   Juin 2000    Propos   par IRTS  Integrated Real Time Systems     REMERCIEMENTS    Je tiens    remercier les personnes suivantes pour avoir rendu ce stage pos   sible        Monsieur Claude Silve qui  malgr   ses occupations  a toujours r  pondu     mes questions      Monsieur Michel Dumas pour m   avoir fait profit   d   explications    propos  de leur d  veloppement en cours      Monsieur Hugues Perony sans qui ce stage n   aurait pas   t   possible      et enfin toutes les autres personnes de la soci  t   IRTS pour avoir   t   si  accueillantes avec moi     Table des mati  res    SYNTH  SE      Pr  sentation de l   entreprise IRTS    date AOU CACC BIE  EO 4  te Ah thee An Ale A M SAMS es MA a Mt ok te Sh  1 2  Ing  nierie d   Etude et de D  veloppement  d   Assistance Technique et de  CODE crear Slate te oneal eg Oke th  GMa Be ts Bene ee Sk  Sve  E Se al Bee 2  1 2 1  Assistance Technique et Conseil                      1 2 2  Ing  nierie d Etude et de D  veloppement                 1 2 3  R  alisation de syst  mes d  di  s et Technologies Informatiques        1 3  Positionnement March                                     Le projet    2 1  Pr  sentation du sujet 2 72 age    ale Mars mie ele 2  Sha eG ae 2 oles  2 2  Environnement de d  veloppement                         2 3  D  roulement de l   activit   technique                         2 4  Techniques et connaissances mises en oe
21. Yodaiken and Michael Barabanov VJY Associates  LLC      2  Getting started with Real Time Linux  Michael Barabanov    3  Real Time Linux Application and Use  Phil Wilshire    4  Real Time Linux 2 0 Installation  amp  Examples  Mirko Holler      5  RTC Europe  V4 1  Janvier 2000   http   www  rtcgroup com rtcmagazine rtc100 html rtcmag100 html     l6  GNU Linux magazine France   17  mai 2000    7  Electronique International   359  9 septembre 1999    8  Electronique International   378  10 f  vrier 2000      9  BlueCat Linux User   s Guide  BlueCat Version 1 0 0 DOC 0329  Lynx Real   Time Systems Inc      10  Java embarqu    Y  Bossu  C  Nicolas  A  Proust  J B  Blanchet  Eyrolles      11  Le Linux Sound HOWTO  Jeff Tranter  mailto tranter pobox com  traduction  fran  aise de Ga  l Duval  version 1 18  mailto  gael linuxmandrake com    32    Glossaire    API   Application Programming Interface  Interface mat  rialis  e par des primitives  per   mettant    une application d   acc  der    des programmes de plus bas niveau     ELF   Executable and Linkable Format  Format d   ex  cutables binaires principalement  utilis  s sous GNU Linux  permet l     dition dynamique de liens      FIFO   First In First Out ici  m  thode de communication entre processus  RT FIFO  moyen d     change de donn  es non bloquant entre taches temps r  el ou entre une  tache temps r  el et un processus utilisateur Linux     PCI   Peripheral Component Interconnect  sp  cification de fonctionnement d   un b
22. a  5 4 2  Utilisation du port parall  le                   Codage  test d   un pilote carte TOR                  Portage et test d   un pilote carte son                   5 6 1  Le son sous GNU Linux                      5 6 2  pourquoi le son requiert un comportement temps r  el    5 6 3  Le portage du pilote carte son Sound Blaster 128 PCI    Glossaire    Ill  Annexes    ill    20  20  20  20  21  22  22  23  24  24  25  25  26  27  28  28  29  30    33    34    Table des figures    2 1   2 2   2 3     4 1     9 1     9 2   5 3     Mat  riel mis    ma disposition                             8  Cycle de d  veloppement d   un logiciel embarqu                  8  Planning de d  roulement du stage                        9  Typologie des architectures                             13  Les diff  rentes couches d   abstraction   RTLinux comme machine virtuelle   POUT LINUR  eaa aie ie mea at a ED    22  Les registres de contr  le   commande du port parall  le                   27    Fonctionnement du pilote de carte PDISO16 dans l   environnemnt RTLinux  28    iv    Premi  re partie      SYNTHESE    1  Pr  sentation de l entreprise IRTS    Integrated Real Time Systems  d  sign  e par le sigle ZRTS a   t   cr    e en 1995 sous la  forme d   une S A R L  et dispose d   un capital de 2 340 000 F  enti  rement d  tenu par ses  fondateurs    La soci  t   a r  alis   30 millions de francs de chiffre d   affaires au titre de son dernier  exercice  Elle comptera 19 personnes dont 16 ing  ni
23. ages with the dmesg command      etc devinfo   this file indexes all the different device drivers type that can exist with  their major and minor number     44    
24. au Linux  spin_ lock  spin_lock_ irq           la communication de donn  es entre espace utilisateur et noyau  copy to user    put_ user           l interface style POSIX  open  read       Pour faciliter le travail et en plus permettre au driver modifi   de fonctionner aussi bien  sous RTLinux que sous Linux  voire sous RTAI   plusieurs initiatives ont vu le jour     30    Driver Programming Interface  DPI Version 0 1 0 beta  pour des drivers RTLinux Linux  d  velopp  e par David Olofson mailto david_olofson hotmail com  C   est PAPI  que j   ai utilis  e car le portage du driver es1370   tait fait  Il a donc suffi de suivre  l   exemple et de modifier le nom des fonctions    Le r  sultat semble fonctionnel mais  le syst  me se bloque au d  chargement du module  je n   ai pas corrig   ce d  faut car  un tel probl  me est long    r  soudre  http   www angelfire com or audiality     Comedi   Control and Measurement Device Interface for Linux  d  velopp   par de nom   breux contributeurs dont le principal est David Schleef mailto  ds schleef  org   Cette interface permet d utiliser le driver de n   importe quel espace utilisateur   noyau  temps r  el et depuis n   importe quel syst  me Linux  RTLinux  RTAI  Cette  solution bien que plus complexe semble extr  mement   l  gante et m  rite un bon  coup d oeil  Des driver sont d  j   d  velopp  s pour des cartes d   entr  es   sorties  analogiques  http   stm 1bl gov comedi     31    Bibliographie     1  RTLinux Version Two  Victor 
25. buffer et l   chantillon suivant d   o    emploi de la technique des buffer multiples   Multi   buffering   L application tient toujours un buffer rempli    la disposition du driver  qui  peut s   en emparer lorsqu il a vid   le pr  c  dent   on parle en fait d   un buffer d  coup    en plusieurs fragments  en g  n  ral 3   Il faut tout de m  me savoir que l   application a  souvent des traitements    faire sur les   chantillons avant de les fournir au driver    Exemple   avec un d  bit de donn  es de 176400 octets s et un buffer de 2 fragments de  4Koctets  application dispose de 4096 octets soit de 23ms pour effectuer son traitement  et remplir le buffer ce qui est peu  Il faut alors l   agrandir  Mais  le chargement d   un  fragment plus grand demande du temps car il faut transmettre des donn  es  de l   espace  utilisateur  au noyau  fonctions write   de PAPI son   Cela implique une augmentation  du temps de latence pour toutes les autres op  rations du syst  me  Il faut donc augmenter  la fragmentation du buffer   les transferts de donn  es seront alors plus nombreux mais  de plus petite taille    Le pilote sous Linux calcule en g  n  ral la taille et le nombre des fragments tel que la  latence soit de 0 5s pour une restitution et de 0 1s pour une acquisition  Sous RTLinux   les donn  es sonores r  sidant sur le disque sont envoy  es  via une RT FIFO     une t  che  temps r  el  Cette derni  re utilise PAPI son classique  OSS   Open Sound System  pour  communiquer avec l
26. case of no PDISO16 major parameter  PDISO16 MAJOR is  taken from the pdiso16 h header file     Initialization The device driver has to register itself with Linux and RTLinux  The  loading process begins with a call to pdiso16_ init   function dedicated to general purpose  initialization  Linux I O region checking  register device      Then  it has to deal with  RTLinux stuff   register using posixio API  set up fifo   s and initialize its base address  and communication state  PORT1 byte wise behavior     Errors Error can appear during the module loading  This error may be caused by  invalid loading parameters or by the fact that module is already running on system    In case of error  you should check if the module is not already running and if all the  required resources are free  see the Special files section   You can also use the dmesg  command to see debug or error messages  see the Debug options section      Unloading  cleanup module     Mechanism As you can dynamically load your kernel module  you can also unload it  when you want using the command rmmod modname  You can check its name calling  the useful lsmod command     Errors Nevertheless  the module will be unloaded only if all the processes threads  have been closed before  This is done with the driver   s release   function call which is  called by the generic close   function  Finally  the call may look like close FD   If some  processes  threads are still using the device driver when you try to unload it  the
27. chaque    25    interruption de la RTC programm  e     8kHz  Un petit seuillage permet de d     terminer si le HP doit   tre allum   ou non  C   est ainsi qu   en pr  tant l   oreille  on  entend Linus Torvalds parler       Ex  mmap   Permet d   acc  der    la m  moire physique  depuis l   espace noyau RT Linux  ou l   espace utilisateur Linux  C   est une sorte de driver du p  riph  rique m  moire  physique    Ex  mutex   Une t  che RTLinux et un processus Linux se disputent un s  maphore  d exclusion mutuelle  La t  che Linux est en fait impl  ment  e dans la fonction  init _module   qui cr  e et prend le mutex avant de lancer la t  che temps r  el   Cette derni  re essaie de prendre le s  maphore  sans succ  s  jusqu      ce que la t  che  Linux l   ait l  ch      Ex  fp   D  crit les capacit  s de calcul en virgule flottante de RTLinux  Nous avons  besoin d   un module ind  pendant pour effectuer de tels calculs     Ex  vlapi   Non   tudi     permet d   utiliser du code   crit pour RTLinux version 1  Il faut  pour cela compiler RT Linux avec l   option CONFIG RTL USE V1 API activ  e  dans include rtl_conf h        Driver rt_com   Communication par ligne s  rie proposant une API POSIX  Permet de  se familiariser avec la construction d   un driver complet et l   utilisation du module  posixio  La communication avec les processus Linux se fait par l   interm  diaire de  RT FIFO  l int  gration de leur gestion dans un driver est typique de ce mode   utilisation  Des tests son
28. e  En effet  en s   int  ressant  aux Linux temps r  el  on est plong   dans ce milieu en permanence  Actuellement  son  activit   est d  bordante et il ne faut rater aucune annonce sous peine de vite voir ses  connaissances p  rim  es  par exemple   la sortie  pendant ces quatre mois  de RTLinux  V3beta et de RTAI V1 3 avec    chaque fois  de nouvelles fonctionnalit  s  de nouveaux  drivers USB plus performants       Cette activit   de veille technologique me semble tr  s  importante   l   largissement du sujet de mon stage et ce rapport en sont le fruit     2 4  Techniques et connaissances mises en oeuvre    Ce projet m   a fortement int  ress   car  tout au long de son d  roulement  j avais tou   jours quelque chose de nouveau    apprendre  I  m   a permis de suivre au jour le jour les  activit  s d   une communaut   de programmeurs  d   utiliser et d alimenter l     norme source  de d  veloppements communs  En plus de connaissances techniques  il m   a fallu d  ve   lopper mon esprit de synth  se  en ne gardant que l essentiel et le pertinent de tous les  renseignements pr  sents sur Internet     Syst  mes d exploitation   noyaux   GNU Linux  SuSE  Red Hat   RTLinux  RTAI   BlueCat Linux  Lynx Inc      D  veloppement   C C GNU   outils GNU   tar  make  API POSIX  API RTLinux   modules noyau Linux     Pilotes   carte TOR ISA   carte son  PCI   port parall  le     Performances   signal sonore et driver carte son  API son  caract  risation temps r  el   benchmark     FIG  2 
29. e driver modifi    Je conseille  avant tout d  veloppement dans le  domaine du son  de lire attentivement les documents mis    notre disposition sur ce site  http   www opensound com   Open Sound System TM Programmer   s Guide     5 6 3  Le portage du pilote carte son Sound Blaster 128 PCI    Le driver pour la carte son Sound Blaster 128 PCT est celui d  velopp   pour la puce  d   Ensoniq es1371  Il se trouve dans le r  pertoire consacr   au son dans l   arborescence du  noyau Linux  sous le nom es1371 c      Le pi  ge      viter est d   utiliser le driver es1370   ou de chercher celui s   appelant comme la puce pr  sente sur la carte son i e    es1373     Pour utiliser ce driver sous Linux  il suffit de le s  lectionner comme module lors de  la configuration du noyau  Il peut aussi   tre utilis   quand on travaille sous RTLinux   en agissant exactement comme d  crit pr  c  demment  lors de la compilation du noyau     patch      pour RTLinux  Le driver ne fonctionnera que dans l   espace Linux et l   on ne  pourra lui soumettre aucune contrainte temps r  el   il a les d  savantages de toutes  les t  ches tournant sous Linux et peut aussi   tre pr  empt   par n   importe quelle t  che  RTLinux    Pour que ce driver ait un comportement d  terministe  il faut l   adapter    l   environ   nement RTLinux  Ce qui signifie modifier         les m  canismes de gestion d   interruptions  synchronise_ irq  signal_ pending           ce qui concerne la protection de ressources dans le noy
30. e temps de latence est extr  mement  faible  En effet  les syst  mes temps r  el ont souvent besoin d   un support r  seau  d   une  interface graphique  d   un syst  me de fichier et   ventuellement d   un acc  s    une base de  donn  es  Ceci peut   tre fourni par un syst  me d   exploitation    monobloc    o   tout service  est int  gr   dans un environnement temps r  el  comme LynxOs  Une autre solution est de  consacrer une machine aux applications temps r  el et y ajouter des services non temps  r  el comme cela est g  r   dans VXworks    La troisi  me voie adopt  e par RTLinux est celle qui permet    un micro noyau d   ex  cu   ter le v  ritable noyau Linux comme sa t  che de plus faible priorit    RT Linux impl  mente  en fait une sorte de machine virtuelle pour que le noyau Linux standard soit compl     tement pr  emptif  Dans cet environnement  toutes les interruptions sont initialement  prises en compte par le noyau temps r  el et sont pass  es    Linux seulement s   il n   y a pas  de t  che temps r  el    ex  cuter     FIG  5 1      Les diff  rentes couches d   abstraction   RTLinux comme machine virtuelle  pour Linux     Pour minimiser les changements dans le noyau Linux  les concepteurs ont   mul   le  contr  leur d   interruptions mat  riel  Ainsi  quand Linux d  sactive une interruption  celle   ci est quand m  me prise en compte par RTLinux et aiguill  e vers une file d   attente si elle  n   est pas utile au niveau du micro noyau  Lorsque Linux r  tablit la
31. ers pour carte ISA puis PCI  les modes  de programmation de telles cartes seront observ  s avec attention    Exemples et drivers permettent d   aborder un aspect de la programmation dans un en   vironnement RTLinux      Ex  hello   Le traditionnel    Hello World    pour RTLinux  Il permet de comprendre les  m  canismes de base de programmation et chargement des modules dans le kernel  temps r  el  L installation d   un module dans le noyau passe par l   ex  cution de la  fonction init_ module    contenant l allocation et l   initialisation des ressources sys   t  mes  Son pendant est la fonction cleanup_ module      Documents    RTLDIR exemples hello README  Si c   est le premier exemple    tudi    il est bon de regarder le Makefile et le fichier  d  finissant des constantes de  compilation  g  n  r   par RT Linux   rtl mk     Ex  frank   Illustre le mode de passage de messages entre une application temps r  el et  une application utilisateur fonctionnant sous Linux  Cette communication  concer   nant des donn  es et des commandes  s   effectue par l   interm  diaire de RT FIFO  Cet  exemple est beaucoup moins trivial qu   il en a l   air   Il permet en effet de comprendre  en d  tail le fonctionnement des RT FIFO et du m  canisme d   interruption logicielle  et de    handler    associ  s  Du cot   Linux  le programme de r  cup  ration des don   n  es utilise l   interface POSIX impl  ment  e pour les RT FIFO  open  read write   close   Cette application est aussi int  ressan
32. es aux threads  POSIX 4a Draft 8    P1003 1c  mais remplace la gestion d   un syst  me de fichier par une simple interface  d   entr  es   sorties  suffisant pour un noyau de cette taille  RT Linux ajoute aussi un  support SMP compatible avec cette norme     Le principe de base de RTLinux reste  selon ses concepteur  de ne pas c  der    la  compatibilit   une quelconque perte de performance     Cependant cet effort de normalisation est fait pour facilit   le portage d   applications  dans l   environnement RTLinux  pour b  n  ficier du    vivier    de programmateurs d  j   ha   bitu  s    POSIX et enfin  pour simplifier la compr  hension du code et l   int  gration dans  l   environnement GNU Linux  Le module rt _ posizio est donc    utiliser sans mod  ration  lors d   criture de pilotes de p  riph  riques     5 3  Installation    L installation se passe g  n  ralement sans encombre du moment o   l   on a d  j   compil    un noyau Linux  Les documents livr  s avec la    distribution    sont assez bien faits  Une  attention toute particuli  re va aux guides d installation comment  s par Phil Wilshire   lt philwil on ramp ior com gt  que l   on peut trouver    la racine de l   archive  du moins     partir de la version 2   Ce document est pr  sent dans le recueil joint en annexes     24    5 4  Prise en main    5 4 1  Exemples    Une attention particuli  re sera port  e    l interface avec le mat  riel  exemples de dri   vers   Sachant qu   il est demand   d     tudier des driv
33. eurs et r  alisera un chiffre d   affaires  de 32 millions de francs au titre de l   exercice 2000     1 1  Strat  gie    La soci  t    RTS est sp  cialis  e en ing  nierie des syst  mes dans le domaine des ap   plications temps r  el  de l   informatique embarqu  e  et de l   informatique industrielle  et  se positionne sur deux secteurs d   activit  s compl  mentaires         l ing  nierie d     tude et de r  alisation  d   assistance technique et de conseil       la r  alisation et la fourniture de syst  mes informatiques d  di  s et la commercia    lisation de produits standards appartenant au catalogue de divers constructeurs   micro stations embarqu  es  cartes et syst  mes VME  PCI  CompactPCI  PICMG   moniteurs LCD de classe industrielle  panel PC     1 2  Ing  nierie d Etude et de D  veloppement   d Assistance Technique et de Conseil    Cr    e par des ing  nieurs poss  dant une grande exp  rience dans l     tude et la concep   tion de syst  mes informatiques pour les domaines de la d  fense et de l   industrie  RTS  propose des services d   expertise et de conseils couvrant les phases d     tudes  de d  finition  de besoins  d   analyse  de conception et de r  alisation de ces syst  mes     1 2 1  Assistance Technique et Conseil    R  pondant aux besoins de grands syst  miers  les services propos  s incluent la r     daction de cahier des charges  l   assistance au d  veloppement et    la conduite de projet  concernant la r  alisation de grands syst  mes d   informa
34. here nbwr is an integer returned  by the function   the number of bytes written  In the pdisol6 device driver  user can  give a byte wise or word wise buffer according to his choice of a single port reading or a  dual one     Controlling relay channels    When a 1 is written to the output  the common and the NO   Normally Open   pins  of the relay  are in contact  User can switch a relay state setting a 1 or 0 to the right  place within the byte or word wise buffer  Then the buffer is written down to the board   s  register by the device driver   s write   call        define CHANNELO 0x01   define CHANNEL1 0x02     define CHANNEL  0x80   int n    u8 buffer   0x00    ioctl fd  CHANGE_PORT  PORT1       buffer    CHANNELO     Turn on channel 0   Less Significant Bit of the byte     buffer  amp   CHANNEL1     Turn off channel1      n   write fd   amp buffer  sizeof  buffer      Of course  direct write is the simplest way to access the board registers      int n    u8 buffer   0xA3    channel 7   on   off  on  off  off  off  on  channel 0   onx   ioctl fd  CHANGE_PORT  PORT1      n   write fd   amp buffer  sizeof  buffer        If the user wish to control only one channel state  without changing the others  he has  to use the read   function  This example shows how to open channel 3 relay   turn off       ioctl fd  CHANGE_PORT  PORT1      read fd   amp buffer  sizeof  buffer       buffer  amp   CHANNELS     Turn off channel3x     n   write fd   amp buffer  sizeof  buffer        40
35. ibres   lib  ration du code  source de son noyau Neutrino et mise    la disposition de certaines applications     Cette politique est appuy  e par une volont   de produire une APT commune aux  Linux temps r  el   embarqu  s se recadrant sur les normes POSIX     5 1 2  Le choix       L   une des caract  ristiques du Logiciel Libre est    sa libert    Dans le domaine   mer   geant des Linux temps r  el  la multitude des offres requiert une   tude approfondie des  avantages et inconv  nients de chaque syst  me  Cette   tude doit aussi prendre en compte    lInternet appliances   divers appareils connect  s    Internet mais ne correspondant pas au sch  ma  classique d   un ordinateur  t  l  phone mobile  minitel web  refrig  rateur          20    la notori  t   d   un produit  ses soutiens   ventuels et leur solidit    enfin le support de mise  en oeuvre et de documentation disponible sur Internet    Le choix de RTLinux par rapport    RTAI s   est impos   dans cet environnement in    dustriel pour plusieurs raisons         Notori  t     RTLinux a   t   imagin   en 1997 dans le d  partement informatique  du New Mexoco Institute of Mining and Technology  Il a   t   utilis   dans de nom   breux projets universitaires et industriels et b  n  ficie donc d   une large confiance   Ainsi  sa base de documentation et d   aide en ligne est cons  quente  Le nombre de  programmes actuellement disponibles sur Internet et les listes de diffusion d  di  es  sp  cialement 4 RTLinux ont aussi orie
36. jet est de cr  er un syst  me Linux le plus petit possible conte   nant le maximum de fonctionnalit  s  serveur HTTP   CGI  FTP  Telnet       le tout  tenant sur une seule disquette  http    www master cit be c27 index html   LEM   Linux EMbedded est une petite distribution bas  e sur la Mandrake  Elle fait    tenir sur moins de 8Moctets un syst  me complet contenant m  me Xwindow  Sur  son site  il est d  crit comment ajouter le navigateur Netscape 4 et un serveur web       16    Cette distribution  que j   ai utilis  e lors de l   appel d offre STNA  est formidable  car elle met tous les outils n  cessaires    la disposition du d  veloppeur  La liste  de diffusion propos  e est assez active et le groupe est un acteur majeur des Linux  embarqu  s  Je pense qu   un syst  me graphique plus petit serait en outre plus adapt    que Xwindow  http   www embedded linux org    Linux Router Project Un projet centr   sur le r  seau  comme son nom l indique  http     www linuxrouter org    Tomsrtbt disquette de boot secours circonstances critiques  mauvais param  trage de  LILO  crash disque      Son insertion sur une disquette de 1 77Moctets lui per   met de contenir beaucoup d   outils  avec les pages de man   Tournant depuis un  disque m  moire il permet d   utiliser tout PC comme une station de travail sous  GNU Linux  Il contient une configuration r  seau  un   diteur de textes  les uti   litaires mount  gzip    La trousse de secours indispensable  Il donne de plus une  bonne id  e
37. l nous faut      Mais  le noyau Linux est non pr  emptif    Une t  che peut   tre interrompue  et mise en attente par le moniteur  selon sa priorit    En revanche  un appel syst  me  ne peut   tre interrompu  il peut durer jusqu      quelques centaines de milli secondes   ex   fork      L   impl  mentation d   un comportement temps r  el    dur    avec le noyau  Linux n   est possible qu   au prix de s  v  res modifications du code du noyau  Cependant   des projets ont vu le jour pour am  liorer les performances temps r  el    mou    de Li   nux notamment dans le domaine du son  On peut trouver de tels projets en partant  de http   www crosswinds net  linuxmusic lowlatency html ou depuis la soci  t    MontaVista http   www mvista com    L approche    bas niveau    sera discut  e dans la section 5 2 consacr  e    l   architecture  de RTLinux       4 3  Distributions et outils    4 3 1  Divers projets libres    AlfaLinux est bas  e sur la distribution Slackware et tient sur deux disquettes  http     alfalinux sourceforge net alfaeng php3    BYLD Build Your Linux Disk   un paquet qui permet de g  n  rer des mini distributions  Linux sur une disquette  http   get to byld    CClinux tenant sur une disquette  il utilise un maximum d outils GNU http   www   CosmicChaos com CClinux    DosLinux   un petit syst  me d   exploitation Linux qui peu   tre install   au dessus d   un  syst  me Dos existant  http    gwyn tux org pub people kent robotti index   html   Emblin   Le but de ce pro
38. le   want to read portl then both ports digital input state      u8 read_buffer_single_port    u16 read_buffer_double_port      ioctl fd  CHANGE_PORT  PORT1     if  ioctl fd  DIGITAL_INPUT   amp read_buffer_single_port   0   rtl_printf  Digital input PORT1 Ox x n   read_buffer_single_port       ioctl fd  BOTH_PORTS     if  ioctl fd  DIGITAL_INPUT   amp read_buffer_double_port    0   rtl_printf   Digital input PORT1 OxZ x n   read_buffer_double_port       Returned value    The ioctl   call returns 0 on success or  1 on fail  In case of fail  errno values are  standardized by the include file  lt asm errno h gt  so that you can know what kind of  problem has occurred    If the driver has the required debug level  you can also use the command dmesg to  see in details where and why the ioctl   call has failed     Write   call    Description    Writing the pdiso16 digital I O board means to change the state of the relay channels   ie   to change the connection between pins of the selected relay     39    Before making a write   call to a special file  device driver description file in our  case   the device must have been opened by the RTLinux task  using the driver   s open    function call which may look like fd   open   dev pdiso   O_ NONBLOCK     Then to make any write   call user has to indicate the file descriptor  int fd  that  has been returned by the open   function  a command buffer and  its size  The call then  may look like nbwr write fd   amp buffer  sizeof buffer   w
39. les pilotes de p  riph  riques    utiliser      une ou plusieurs applications    ventuellement un des  processus interactif s   shell   pour commencer le travail  il n   y a pas souvent de processus de login sur un syst  me  embarqu     Et de nos jours  on utilise assez souvent        un syst  me de fichier  Sur disque dur ou Flash  ROM  disque RAM       une pile r  seau TCP IP      une interface graphique  Linux peut apporter d   une part  un noyau r  pondant    toutes les exigences d   un syst  me  embarqu    r  duction de taille jusqu      300 Koctets   d   autre part  l   ensemble des services  utilisateurs imaginables  Linux peut convenir aussi bien    un   quipement    taille ultra  r  duite qu      un gros serveur d   applications mais l   adaptation    un pico syst  me demande  beaucoup plus de malice et de travail   mais il faut aller chercher les outils de taille  r  duite car ils ne sont pas habituellement fournis dans les distributions standards  http      www embedded linux org constitue un excellent    portail    pour les recherches d   outils  de taille r  duite  voir 4 3 3     4 2  Pourquoi GNU Linux      4 2 1  Avantages      Gratuit      l   achat et pendant l exploitation  runtime license   c   est l avantage le plus  populaire des logiciels libres et tout le travail de la Communaut   est de rappeler que  libre    gratuit      Code modifiable    volont   du moment que les modifications sont mises dans le do   maine public  Ceci permet d   adapter son syst  
40. m  diaire d   une    26    FIG  5 2      Les registres de contr  le   commande du port parall  le      Num  ro de bit   Nom registre statut   Nom registre commande     Busy   a  O AR   na y   __NOPAPER   Input mode enable    SELECTED   Interrupt enable                  7    TAB  5 1      Nom des bits des registres de contr  le et de statut       RT FIFO  Celui ci doit   tre en attente de lecture sur cette FIFO  Le processus Linux  peut alors afficher le changement d     tat de la broche    Un autre moyen de mesurer les changements sur la broche ACK consiste    installer  un gestionnaire d   interruptions sur l   interruption  7  Cette autre solution dispense de  l   usage d   une t  che p  riodique    Dans les deux cas  la fonction init module s   occupe de lancer la t  che  Il suffit de  cr  er les FIFO  la routine de gestion d interruption    ventuellement   la t  che et enfin  de d  finir sa priorit   et p  riodicit    s   il y a lieu   La valeur de la p  riode est exprim  e   comme toutes les grandeurs de RTLinux  en nano secondes    Ceci permet de s initier au fonctionnement de PAPI RTLinux pour ce qui est de la  gestion du temps  de la cr  ation de t  ches p  riodiques  Pour l   autre m  thode on aborde la  prise en compte d   interruptions mat  rielles et la mise en place de routines de traitement   interruptions  Comme les applications communiquent par RT FIFO  ce m  canisme est  aussi    maitris       5 5  Codage  test d   un pilote carte TOR    L objectif est ici de
41. me    ses besoins  d   avoir des exemples  pour un d  veloppement similaire  Mais aussi  cette caract  ristique est importante pour  am  liorer s  curit   et fiabilit    les failles et erreurs sont rapidement rep  r  es et corrig  es  par la Communaut       Co  ts de formation et maintenance faibles car GNU Linux est bas   sur POSIX  les  administrateurs UNIX ont peu de mal    l   aborder      Syst  me d exploitation fiable  m  moire prot  g  e     Un large   ventail de protocoles  langages  pilotes  syst  mes de fichiers  interfaces gra   phiques    sont support  s par cet OS  La liste des langages est par exemple absolument  impressionnante  il manque seulement Visual Basic             14    4 2 2  Inconv  nients      Linux n   est pas un micro noyau  il en r  sulte que la taille minimale qu   il peut at   teindre n   est pas aussi impressionnante que celle du noyau de QNX   Neutrino  quelques  dizaines de Koctets   Mais  d   une part  les contraintes d   empreinte m  moire sont moins  drastiques qu   il y a quelques ann  es car on utilise maintenant des composants stan   dards et grand public  La RAM est souvent bien sup  rieure a 4 Moctets et des Flash  de 32 Moctets atteignent des prix raisonnables  d  veloppement des appareils photos nu   m  riques  balladeurs MP3      De plus  Un micro noyau a besoin de nombreux modules  p  riph  riques pour fonctionner  la taille totale augmente alors tr  s vite      Pour les adeptes du concept  il faut s   int  resser de pr  s 4 Hurd
42. ne solution Linux temps r  el         Finite State Machine Labs http   www fsmlabs com       Lineo http   www lineo com un des acteurs majeurs du Linux embarqu   en tr  s  forte expansion  Produit   Embedix http   www lineo com products embedix   html  Lineo rach  te de nombreuses soci  t  s en relation avec les Linux embarqu  s  dont Zentropix  http   www zentropix com un acteur principal ou une petite  soci  t   fran  aise INUP http   www inup com sp  cialis  e dans la mise en place de  clusters haute disponibilit   sous Linux        Cygnus http    sourceware cygnus com pour les produits EL IX http    sourceware   cygnus com elix  une API se voulant unificatrice des Linux temps r  els et eCos  http    sourceware cygnus com ecos  un micro noyau temps r  el configurable        Synergy Microsystems http    www synergymicro com linux html et sa distri   bution bas  e sur RTLinux du FSM Labs   Industial Linux     4 3 3  Les utilitaires de taille r  duite    ae petit   diteur de textes   ash tr  s petit Bourne shell     Busybox petit programme binaire qui fournit la quasi totalit   des commandes POSIX  de base i e  cat  cp  mv  ls  cd  mount    Il est employ   dans la plupart des mini   distributions   Linux Router Project  LEM et par l   installation de Debian    Son  d  veloppement est sponsoris   par Lineo     elvis tiny un autre   diteur de textes de style vi   iproute rempla  ant de ifconfig  route  etc  Petit  il apporte aussi des fonctions avanc  es     TinyLogin suite d  
43. ng  Each port can be accessed  following this rule      int n   u16 buffer      ioctl fd  BOTH_PORTS       41    n   read fd   amp buffer  sizeof buffer        if  n gt 0     u8 port_one   buffer  amp  OxOOFF     PORT1   The lowest byte of the wo   u8 port_two    buffer  amp  OxFF00   gt  gt  8    PORT2   The highest one      rtl_printf        port_one 0x 4x  port_two 0x x n        port_one  port_two       Calls from Linux user space   using RT FIFOs    RT FIFO implements message passing through rt kernel space    This kind of commu   nication makes me think of QNX   s  except that it is non blocking   which is a pretty big  difference     Another difference is that rt fifos are uni directional  User must exchange  data through a pair of rt fifos for bi directional communication  My device driver requires  2 rt fifos           In a first time user has to open his 2 rt fifos      if   Fd_Rd   open   dev rtf0   O_RDONLY    lt  0     fprintf stderr    Error opening  dev rtf0 for reading  n      fprintf stderr    RT Linux module not active    n n      exit   1        Same thing for the other direction      Fd_ Wr   open   dev rtf1   O_WRONLY          Then he has to construct his message  filling a data structure  It is described in  the com h header file       Messages sent to rtlinux module     typedef struct    u8 what    ui6 value      Message_struct     define MESSAGE_SIZE sizeof  Message_struct     Example   command the relay channels    Message_struct Send_Cmd      Send_Cmd
44. nse  GPL   de la Free Software Fundation  FSF   Cette licence  qui r  git le syst  me d   exploitation  GNU Linux  stipule entre autre que chacun est libre de copier  distribuer et modifier  gratuitement les logiciels qu   elle prot  ge  La seule condition requise est que les codes  sources soient   galement fournis en cas de redistribution et que les noms des pr  c  dents  auteurs perdurent lors de modifications    Ce nouveau march   pour IRTS permet non seulement de gagner des parts aupr  s de  nouvelles entreprises mais aussi de conforter leurs actuelles relations commerciales  En  effet  les grands int  grateurs et syst  miers s int  ressent de plus en plus aux possibilit  s  qu offre le syst  me d   exploitation GNU Linux  Son int  gration comme syst  me embarqu    prend de l   envergure    D autre part  le code source  des pilotes de p  riph  riques notamment  est utilis   pour  effectuer des portages vers d   autres syst  mes d   exploitation  LynxOS  AIX  QNX       Un d  veloppement sous un syst  me d   exploitation autre que GNU Linux peut donc  b  n  ficier du travail fait par la Communaut   du logiciel libre car un portage est plus  ais   qu   une cr  ation  Il sera alors n  cessaire de suivre tout de m  me les termes de la  GPL  Licence publique GNU   entre autre  de mettre les modifications apport  es    un  code source libre    la disposition de la Communaut        GNU qui signifie  GNU is not UNIX    est le nom d   un projet de la Free Software Fundation qui a 
45. nt   le choix  On peut partager ce point de  vue avec http    www student dtu dk  u990873     RTAI est cr     par l     quipe de Paolo Mantegazza au d  partement d   ing  nierie a     rospatiale du Politecnico di Milano    partir de RTLinux  Ce noyau est lui aussi  utilis   en entreprise  Zentropix Lineo  et tend 4 rattraper son retard de notori  t          Rapidit   de d  veloppement   RT Linux est compos   d   une API de moins de 70   fonctions dans sa version 2 2  Il est donc facile de se familiariser avec ce syst  me et  de d  velopper rapidement une application  De plus  depuis la version 2  RTLinux  se rapproche d   une impl  mentation des normes POSIX  voir 5 2 2    RTAI offre des fonctions beaucoup plus complexe et se rapprochant de celles  d   un RTOS classique  mailbox  mutex  variables condition  m  moire partag  e et  RPC      De ce fait  il est plus difficile d   approche  D   autre part  RTAI est rest    sur la base d   une API propre  proche de celle de RTLinux V1  avec seulement une  compatibilit   POSIX Ic qui correspond au mod  le de Threads POSIX        Processeurs support  s   RTLinux int  gre depuis sa version 2 le support de ma   chines multiprocesseurs  SMP  et est en phase de validation sur des architectures  PPC  Power PC   Un portage sur MIPS est aussi envisag      RTAI a   t   le premier des deux syst  mes 4 avoir un support SMP mais reste  cantonn   a une architecture x86   Du fait des ses nombreuses fonctionnalit  s  de son support du temps r  el 
46. nt  gration sur des standards ouverts  PCI  USB       la multiplicit   des interfaces d  velopp  es  r  seau  entr  es   sorties num  riques ou  analogiques  son  image  processeurs de signal         et surtout leur co  t   font que ce type de mat  riel prend une place de plus en plus importante sur ce march     Ces avantages proviennent du fait qu   il est produit en masse  par de multiples entreprises   tout autour du globe    De part son gain de notori  t    GNU Linux s   installe sur de nombreuses plates formes  diff  rentes de son    nid    d   origine PC x86  On peut aussi trouver Linux cod   pour les pro   cesseurs PPC  68k  Alpha  MIPS  certains microcontr  leurs  ARM   SPARC  travaillant  sur des architectures VME  CompactPCI  PC 104     4 1 2  Plates formes logicielles    Nous avons vu que les caract  ristiques et besoins d   un syst  me embarqu   variaient  beaucoup selon leur utilisation  N  anmoins  on peut d  crire les composants essentiels  dont un syst  me embarqu   a besoin         un utilitaire de lancement  LILO  BlueCat OS loader  GRUB        13        un noyau compos   d   un gestionnaire de m  moire  de processus et de temps  le  noyau Linux lui m  me  r  duit    sa plus simple expression       un processus d   initialisation  init sous Linux qui peut tr  s bien   tre remplac   par  un script de lancement voir le miniHOWTO Embedded Linux de Paul Moody   Afin que ce syst  me puisse faire quelque chose d   utile pour le monde r  el  on doit ajouter        
47. nt le temps de changement de contexte  Toutes les ressources  d   une t  che RTLinux sont allou  es statiquement  exemples   m  moire  fifo      La r  gle primordiale des d  veloppeurs sous RTLinux doit   tre      Si un service est intrins  quement non temps r  el  il doit   tre fourni par  Linux et non par les modules RTLinux 1      Ceci s   applique naturellement aux pilotes de p  riph  riques  device drivers  qui  s   ils  n   ont aucune contrainte temps r  el    tenir  restent inchang  s  Ils doivent tout de m  me    tre recompil  s dans l   environnement RTLinux   D_ RTL et rtl mk  s   ils emploient  les routines cli   sti     5 2 1  Composants du syst  me    RTLinux version 2 est structur   comme une partie centrale minimale sur laquelle  vient se charger tout une collection de modules qui fournissent des services optionnels  ou des niveaux d   abstraction  Ces modules sont par exemple      1  rtl_ sched un moniteur fonctionnant sur un mode exclusivement prioritaire     2  rtl_ time qui g  re l   horloge processeur et fournit des services autour de l   utilisation  du temps  timers  routine de traitement d   interruptions          3  rtl_ posirio fournit une API de style POSIX  read write open     pour interfacer  les pilotes de p  riph  rique     4  rtl_ fifo connecte les mondes RTLinux et Linux au travers d   une interface    device      permet l     change de donn  es et commandes     5  semaphore est un paquetage permettant d   utiliser mutex  semaphores et IPC blo 
48. ommand can receive  many arguments specific to the module    After being loaded  the device driver module must be associated with devices files  which will be used by user programs  This is made with the command   mknod deuname  c major minor  This action can be avoided  if this file is already created with its proper  major and minor numbers     Parameters An optional parameters can be specified when you load the pdiso16 device  driver with the insmod command  The loading command will looks like  run being root     insmod pdiso16 0  PDISO16 base_ adr adr   PDISO16_ major major     PDISO16_base_adr  As The cio pdisol6 board can be installed at several address  location  the base address switch sets the starting I O location where the CPU    36    can access the registers of the board  The factory default is 300 hex  768 decimal    If you already have a board installed at address 300 hex  choose a new address  from those available on your computer and set the switches  User can specify  board address by adding PDISO16 base _adr   adr at the end of the loading com   mand  It must be presented in a hex format  e g    PDISO16_base_adr 0x300   In case of no PDISO16_base_adr parameter  a board with the default address  IO_BOARD_ADR  specified in the pdiso16 h header file  will try to be loaded   To see which I O space is already use by devices you can look at the  proc ioports  file     PDISO16 major   The major number for the pdisol6 device driver can be set to  another value  In 
49. port    28    au signal initial     La fr  quence d     chantillonnage  sampling rate  est le nombre d   chantillons r  alis  s  par unit   de temps  exprim  e en Hertz   Une petite fr  quence d     chantillonnage  produira une repr  sentation moins fine du signal analogique d   origine  dans le sens  o   les fr  quences aigu  s ne seront pas ou mal restitu  es  La th  orie  Th  or  mes  d     chantillonnage ou de Shannon  nous enseigne que pour restituer correctement  une fr  quence sonore de Fm Hz  il faut effectuer un   chantillonnage au moins   gal     2 x Fm Hz  Ainsi  l   tendue du spectre sonore audible par un humain  qqHz     20 kHz  sera bien restitu  e par un   chantillonnage    44100 Hz  norme CD AUDIO     La dynamique est le nombre de bits d     chantillonnage qui conditionne l     tendue des  valeurs utilisables pour repr  senter chaque   chantillon  Il s   agit du rapport entre le  niveau sonore le plus fort restituable sans distorsion  et le niveau de souffle ou de  bruit inh  rent au mat  riel de restitution  Cette plage dynamique est exprim  e de  mani  re logarithmique en d  cibels  dB   En th  orie  lorsque l   on ajoute un nouveau  bit de codage pour chaque   chantillon  on double cette plage  ce qui correspond     un gain en dynamique de 6 dB     Pratique     Les cartes son utilisent typiquement un codage sur 8 ou 16 bits pour des fr  quences  d     chantillonnage allant de 4000    44100  ou m  me 48000 Hz   L     chantillonnage pouvant    tre r  alis   s
50. r written  by Integrated Real Time Systems  RTS   The driver has been implemented as a Linux  loadable module for RTLinux 2 2a  2 2 14 Linux kernel   This document explains the  functionalities of the pdisol6 device driver and the programmer   s C interface library for  it     http    www computerboards com http   www  computerboards  com    The pdisol6 device driver main features are         Access from RTLinux thread   A RTLinux thread can use the pdisol6 device driver through the posixio API  Thus   calling well known open    close    read    write   and ioctl   functions from a rt thread   the user can access all the resources of the pdisol6 board        Access from Linux user space     A Linux user space process can access the pdiso16 device driver using 2 RT FIFO   one  to send instructions  the other to receive a response or acknowledgment  It just have to  use the communication structure described in the com h header file   Message_ struct   The response or acknowledgment to its answers are also sent in such a structure     35    Note that the process have to use specialized command codes and ioctl    command constants to communicate with the device driver        Byte wise  8 bits  command and sensing on relay channels    User can set read any relay state using the read   write   functions  The port number  is specified by a call to toctl   function with the CHANGE PORT command and the  PORT1 PORT2 argument  A precise channel can be accessed through logical op  ration
51. s    Note that the LSB of the byte is always associated with the lowest channel  of the group        Word wise  16 bits  command and sensing on relay channels    User can set read all 16 channels    state using the read   write   functions  This mode  can be specified by a call to ioctl   function with the BOTH PORTS command    Note that the LSB of the byte is always associated with the lowest channel  of the group  the lowest byte is associated with PORT1 and the higher with  PORT2            Byte wise and word wise sensing on optically isolated digital input channels   User can read any differential digital input channel   s state using an ioctl   call with the  DIGITAL INPUT command  Result is returned in the arg field of the ioctl   function   User can ask a single port or a word wise reading using the same ioctl   commands    CHANGE PORT or BOTH_ PORTS    Note that the LSB of the byte is always associated with the lowest channel  of the group  the lowest byte is associated with PORT1 and the higher with  PORT2         pdiso16 kernel module    Loading  init module     Mechanism Linux kernel modules are specially made to be pieces of kernel that can  be loaded and unloaded dynamically  while the kernel is running  These appear as object  files  modname o  and are loaded with the command insmod modname o  arguments    This operation runs the initialization of the device s  and gives a major number to the  device driver  This one can be found in the  proc devices file  The c
52. s r  pondant aux exigences du  client  en termes de contraintes d   exploitation  de fonctionnalit  s ou de performances    Cette activit   consiste      tudier  concevoir  produire et assembler  en fonction d   un  besoin client  des syst  mes compos  s de produits standards du commerce ou d  velopp  s     la demande  ces syst  mes informatiques sont adapt  s aux besoins du client en terme  de standard choisi  de caract  ristiques physiques ou   lectriques  de configurations mono  ou multiprocesseurs  d   entr  es sorties  de syst  mes d   exploitation et de    packagings       En terme de march    ces syst  mes sont mis en oeuvre dans des domaines pour lesquels  les calculateurs classiques ne sont pas toujours les mieux adapt  s ou les plus comp  titifs    La soci  t   a par ailleurs d  velopp   et commercialise depuis mai 1998  une gamme de  moniteurs a   crans plats LCD  du 14  VGA au 20  UXGA  r  pondant aux exigences  du march   de l   informatique embarqu  e et industrielle  mat  riaux  tenue aux chocs et  aux vibrations    tanch  it      l   eau et    la poussi  re  ergonomie         1 3  Positionnement March      IRTS travaille en partenariat avec des soci  t  s de services  de grands int  grateurs  et des syst  miers afin de satisfaire dans les meilleures conditions    la demande de ses  clients et de proposer les solutions les mieux adapt  es    leurs besoins     Le march   du logiciel libre   Le logiciel libre repose essentiellement sur la GNU  General Public Lice
53. t  me  d exploitation embarqu      4 1  Embarqu        De plus en plus d   objets quotidiens embarquent avec eux de l intelligence  Un ordi   nateur embarqu   se d  finit g  n  ralement par le fait qu   il n   est pas visible en tant que  tel  mais est int  gr   dans un   quipement dot   d   une autre fonction  on dit aussi que le  syst  me est enfoui  ce qui traduit plus fid  lement le terme anglais embedded    Un inventaire    la Pr  vert serait n  cessaire pour citer les syst  mes informatiques  embarqu  s que nous utilisons quotidiennement   gestion de l   ascenseur  auto radio  cal   culateur d air bag     distributeur de boissons  routeur Internet ou t  l  phonique  t  l  phone  mobile  distributeur de billets  une console de jeux  une carte graphique  bient  t un raton  laveur car le chien   lectronique existe d  j           Nous voyons bien que les contraintes  impos  es    tous ces syst  mes ne sont pas les m  mes   qu   y a t   il de commun entre un  satellite et une imprimante     part le fait de contenir des processeurs     On peut classer les acteurs de l   informatique embarqu  e suivant de multiples crit  res      Secteur d activit      quipements scientifiques Performances  fiabilit    co  t    quipements militaires et a  rospatiaux   Performances  fiabilit    p  rennit    int  gration       7 es  7 7  Transports Fiabilit    co  t  interactivit    7  7  7    7    Ceci implique une diversit   certaine des architectures mat  rielles          4 1 1  Architectures
54. t disponibles   testcom c et com _ posix c   documents    RTLDIR drivers rt_com rt_com html   README RTL     Driver mbuff   pilotant  dev mbuff qui est le p  riph  rique de m  moire partag  e   document    RTLDIR drivers mbuff MANUAL     Module IPC   Permettant d utiliser semaphores  d   exclusion mutuelle et    compte    queues de messages et suppl  ment de fonctionnalit  s pour les RT FIFO   mode  bloquant et timeouts   document    RTLDIR s  maphores README     5 4 2  Utilisation du port parall  le    La meilleure fa  on de se familiariser avec un syst  me temps r  el est quand m  me de  l utiliser pour sa raison d     tre   interaction avec le    monde r  el     Or  quelle interface avec  l ext  rieur est mieux adapt  e que le port parall  le pour faire des entr  es   sorties num     riques   Disponible sur la plupart des PC il est simple    programmer   on peut n  anmoins  s initier    l   utilisation de deux modes de fonctionnement   polling et interruptions tout  en mettant en pratique les fonctions primordiales de API RTLinux  Attention toutefois     ne pas endommager le composant car il est implant   sur la carte m  re   un court circuit  ou une mauvaise alimentation en 5V pourrait gravement l   endommager     La mani  re la plus simple de mesurer l     tat de la broche ACK du port parall  le est  de cr  er une t  che p  riodique qui se charge de lire l     tat du bit  Quand on d  tecte que  la valeur a chang    on envoie un message    un processus Linux par l   inter
55. te   functions applied on both relay ports  word   wise bit manipulation    cmd DIGITAL_INPUT   read differential digital inputs  result stored at address in   dicated by the arg parameter     CHANGE PORT  BOTH PORTS and DIGITAL INPUT are unsigned char  u8  va   lues declared on com h       com h       ioctl   cmd constants      define CHANGE_PORT OxA1    define BOTH_PORTS O0xA2    define DIGITAL_INPUT 0xA3    Argument parameters  arg     The arg parameter is used  on the one hand  to select a port when the CHANGE PORT  command is used  on the other hand  to get back the value of the digital input channels     Selecting port constants In com h header file      ioctl   arg constants      define PORT1 0   define PORT2 1    Example   want to read port2 relay state      38    u8 buffer     u8   byte wise variable     unsigned char       int err  n     err ioctl  fd  CHANGE_PORT  PORT2     if  err    0     n   read  fd   amp buffer  sizeof  buffer      if  n  gt  0  rtl_printf  port2 Ox x n   buffer        Reading the digital input channels I decided to use an ioctl   call to read these I O  ports instead of adding another device  Although it can be done easily    The command  used is DIGITAL INPUT to signal the driver it has to read its digital input channels  and to get back the value in the result buffer    Note that the result buffer must be sized according to the number of port  you want to read  byte wise for an only port reading  word wise for a dual  port reading     Examp
56. te car elle impl  mente un select     m     canisme d     coute sur les deux RT FIFO ouvertes  charg  es de communiquer avec  ce processus Linux     Ex  mesurements   Calcule la latence min et max  donc la gite jitter    max ensemble  des max min     Une t  che temps r  el p  riodique est lanc  e  on r  cup  re le temps  pr  vu pour l   ordonnancement et le temps d   horloge  au moment de ce changement  de contexte  En faisant la diff  rence des deux  on trouve le temps de latence     Ex  regression   Comme dans l   exemple pr  c  dant  il s   agit ici de mesurer le temps de  latence de diff  rentes fagons  Le module est charg   en prenant pour base de temps   soit un timer RTLinux  soit directement lhorloge temps r  el  RTC  du PC  Le  temps   coul   fait claquer une interruption prise en compte par le handler qui  calcule la latence et l   affiche ou la transmet 4 un processus Linux de pr  sentation   Les interruptions prises en compte sont soit mat  rielles dans le cas de l   utilisation  de la RTC  soit logicielles   utilisation de timers temps r  el     Ex  sound   Mise en place d   un handler pour les interruptions provenant de l   horloge  temps r  el du PC  RTC real time clock   pr  alablement programm  e  Le handler  se charge d   allumer ou   teindre le haut parleur du PC en fonction du niveau des    chantillons re  us par la RT FIFO  En effet  un fichier au format   au est envoy    au processus temps r  el qui r  cup  re  dans la fifo  un   chantillon de 8 bits    
57. tion    logiciel pr  pond  rant     1 2 2  Ing  nierie d Etude et de D  veloppement    Le savoir faire de la soci  t   dans ce domaine r  side dans sa capacit      assembler  des syst  mes multi cartes  parfois multi CPU et multi OS  Sous l   aspect mat  riel  les  standards maitris  s par JRTS sont relatifs aux architectures VME et PCI d  clin  es  sous leurs diff  rents facteurs de formes  simple et double Europe  Compact PCI  PMC   PICMG     Sous l   aspect logiciel  l   int  gration de solutions s   op  re sous des syst  mes d   exploita   tion Unix  AIX  Solaris  Linux   Windows NT ou temps r  el  LynrOS  VrWorks   Les  d  veloppements correspondants concernent la r  alisation de drivers unitaires de cartes   E S  r  seaux  video  etc         implantation de protocoles sp  cialis  s ou encore l   assis   tance    l   int  gration d   applications    La soci  t   a pour objectif de d  velopper ses activit  s autour des logiciels libres  il  lui faut donc   valuer de tels produits pour pouvoir proposer    ses clients une solution  logicielle    base de RTLinux ou BlueCat Linux    C   est dans cette partie de la soci  t    que s   est d  roul   mon stage chez IRTS     1 2 3  R  alisation de syst  mes d  di  s et Technologies  Informatiques    En compl  ment de ses activit  s de services et d   ing  nierie  ZRTS se positionne comme    quipementier informatique et fournisseur de produits COTS  COTS Products   Com   mercial On The Shelf  ou de syst  mes  temps r  el    d  di  
58. train d   crire  espace RT ou Linux   noyau utilisateur   Un sch  ma est toujours utile dans de telles situations       Fic  5 3      Fonctionnement du pilote de carte PDISO16 dans l   environnemnt RTLinux     5 6  Portage et test d   un pilote carte son    Pour ce driver il a fallu mettre en oeuvre beaucoup plus de notions de temps r  el  La  partie documentation a donc   t   cons  quente pour l   approche du signal sonore trait   par  une carte son dans un environnement GNU Linux puis pour les changements    apporter  en vue d   un comportement d  terministe     5 6 1  Le son sous GNU Linux    Th  orie     Le son est un ph  nom  ne analogique   il se traduit par une valeur quelconque sur une    chelle continue  Les ordinateurs fonctionnent en num  rique   ils utilisent des valeurs  discr  tes    Les cartes son fonctionnent gr  ce    un composant appel   Convertisseur Analogique   Num  rique  A N ou ADC en anglais  afin de convertir les tensions correspondantes aux  ondes sonores analogiques en valeurs num  riques qui peuvent alors   tre stock  es dans la  m  moire de l ordinateur  De m  me  un Convertisseur Num  rique Analogique  N A ou  DAC en anglais  convertit les valeurs num  riques en une tension analogique qui peut  alors   tre amplifi  e pour  attaquer  un haut parleur et produire du son      La conversion analogique num  rique    chantillonnage ou  sampling  en anglais  g     n  re des erreurs  Deux facteurs d  terminent la qualit   du signal   chantillonn   par rap
59. uction    Le monde des Linux temps r  el profite de la popularit   du syst  me d   exploitation  GNU Linux  Il b  n  ficie donc de l immense base de documentation que repr  sente Inter   net  D   autre part  sa particularit   et son exploitation dans des conditions bien pr  cises  de l informatique industrielle lui conf  re une place bien    part du grand tumulte Linux   Cette place    l     cart ne l emp  che pas de faire parler de lui    Plusieurs initiatives ont vu  le jour pour adapter Linux au temps r  el    dur        5 1 1  Les signes avant coureurs d   un succ  s    venir          Le march   de l   embarqu   en pleine explosion du fait de la croissance des    Internet  appliances      Mais attention  embarqu   ne veut pas dire    coup s  r temps r  el        Les grandes entreprises historiques du monde Linux s   int  ressent de pr  s au temps  r  el   RedHat http    www redhat com rach  te Cygnus http   sourceware cygnus   com  Lineo http   www lineo com rach  te Zentropix http   www zentropix   com          Pareillement  Lynx http   www lynx com s   inscrit dans une politique fortement  orient  e vers Linux   BlueCat http   www bluecat com et LynxOS 4 0       Les autres acteurs de l   informatique embarqu  e   temps r  el plaident en faveur  d   un rapprochement ou d   une compl  mentarit   entre leur syst  me propri  taire et  Linux 5   On peut    cette occasion citer QNX http   www qnx com qui a  ces  derniers mois  rapproch   sa strat  gie de celle des logiciels l
60. ur une voie  mono  ou deux  st  r  o   voire plus  8  16     pour des cartes  professionnelles     Les pilotes de carte son utilisent des m  canismes bien particuliers pour fournir  au  bon moment  les   chantillons n  cessaires au convertisseur de la carte       5 6 2  pourquoi le son requiert un comportement temps r  el      Quelques petits calculs s   imposent    cet endroit de la discussion  en effet  il faut  savoir quel est le d  bit de donn  es    transf  rer dans la carte son  pour que celle ci puisse  avoir l     chantillon qu   il lui faut au bon moment  Un   chantillon manque  se produit alors  un    cr  pitement    du signal sonore    D  bit     dynamique   fr  quence d     chantillonnage   nombre de voies       Signal    8kHz cod   sur 8 bits mono   8000 1 1   8000 octets s         Signal    44 1kHz cod   sur 16 bits st  r  o   44100 2 2   176400 octets s  format   qualit   CD      Avec le d  bit de donn  es et la taille du buffet  allou   au stockage  on peut d  duire  la fr  quence    laquelle il faut remplir le buffer  probl  me classique de la baignoire qui  se vide    d  bit constant  cher    tous les coll  giens      2soit 4 5Mo pour 10mn de musique   3Soit 100Mo pour 10mn de musique     Heureusement qu   il existe des syst  mes de compression pour  les fichiers sonores   Mais ceci n   est pas notre propos       buffer en anglais et dans la suite de mon propos     29    Il ne faut pas de d  lai entre la fin d   un paquet d     chantillons contenus dans un  
61. us PPC    Power PC processeur d  velopp   conjointement par IBM et Motorola     RTAI   Real Time Application Interface  interface applicative temps r  el     RTLinux   Real Time Linux  Linux temps r  el     RTOS   Real Time Operating System  Syst  me d   exploitation Temps R  el       SMP   Symmetric Multi Processing  Architecture d   ordinateur    base de multiples pro   cesseurs travaillant en parall  le     x86   Processeur compatible avec le jeu d   instruction de l Intel 8086     33    Troisi  me partie      Annexes    34    RT Linux device driver for Computer  Boards CIO PDISO16 digital 1 O  board    Introduction    The CIO  PDISO16 is a digital I O board that has 2 8 relay channels and 2 8 digi   tal inputs  It is designed for control and sensing applications where a few points of high  voltage need to be sensed or controlled  The 16 outputs are electromechanical relays   The contacts are rated at 6A   120V A  C  or 28V D  C   resistive load  The relays are  controlled by writing to two 8  bit ports  The state of the relays may be determined by  a read from the control port address  There are 16 individual  optically isolated  500V   inputs that may be read back as two 8  bit bytes  The inputs are not polarity sensitive  and may be driven by either A  C   50   1000 Hz  or D  C  in the range 5V   24V   Programming is accomplished by writes and reads to the 8  bit ports  Each bit indicates  the state of an input or controls an output  Pdisol6 is the RT Linux device drive
62. uvre                        Conclusion    Dossier Technique    GNU Linux comme syst  me d exploitation embarqu    Lil Empargu   T padoe arte Latine Ms tapes 2 Morale ee Weave bee  4 1 1  Architectures mat  rielles                             4 2  Pourquoi GNU Linux     i  dns pe dee Rh we ee cine des  Ds less Avantages a DR BS Ne Ge BS At Rv ne Baas Dike Ge ee  ADD  INCOnVeTIenis lt  Puits op Atk eae eae Rates Sa Lans  4 2 3  Embarqu     temps r  el    ee ks mardis Se Se eS we 44   4 3  Distributions et outils      eal tele     ala tele  amp  fare SE alae oe one  4 3 1  Divers projets libres 5e Li se Ass sis So oe  4 3 2  Solutions d entreprises commerciales                      il    wo N             ND bw    QO A    4 3 3  Les utilitaires de taille r  duite                4 3 4  Outils documentaires                        5  Les Linux Temps R  el    9 1     9 2     5 3   5 4     5 5   5 6     Tntrod  uction nes y ne a Bae ons ae So ee eee res  5 1 1  Les signes avant coureurs d   un succ  s    venir            led  TO Ch Oe Mers nano ne Ne NE a ye BG Fans  5 1 3  Portail web pour le monde des Linux temps r  el          5 1 4  Les sites des    distributions    historiques            RTLinux   Architecture                           5 2 1  Composants du syst  me                    5 22  RI Linux et POSIX 3 6 38 Ge Sub a Eds ati  AAS GUE ONL  8 sce ao ened Se ce RP A Ne CRE Us  Prise   n main Liber Pe ed ek ee hs eS See Goh one  Dalle CEXEmpleS Sen SE eae ale Se ei ogg Mids Sos
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
CAD-0208 Series Communication Appliance  Apple i-clicker Mouse User's Manual  Corsair H2100    USER MANUAL  Transient Test System      Freedom 6000 - Manual  User Manual    Copyright © All rights reserved. 
   Failed to retrieve file