Changes between Version 81 and Version 82 of WikiStart


Ignore:
Timestamp:
Feb 17, 2011, 10:53:06 AM (15 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v81 v82  
    88
    99L'objectif de ce module est d'analyser en détail le fonctionnement d'un système d'exploitation pour système embarqué. Le cours rappelle brièvement les principaux concepts des systèmes d'exploitation, puis détaille l'implémentation d'un système d'exploitation spécifique pour des architectures matérielles de type SOC (system on chip), c'est à dire constituées d'un ou plusieurs processeurs 32 bits, de mémoire embarquée, et de différents contrôleurs de périphériques mappés en mémoire. On vise donc des systèmes embarqués autonomes capables de contrôler un équipement industriel.
     10Le cours est organisé autour de la réalisation pratique d'un OS embarqué multi-tâches compatible POSIX.
     11
     12Les TME consistent à écrire, à partir de rien ou presque, les différents composants du système d'exploitation. Celui-ci est mis au point en simulation sur un SOC modélisé en SystemC en utilisant la plate-forme de modélisation SoCLib, et composé de 4 processeurs mips32, d'une mémoire, d'un timer, d'un multi-tty (terminal), d'un contrôleur video, d'un contrôleur de disque et d'un dma. La progression que vous allez suivre :
     13
     14 * Un noyau d'OS qui virtualise le processeur, sans communication entre les taches, sans partage de devices mais avec une HAL.
     15 * Ajout des communication intertaches, partage de devices: mécanisme de file d'attente et événements.
     16 * user land : ABI kernel (liste des syscall) + phthread + dietlibc + compilation séparée.
     17 
     18La figure et le tableau ci-après représentent l'architecture du SOC et le placement des mémoires et périphériques dans l'espace d'adressage physique.
     19
     20[[Image(plateforme.png,480px,nolink)]]
     21{{{
     22#!html
     23<table cellspacing="0" cellpadding="3" border="1" summary="Segments">
     24  <tr>     
     25    <td align=center><font size=-2><b>Périphériques</font></td>
     26    <td align=center><font size=-2><b>Segments dans la ROM</font></td>
     27    <td align=center><font size=-2><b>Segments dans la RAM</font></td>
     28  </tr>
     29  <tr>   
     30    <td>
     31      <table cellspacing="0">     
     32      <tr><td><font size=-2> TIMER_BASE     </font></td><td><font size=-2> 0xd3200000 </font></td></tr> 
     33      <tr><td><font size=-2> TIMER_SIZE     </font></td><td><font size=-2> 0x00000080 </font></td></tr> 
     34      <tr><td><font size=-2> ICU_BASE       </font></td><td><font size=-2> 0xd2200000 </font></td></tr> 
     35      <tr><td><font size=-2> ICU_SIZE       </font></td><td><font size=-2> 0x00000020 </font></td></tr>     
     36      <tr><td><font size=-2> DMA_BASE       </font></td><td><font size=-2> 0xd1200000 </font></td></tr> 
     37      <tr><td><font size=-2> DMA_SIZE       </font></td><td><font size=-2> 0x00000014 </font></td></tr>     
     38      <tr><td><font size=-2> TTY_BASE       </font></td><td><font size=-2> 0xd0200000 </font></td></tr> 
     39      <tr><td><font size=-2> TTY_SIZE       </font></td><td><font size=-2> 0x00000040 </font></td></tr> 
     40      <tr><td><font size=-2> BD_BASE        </font></td><td><font size=-2> 0xd5200000 </font></td></tr> 
     41      <tr><td><font size=-2> BD_SIZE        </font></td><td><font size=-2> 0x20       </font></td></tr>   
     42      </table>
     43    </td>
     44    <td>
     45      <table cellspacing="0">
     46      <tr><td><font size=-2> KTEXT_LMA_BASE </font></td><td><font size=-2> 0xbf800000 </font></td></tr>     
     47      <tr><td><font size=-2> KTEXT_LMA_SIZE </font></td><td><font size=-2> 0x00020000 </font></td></tr>     
     48      <tr><td><font size=-2> KDATA_LMA_BASE </font></td><td><font size=-2> 0xbf820000 </font></td></tr> 
     49      <tr><td><font size=-2> KDATA_LMA_SIZE </font></td><td><font size=-2> 0x00020000 </font></td></tr>     
     50      <tr><td><font size=-2> UTEXT_LMA_BASE </font></td><td><font size=-2> 0xbf840000 </font></td></tr> 
     51      <tr><td><font size=-2> UTEXT_LMA_SIZE </font></td><td><font size=-2> 0x00060000 </font></td></tr>     
     52      <tr><td><font size=-2> UDATA_LMA_BASE </font></td><td><font size=-2> 0xbf8A0000 </font></td></tr> 
     53      <tr><td><font size=-2> UDATA_LMA_SIZE </font></td><td><font size=-2> 0x00020000 </font></td></tr>     
     54      <tr><td><font size=-2> BOOT_BASE      </font></td><td><font size=-2> 0xbfc00000 </font></td></tr>
     55      <tr><td><font size=-2> BOOT_SIZE      </font></td><td><font size=-2> 0x00001000 </font></td></tr>   
     56      </table>
     57    </td>
     58    <td>
     59      <table cellspacing="0">
     60      <tr><td><font size=-2> RAM_BASE       </font></td><td><font size=-2> 0x7F400000 </font></td></tr>     
     61      <tr><td><font size=-2> RAM_SIZE       </font></td><td><font size=-2> 0x01000000 </font></td></tr>
     62      <tr><td><font size=-2> KTEXT_BASE     </font></td><td><font size=-2> 0x80000000 </font></td></tr>
     63      <tr><td><font size=-2> KDATA_BASE     </font></td><td><font size=-2> 0x80020000 </font></td></tr>
     64      <tr><td><font size=-2> KDATA_SIZE     </font></td><td><font size=-2> 0x003E0000 </font></td></tr>
     65      <tr><td><font size=-2> USR_TEXT_BASE  </font></td><td><font size=-2> 0x7F400000 </font></td></tr>
     66      <tr><td><font size=-2> USR_DATA_BASE  </font></td><td><font size=-2> 0x7F460000 </font></td></tr>
     67      <tr><td><font size=-2> USR_DATA_SIZE  </font></td><td><font size=-2> 0X00B9F000 </font></td></tr>
     68      <tr><td><font size=-2> &nbsp;         </font></td><td><font size=-2>            </font></td></tr>
     69      <tr><td><font size=-2> &nbsp;         </font></td><td><font size=-2>            </font></td></tr>
     70      </table>
     71    </td>
     72  </tr>
     73</table>
     74}}}
     75||
    1076
    1177== Equipe pédagogique et organisation du module ==
    1278
    13 Les cours ont lieu en salle 42-43 310 le vendredi de 13h30 à 15h30. Les TME ont lieu les jeudi de 13h30 à 17h15 en salle 65-66 406.
     79Les cours ont lieu en salle 112 bâtiment 41, le mercredi de 8h30 à 10h30. Les TME ont lieu les jeudi de 13h30 à 17h45 en salle 65-66 406.
    1480
    1581 * Franck Wajsburt
    1682 * Ghassan Almaless
    1783
    18 == Demarche ==
     84== Cours ==
    1985
    20 Le cours est organisé autour de la réalisation pratique d'un OS embarqué multi-tâches compatible POSIX.
    21 
    22 Les TME consistent à écrire, à partir de rien ou presque, les différents composants du système d'exploitation. Celui-ci est mis au point en simulation sur un SOC modélisé en SystemC en utilisant la plate-forme de modélisation SoCLib, et composé de 4 processeurs mips32, d'une mémoire, d'un timer, d'un multi-tty (terminal), d'un contrôleur video, d'un contôleur de disque et d'un dma. La progression que vous allez suivre :
    23 
    24  * Un noyau d'OS qui virtualise le processeur, sans communication entre les taches, sans partage de devices mais avec une HAL.
    25  * Ajout des communication intertaches, partage de devices: mécanisme de file d'attente et événements.
    26  * user land : ABI kernel (liste des syscall) + phthread + dietlibc + compilation séparée.
    27  * Gestion des fichier, buffer cache.
    28 
    29 [[Image(plateforme.png,650px,nolink)]]
    30 
    31 Le tableau ci-après définit le placement des mémoires et les périphériques dans l'espace d'adressage physique.
    32 {{{
    33 #!html
    34 <table>
    35 <table cellspacing="0" cellpadding="5" border="1" summary="Segments">
    36   <tr>
    37     <td align=center><b>Périphériques</td>
    38     <td align=center><b>Segments dans la ROM</td>
    39     <td align=center><b>Segments dans la RAM</td>
    40   <tr>
    41   <td>
    42   <table>
    43     <tr><td> TIMER_BASE     </td><td> 0xd3200000 </td></tr>
    44     <tr><td> TIMER_SIZE     </td><td> 0x00000080 </td></tr>
    45     <tr><td> ICU_BASE       </td><td> 0xd2200000 </td></tr>
    46     <tr><td> ICU_SIZE       </td><td> 0x00000020 </td></tr>
    47     <tr><td> DMA_BASE       </td><td> 0xd1200000 </td></tr>
    48     <tr><td> DMA_SIZE       </td><td> 0x00000014 </td></tr>
    49     <tr><td> TTY_BASE       </td><td> 0xd0200000 </td></tr>
    50     <tr><td> TTY_SIZE       </td><td> 0x00000040 </td></tr>
    51     <tr><td> BD_BASE        </td><td> 0xd5200000 </td></tr>
    52     <tr><td> BD_SIZE        </td><td> 0x20       </td></tr>
    53   </table>
    54   </td><td>
    55   <table>
    56     <tr><td> KTEXT_LMA_BASE </td><td> 0xbf800000 </td></tr>
    57     <tr><td> KTEXT_LMA_SIZE </td><td> 0x00020000 </td></tr>
    58     <tr><td> KDATA_LMA_BASE </td><td> 0xbf820000 </td></tr>
    59     <tr><td> KDATA_LMA_SIZE </td><td> 0x00020000 </td></tr>
    60     <tr><td> UTEXT_LMA_BASE </td><td> 0xbf840000 </td></tr>
    61     <tr><td> UTEXT_LMA_SIZE </td><td> 0x00060000 </td></tr>
    62     <tr><td> UDATA_LMA_BASE </td><td> 0xbf8A0000 </td></tr>
    63     <tr><td> UDATA_LMA_SIZE </td><td> 0x00020000 </td></tr>
    64     <tr><td> BOOT_BASE      </td><td> 0xbfc00000 </td></tr>
    65     <tr><td> BOOT_SIZE      </td><td> 0x00001000 </td></tr>
    66   </table>
    67   </td><td>
    68   <table>
    69     <tr><td> RAM_BASE       </td><td> 0x7F400000 </td></tr>
    70     <tr><td> RAM_SIZE       </td><td> 0x01000000 </td></tr>
    71     <tr><td> KTEXT_BASE     </td><td> 0x80000000 </td></tr>
    72     <tr><td> KDATA_BASE     </td><td> 0x80020000 </td></tr>
    73     <tr><td> KDATA_SIZE     </td><td> 0x003E0000 </td></tr>
    74     <tr><td> USR_TEXT_BASE  </td><td> 0x7F400000 </td></tr>
    75     <tr><td> USR_DATA_BASE  </td><td> 0x7F460000 </td></tr>
    76     <tr><td> USR_DATA_SIZE  </td><td> 0X00B9F000 </td></tr>
    77     <tr><td> &nbsp;         </td><td>            </td></tr>
    78     <tr><td> &nbsp;         </td><td>            </td></tr>
    79   </table>
    80   </tr>
    81 </table>
    82 }}}
     86 * [htdocs:2011_mi074_1_intro.pdf Introduction]
     87 * [htdocs:2011_mi074_2_hello.pdf Hello World]
     88 
    8389
    8490== TME ==