1 / 69

Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué

Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué. Projet SOLIDOR. Rodolphe Loué. Plan de la présentation. Introduction 1 - Présentation 2 - Objectifs 3 - Mise en œuvre 4 - Perspectives Conclusion. Plan de la présentation. Introduction

bruno-lott
Download Presentation

Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Projet SOLIDOR Rodolphe Loué

  2. Plan de la présentation • Introduction • 1 - Présentation • 2 - Objectifs • 3 - Mise en œuvre • 4 - Perspectives • Conclusion

  3. Plan de la présentation • Introduction • 1 - Présentation • 2 - Objectifs • 3 - Mise en œuvre • 4 - Perspectives • Conclusion

  4. Introduction (1/4) • Applications multimédia • télécommunications Essor des architectures embarquées

  5. Introduction (2/4) Programme Liaison

  6. Introduction (2/4) Programme Liaison

  7. Introduction (3/4) • Modification du programme indépendamment du matériel • Evolution du matériel indépendamment du programme Programme ABSTRACTION MATERIELLE

  8. Introduction (4/4) • mémoire • rapidité d’exécution • coût énergétique Optimisation de l’abstraction matérielle selon les critères :

  9. Plan de la présentation • Introduction • 1 - Présentation • 2 - Objectifs • 3 - Mise en œuvre • 4 - Perspectives • Conclusion

  10. spécification Implantation (modules) Alignements requis M1 M3 DSP C55x M2 M4 SDE Gestionnaire de type Sélecteur de module Critères de conception Projection de langage M1, M2 Interface utilisateur 1 - Présentation (1/2) Gestionnaire de type

  11. 1 - Présentation (2/2) Programme utilisateur Service1 Service2 Service d’allocation Implantation de l’allocation de T Version1 validée Version2 invalidée Implantation2 <T> <référence sur T> Implantation1 Fonction de construction de T MEMOIRE <T> langage2 langage1 SDE spécification Alignement requis Implantation Système d’exploitation

  12. Plan de la présentation • Introduction • 1 - Présentation • 2 - Objectifs • 3 - Mise en œuvre • 4 - Perspectives • Conclusion

  13. 2 - Objectifs • Utilisation des fonctions de construction de type • Création d’information sur le type Rendre le gestionnaire de type polyvalent

  14. Plan de la présentation • Introduction • 1 - Présentation • 2 - Objectifs • 3 - Mise en œuvre • 4 - Perspectives • Conclusion

  15. Les types dans SDE • Type opaque : bloc contigu (opaque(5)) • Type externe : déclaré dans la spécification • Type composé • structure : concaténation de type (struct {...}) • union : superposition de type • simple : taille de sa composante la plus volumineuse (union {...}) • avec sélecteur de type : fonction retournant le type de l’union (union <sélecteur_de_type> {…}) • tableau : ensemble d’éléments indexés d’un type • classique (opaque(1)[2]) • dynamique : fonction retournant la taille de la dimension (opaque(3)[<fonction_de_dimension>])

  16. inversion du type • Propriété :un type est • représenté par un arbre • construit par une grammaire LALR • Type ::= Type_Tableau • Type_Tableau ::= Type Dim • Exemple :type [5][2][7]

  17. inversion du type Type type[5][2][7] Dim Type [7] type[5][2] Dim Type type[5] [2] Dim Type type [5] Interprété par l’analyseur par : type[7][2][5]

  18. légende 1 racine 1 2 3 15 17 structure ou union 2 3 16 18 22 19 4 21 20 tableau 21 20 5 7 8 10 11 opaque 19 22 6 8 7 10 11 23 12 9 13 14 inversion du type

  19. légende 1 racine 1 3 15 17 structure ou union 2 16 18 22 4 21 tableau 20 5 8 11 opaque 19 6 7 10 23 12 9 13 14 inversion du type

  20. Descripteur de la dimension 1 Descripteur de la dimension 2 Tableau dynamique versus fixe Tableau dynamique Tableau fixe Tableau dynamique Tableau fixe 2 1 3 (0,0,0) (0,0,1) (0,1,0) (0,1,1) (1,0,0) (1,0,1) (1,1,0) (1,2,0) (1,2,1) (1,2,2) (2,0,0) (3,0,0) (0,0,0) (0,0,1) (0,1,0) (0,1,1) (0,2,0) (0,2,1) (1,0,0) (1,0,1) (1,1,0) (1,1,1) (1,2,0) (1,2,1) Représentation spatiale Représentation mémoire

  21. Opaque(5) [2][3][<d3>][3]

  22. Opaque(5) [2][3][<d3>][3]

  23. Opaque(5) [2][3][<d3>][3]

  24. d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 Opaque(5) [2][3][<d3>][3]

  25. Légende Emplacement mémoire de taille indéfinie Opaque(5) [2][3][<d3>][3]

  26. Légende Emplacement mémoire de taille indéfinie Opaque(5) [2][3][<d3>][3]

  27. Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur Opaque(5) [2][3][<d3>][3]

  28. d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur Opaque(5) [2][3][<d3>][3]

  29. 0 4 8 12 16 20 24 32 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 40 48 56 64 72 80 88 96 104 112 120 128 136 144 152 160 168 176 184 192 200 208 216 224 232 Opaque(5) [2][3][<d3>][3] Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de la taille d’un opaque(5) aligné

  30. Unions avec sélecteur dans un tableau • Exemple : union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3];

  31. union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3];

  32. union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3];

  33. union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u

  34. union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u

  35. union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2

  36. opaque(8) o2; union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2

  37. opaque(8) o2; union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2

  38. opaque(4) o1; union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2

  39. union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2

  40. sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3];

  41. opaque(8) o2; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3];

  42. opaque(16) o3; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3];

  43. union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; Légende Emplacement mémoire de taille indéfinie

  44. sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur

  45. sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur

  46. sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur

  47. sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de la taille d’un opaque(8) aligné

  48. sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; u Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de la taille d’un opaque(8) aligné

  49. sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; u Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de la taille d’un opaque(8) aligné

  50. sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o2 sel2=Type_o2 sel2=Type_o3 union <sel1> { opaque(4) o1; union <sel2> { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; u Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un opaque(4) aligné

More Related