wiki:old-bsp-rtems4.6
close Warning: Can't synchronize with repository "(default)" (Couldn't open Subversion repository /var/repositories/svn/etudiants: SubversionException: ("Failed to load module for FS type 'fsfs'", 160033)). Look in the Trac log for more information.

Ancienne BSP

La BSP originale peut se trouver sur xuri dans le répertoire /home/spif/RTEMS/rtems-src/c/src/lib/libbsp/powerpc/spif

Elle doit logiquement être valide, le mieux serait de demander à Gérard Mourret.

La porter

Nous avons donc essayé de porter cette ancienne BSP utilisant les API de RTEMS 4.6/4.5 sur RTEMS 4.7. Voilà les quelques erreurs ou problèmes que nous avons pu rencontrer. Cette liste est plus utilisée pour construire le rapport plus tard et/ou revenir sur quelques points pour améliorer la lisibilité du code.

  • Fonction BSP_irq_enabled_at_cpm fichier irq.c. L'argument de la fonction doit etre désormais de type rtems_rq_number, l'ancien type étant supprimé.
  • CPU_MINIMUM_STACK_FRAME_SIZE et PPC_MINIMUM_STACK_FRAME_SIZE. L'ancien code utilise CPU_MINIMUM_STACK_FRAME_SIZE qui est une constante supprimée de l'API de RTEMS. Maintenant, il faut utiliser des constantes propres au CPU utilisé. Ici, pour powerpc, on remplace par PPC_MINIMUM_STACK_FRAME_SIZE. Il faut rajouter le .h contenant la description de la maccro toutefois.
  • les fichier autoconf/automake : regénérés à partir d'une autre cible, en les modifiant un peu pour s'adapter au code source
  • les types prédéfinis : l'ancienne version de la BSP utilise des types plus ou moins prédéfinis par d'autres BSP dans les vieilles versions. Ces types ont été remplacés. Ce sont majoritairement des types unsigned8, unsigned16, unsigned32 représentant des entiers de 8, 16 ou 32 bits non signés. Pour le moment, création d'un fichier .h rtypes.h contenant la définition de ces types pour ne pas trop modifier le code.
  • fichier de conf spif.cfg à remettre dans l'arbo des source (c/src/make/spif.cfg)
  • suppression de tous les #include <asm.h> en #include <rtems/asm.h>. Beaucoup de place de .h ont changées.
  • modification de irq/irq.h pour modifier la structure rtems_irq_connect_data, rajouter le champs handle et la définition de son type dans le même fichier
  • dans irq.c, remplacer les appels à rtems_hdl_tbl[irq].hdl() par rtems_hdl_tbl[irq].hdl(rtems_hdl_tbl[irq].handle)
  • dans le fichier Makefile.am, rajouter le fichier spif3.c à compiler avec les fichiers de démarrage (startup).
Last modified 11 years ago Last modified on 02/09/07 00:50:49