- p. 1/42
MAC-TC: programmation d’un plate formeDSP-FPGA
Tanguy Rissetavec l’aide de: Nicolas Fournel, Antoine Fraboulet,
Claire Goursaud, Arnaud Tisserand
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 2/42
Plan
■ Partie 1: le système Lyrtech◆ Introduction systèmes embarqués◆ Introduction system on chip (exemple Da Vinci)◆ Programmation d’un système de calcul embarqué◆ Architecture et chaîne de compilation de la carte Lyrtech◆ Un exemple simple sur la carte
■ Partie 2: Conception de circuit◆ Présentation des architectures FPGA◆ Rappel sur les circuits intégrés◆ Présentation rapide de Vhdl
Introduction aux systèmes
embarqués
● Économie des
semi-conducteurs● Part de marché
● importance des CPUS
embarqués
● Variété des processeurs
embarqués
● Les CPUs utilisés pour
l’embarqué
● En résumé
System on Chip
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 3/42
Économie des semi-conducteurs
Un poids croissant dans l’économie■ Rapport de coût exponentiellement décroissant depuis 40
ans :◆ 1 Mbit de mémoire en 1973 : 75000 Euros◆ 1 Mbit de mémoire aujourd’hui : 0,05 Euros
■ Extension prévisible◆ Marchés émergents (Asie)◆ Technologie pervasive
■ 1/20éme de la valeur d’un téléviseur en 1960,■ 1/6éme aujourd’hui■ 15% de la valeur d’un PC en 1990,■ 40% aujourd’hui
Introduction aux systèmes
embarqués
● Économie des
semi-conducteurs● Part de marché
● importance des CPUS
embarqués
● Variété des processeurs
embarqués
● Les CPUs utilisés pour
l’embarqué
● En résumé
System on Chip
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 4/42
Part de marché
■ Quel est le le microprocesseur le plus vendu ?◆ Réponse classique: "Le Pentium: 92% du marché"
■ Faux!......◆ En fait les Pentium ne représentent que 2% des
microprocesseurs vendus dans le monde.
Introduction aux systèmes
embarqués
● Économie des
semi-conducteurs● Part de marché
● importance des CPUS
embarqués
● Variété des processeurs
embarqués
● Les CPUs utilisés pour
l’embarqué
● En résumé
System on Chip
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 5/42
Part de marché
Introduction aux systèmes
embarqués
● Économie des
semi-conducteurs● Part de marché
● importance des CPUS
embarqués
● Variété des processeurs
embarqués
● Les CPUs utilisés pour
l’embarqué
● En résumé
System on Chip
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 6/42
importance des CPUS embarqués
Chip Category Number Sold
Embedded 4-bit 2000 million
Embedded 8-bit 4700 million
Embedded 16-bit 700 million
Embedded 32-bit 400 million
DSP 600 million
Desktop 32/64-bit 150 millionSource: David Tennenhouse (Intel Director of Research).Keynote Speech at the 20th IEEE Real-Time SystemsSymposium (RTSS’99), December 1999
Introduction aux systèmes
embarqués
● Économie des
semi-conducteurs● Part de marché
● importance des CPUS
embarqués
● Variété des processeurs
embarqués
● Les CPUs utilisés pour
l’embarqué
● En résumé
System on Chip
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 7/42
Variété des processeurs embarqués
■ Les applications sont plus variées que pour les ordinateurs■ Beaucoup de processeurs embarqués sont des processeurs
de bureau qui n’ont pas percés (MIPS, 68K, SPARC, ARM,PowerPC)
Introduction aux systèmes
embarqués
● Économie des
semi-conducteurs● Part de marché
● importance des CPUS
embarqués
● Variété des processeurs
embarqués
● Les CPUs utilisés pour
l’embarqué
● En résumé
System on Chip
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 8/42
Les CPUs utilisés pour l’embarqué
32-bit Family Number Sold
ARM 151 million
Motorola 68k 94 million
MIPS 57 million
Hitachi SuperH 33 million
x86 29 million
PowerPC 10 million
Intel i960 8 million
SPARC 3 million
AMD 29k 2 million
Motorola M-Core 1 millionsource: T. R. Halfhill. Embedded Market Breaks New Ground.Microprocessor Report, January 2000
Introduction aux systèmes
embarqués
● Économie des
semi-conducteurs● Part de marché
● importance des CPUS
embarqués
● Variété des processeurs
embarqués
● Les CPUs utilisés pour
l’embarqué
● En résumé
System on Chip
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 9/42
En résumé
■ Secteur très important économiquement, spécialement enRhônes Alpes avec ST-microelectronics, le CEA, Minatech,l’usine Crolles II etc.
■ La loi de Moore est toujours vraie (bien qu’en ralentissementprogressif)
Évolution des circuits intégrés 1970 2000
prix 106 transistors 10 000$ 1$
Taille d’un masque 12 mm2 200 mm2
taille de gravure 10 µm 0.15 µm
nombre de couche de métal 1 8
Transistors par puces 2 300 64 000 000
■ Aujourd’hui: conception de systems on chip (SOC)■ Demain:
◆ MPSoC (100 processeurs sur une puce)◆ Nanotechnologies(électronique moléculaire)
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 10/42
Qu’est ce qu’un SoC
■ "System" : une collection d’éléments en interaction.■ "On Chip" : sur un seul circuit.■ Mais tous les circuits intégrés ne sont pas des SOC, Un
SOC implémente une fonction "complète"◆ Décodeur MPEG2 vidéo + audio + système + transport +
graphique + interface utilisateur◆ Terminal GSM : tout sauf la RF
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 11/42
Exemple de Soc: Da Vinci (TMS320DM6446)
■ Un DSP VLIW C64x■ Un ARM 9 (control du DSP)■ Un sous-système de communication vidéo (VPS)■ Toute une série de pérphérique■ Déjà utilisé dans de nombreux produits:
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 12/42
Architecture Da Vinci
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 13/42
Les technologies employées
■ Technologie: une façon d’accomplir un tâche en utilisant desprocédés techniques, des méthodes ou de la connaissance.
■ Quatres technologies clés pour les systèmes embarqués:◆ Processeurs◆ Circuits intégrés◆ Conception◆ Logiciel (programmation, compilation, OS)
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 14/42
Technologie clé: Processeurs
■ Grande variété d’architecture de processeurs■ Un processeur n’est pas nécessairement programmable■ On distingue généralement
◆ Les processeurs à usage généraux (GPP)◆ Les processeurs spécifiques à certaines applications
(Application Specific Processor, ex: DSP)◆ les processeurs dédiés à une tache (single purpose
processor, ASIC)
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 15/42
Processeurs à usage général
■ Processeur programmable utilisé pourde nombreuses applications (aussiappelé microprocesseur)
■ Caractéristiques◆ Une mémoire pour le programme◆ Un chemin de donné (datapath)
généraliste comprenant un unitéarithmétique et logique (ALU)puissante et un gros banc de registre
■ intérêt :◆ Time to market et coût◆ flexibilité
■ Exemple: Pentium, PowerPC, ARM,MIPS, etc.
Control logic and
State registers
PCIR
Program memoryAssembly code
General ALU
Register File
Datapathcontroller
Data memory
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 16/42
Processeurs dédiés
■ Circuits intégrés destinés à exécuterexactement un programme:coprocesseur, accélérateur matériel oupériphérique.
■ caractéristiques:◆ Contient seulement les composants
nécessaires à l’exécution duprogramme concerné
◆ en général pas de mémoire deprogramme
■ Intérêt :◆ Rapidité◆ Faible consommation◆ Surface
■ Exemple: unité de calcul flottant,contrôleur USB, PCMCIA, decoderMPEG, etc.
Control logic
controller
Data memory
DatapathDedicated
State registers
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 17/42
Processeurs spécifiques
■ Processeur programmable optimisépour une classe particulièred’applications (ASIP: ApplicationSpecific Integrated Processor).
■ Caractéristiques:◆ Mémoire de programme◆ Chemin de donnée optimisé◆ Unités fonctionnelles spécifiques
■ Intérêt :◆ Flexibilité◆ performances: surface, rapidité,
consommation■ Exemple: DSP, micro-controleur
(processeur 4bits, 8bits).
Control logic and
State registers
PCIR
Program memoryAssembly code
Register File
Datapathcontroller
Data memory
Dedicated ALU
Introduction aux systèmes
embarqués
System on Chip
● Qu’est ce qu’un SoC
● Exemple de Soc: Da Vinci
(TMS320DM6446)● Architecture Da Vinci
● Technologie clé: Processeurs
● Technologies clé: logiciel
Programmation systèmes
embarqués
Présentation carte Lyrtech
- p. 18/42
Technologies clé: logiciel
■ Logiciel embarqué: domaine en pleine explosion◆ Aujourd’hui le développement d’un SoC demande plus de
travail logiciel que matériel◆ En Rhône-Alpes EmSOC : Embedded System On Chip.
Regroupement académiques-industriels au sein du pôlesde compétitivité Micro-nanotechnologies (Grenoble).
◆ Très faible standardisation (logiciel proprietaire, firmware)■ Systèmes d’exploitation embarqués
◆ Contraintes spécifiques: petite taille, contrainte temps réèl◆ Encore assez peu utilisés
■ Compilation pour systèmes embarqués◆ Compilation très optimisée (code exécutable embarqué)◆ Contraintes spécifique: taille de code, accès mémoire
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 19/42
Programmation systèmes embarqués
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 20/42
Le code embarqué
■ Programmation d’architecture exotiques (DSP, VLIW,microcontroller)
■ Programmation mixte langage haut niveau / assembleur
■ Écriture de pilotes (driver)■ Code exécutable embarqué souvent non modifiable■ Durée de vie longue■ Compromis difficile entre ré-utilisabilité et performances
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 21/42
Compilation et interprétation
Langage de haut niveauint a,b,c;a = b + c;
Assembleurload R0, @bload R1, @cadd R3,R0,R1store R3, @a
Binaire01001011...1010101001010...10001
...10010011...00011
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 22/42
Chaîne logicielle
code asmassembleur
obj
liensédition des
exechargement
compilateur
Simulation
Exécution
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 23/42
Systèmes d’exploitation
■ Soit pas de système◆ Boucle infinie
■ Soit un système leger◆ Windows CE◆ Wind River VxWorks◆ Symbian◆ Qnx◆ Green Hills Integrity◆ Linux, µcLinux, RTLinux . . .
■ Sur la plate forme lyrtech:◆ Pas d’os sur le DSP◆ Integrity sur l’Arm pour la gestion de la plate-forme
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 24/42
Systèmes d’exploitation
■ Système applicatifs : API de manipulation de matériel, uneseule application
■ Systèmes à commutation de tâches : temps partagé entreplusieurs programmes◆ coopératif, préemptif◆ tables des tâches statique / dynamique◆ gestion de priorité / temps réél
■ Ajout d’une interface homme-machine◆ Prise en compte des interactions, interruptions
■ Ajout d’un système de fichier / support de stockage◆ Possibilité de rajouter des programmes (et de les charger)
■ Ajout d’une topographie mémoire (segmentation /pagination)◆ mémoire virtuelle◆ protection mémoire entre applications→ Unix
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 25/42
Systèmes multitâches
■ Coopératif◆ L’application “rend la main”
■ Appels système bloquants (mutex par exemple)■ Demande explicite
■ Préemptif◆ Un timer matériel génère une interruption périodique◆ Le rôle du gestionnaire d’interruption est de choisir le
prochain processus à être exécuté■ Gestions de priorité■ Notions de temps réel
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 26/42
Interconnexion des Entrées / Sorties
proc. mémoire
■ Comment accéder aux différents périphériques connectéssur le bus?
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 26/42
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
■ Comment accéder aux différents périphériques connectéssur le bus?
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 27/42
Interconnexion des Entrées / Sorties
Choix architecturaux:■ Instructions d’E/S
◆ Instructions spéciales (in, out)◆ Espace d’adressage séparé de la mémoire de données◆ Exemple : intel x86
■ E/S mappées en mémoire◆ Une tranche d’adresse est allouée à chaque périphérique◆ Utilisation des instructions de lecture, écriture◆ Cas le plus souvent rencontré
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 28/42
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 28/42
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Lecture à l’adresse 0x0000FC
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 28/42
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Lecture à l’adresse 0x0000FC
1:
2:
0x00000C0x00FFFC
0x02000FC0x020FFFC
......
0x025FFFC0x02300FC3: 5 4 3
21
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 28/42
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Lecture à l’adresse 0x0000FC
1:
2:
0x00000C0x00FFFC
0x02000FC0x020FFFC
......
0x025FFFC0x02300FC3: 5 4 3
21
1: 0x00000C0x00FFFC
2: 0x02000FC0x020FFFC
3: 0x02300FC0x025FFFC
......
1
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 28/42
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Ecriture à l’adresse 0x02301FF
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 28/42
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Ecriture à l’adresse 0x02301FF
1: 0x00000C0x00FFFC
2: 0x02000FC0x020FFFC
3: 0x02300FC0x025FFFC
......
5
1
4
2
3
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 28/42
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Ecriture à l’adresse 0x02301FF
1: 0x00000C0x00FFFC
2: 0x02000FC0x020FFFC
3: 0x02300FC0x025FFFC
......
5
1
4
2
3
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 29/42
Interconnexion des Entrées / Sorties
Rôle de l’arbitre de bus (contrôleur) :■ Gérer les accès si plusieurs composants veulent écrire
simultanément sur le bus■ Gérer la destination des écriture en fonction des adresses
◆ Le contrôleur connaît donc la cartographie mémoire(mapping) distribuée entre les composants
◆ Cette carte mémoire est définie lors de la conception dusystème
■ Le logiciel doit connaître ces adresses pour accéder auxpériphériques et les contrôler
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 30/42
Mapping Memoire de la carte Lyrtech
■ Connaître le mapping mémoire de Da Vinci■ Connaître les connections sur la carte (schéma de la carte),
pour accéder au périphériques hors du SoC (FPGA parexemple).
■ SFF SDR EVM-DP - Users guide.pdf (p16):DMP SoC memory map
Adress range Description
0x02000000-0x02FFFFFFF NAND Flash memory
0x04000000-0x04FFFFFFF FPGA
0x04000000-0x04FFFFFFF DDR2 SDRAM
■ Da Vinci datasheet (p 20)Da Vinci memory map
Start Adress end Adress size ARM C64x EDMA
...
0x2000 0000 0x2000 7FFF 32K DDR2 Control Registers DDR2 Control Registers DDR2 Control Registers
0x2000 8000 0x41FF FFFF 544M-32k Reserved Reserved Reserved
0x4200 0000 0x4FFF FFFF 224M Reserved EMIFA/VLYNQ Shadow EMIFA/VLYNQ Shadow
...
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 31/42
Périphériques
registres de
donnée
registres
d’état
électronique
de contrôle E/Sbu
s sy
stèm
e
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 32/42
Périphériques
■ Un périphérique est un bloc pouvant être manipulé parl’intermédiaire de ses registres de contrôle et de données.
■ Il existe différents type de périphériques◆ maîtres : peuvent initier une communication sur le bus◆ esclave : ne peuvent que répondre à une requête de
lecture et/ou d’écriture◆ certains composants peuvent avoir les deux interfaces
(DMA par exemple)
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 33/42
Communication avec les périphériques
Scrutation, attente active■ le processeur est en boucle de lecture sur un registre d’état■ la valeur de ce registre indique si le périphérique peut
accepter une nouvelle lecture ou écriture#define OUT_DATA 0x1000
#define STATUS_REG 0x1001
char s[]="hello.";
char *ptr = s;
while (*ptr != 0) {
write(OUT_DATA,*ptr);
while (read(STATUS_REG) != 0);
ptr++;
}
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 34/42
Communication avec les périphériques
■ Les communications par scrutation sont simples àprogrammer
■ Le débit de transfert des E/S est limité par la vitesse duprocesseur
■ La latence de traitement dépend de la période de scrutationdu périphérique
■ Le processeur prend en charge tout le transfert
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 35/42
Communication avec les périphériques
Mécanisme d’interruptions■ Le périphérique peut signaler au processeur qu’il a fini une
action■ Nécessite un cablâge supplémentaire pour la signalisation■ Une interruption peut arriver à n’importe quel moment dans
le déroulement du programme s’exécutant sur le processeur■ Changements de contextes
1. Terminaison de l’instruction en cours2. Sauvegarde de l’état du processeur3. Exécution du gestionnaire d’interruption4. Restauration de l’état précédent5. Reprise du fonctionnement normal
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 36/42
Communication avec les périphériques
registres de
donnée
registres
d’état
électronique
de contrôle E/Sbus données
interruptionacquittement
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 37/42
Communication avec les périphériques
Programme
utilisateur
Gestionnaire
d’interruption
...
...
arrivée
interruption
...
Changements de contextes
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 38/42
Changement de contexte
La gestion des interruptions nécessite un support duprocesseur.■ Le processeur empile son registre PC et son registre d’état
dans une pile d’exécution à l’adresse [base] et [base+4]■ Le registre CP est modifié pour pointer sur une adresse
prédéfinie : le gestionnaire d’interruption■ Le code ainsi appelé commence par sauvegarder les
registres du processeur dans la mémoirestore r0, [base+8]store r1, [base+12]...store r31, [base+132]
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 39/42
Changement de contexte
■ Le gestionnaire d’interruption peut alors appeler la fonctionprévue pour traiter l’interruption.
■ Lorsque le traitement est terminé, on restaure le contenudes registres sauvegardés dans la pile
■ La dernière action à effectuer est la restauration du registred’état suivie d’un saut à l’adresse [base].
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 40/42
Communication avec les périphériques
■ Les changements de contextes ont un coût non négligeableen nombre de cycles. Il est parfois plus avantageux, pour lespetits transferts de données, de faire de la scrutation.
■ Les interruptions permettent de libérer le processeurs enattendant qu’un périphérique ne se signale
■ Il faut une ligne d’interruption par périphérique■ Ces lignes sont connectées sur un contrôleur
d’interruption◆ mise en place de priorités◆ vectorisation des interruptions : le processeur demande
au contrôleur quelle est le périphérique qui a générél’interruption
■ La mise en place de gestionnaire d’interruption sera tropcomplexe sur la plate-forme Lyrtech, on se contentera defaire de la scrutation (polling).
Introduction aux systèmes
embarqués
System on Chip
Programmation systèmes
embarqués
● Programmation systèmes
embarqués
● Compilation et interprétation
● Systèmes d’exploitation
● Interconnexion des Entrées /
Sorties● Périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques
Présentation carte Lyrtech
- p. 41/42
Periphérique Lyrtech
■ Les périphériques que nous seront amenés à manipuler surla carte Lyrtech (doc SFF SDR EVM-DP - DSP API.pdf)::◆ Les LED, accessibles par les fonctions FPGA_LEDS,FPGA_LEDClear, FPGA_LEDWrite,. . .
◆ Les boutons accessibles par les fonctionsFPGA_ButtonGet, ...
◆ Les port Audio accessibles par les fonctions (pcm3008 estun codec 16 bits de TI: 2 ADC et 2 DAC pouvant convertirdu signal audio entre 8kHz et 48kHz de fréquenced’échantillonnage) pcm3008_SamplingFrequency,pcm3008_Init, pcm3008_RxDma, pcm3008_TxDma
Top Related