49
- p. 1/42 MAC-TC: programmation d’un plate forme DSP-FPGA Tanguy Risset avec l’aide de: Nicolas Fournel, Antoine Fraboulet, Claire Goursaud, Arnaud Tisserand

MAC-TC: programmation d’un plate forme DSP-FPGAperso.citi.insa-lyon.fr/trisset/cours/MAC-TC/mac-tc-embedded.pdf · En résumé System on Chip Programmation systèmes embarqués

Embed Size (px)

Citation preview

- 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

Introduction aux systèmes

embarqués

System on Chip

Programmation systèmes

embarqués

Présentation carte Lyrtech

● Présentation carte Lyrtech

- p. 42/42

Présentation carte Lyrtech