ARM 7/9 - Conception système

(ref.002879A)

4 jours

Objectifs

  • Cette formation traite en détails les particularités des cœurs ARM, aussi bien logiciel que matériel dans le but de facilité la mise en oeuvre de cœurs des famille ARM7TDMI et ARM9TDMI.
  • Elle est destiné aux :
    • Ingénieurs logiciel qui veulent non seulement obtenir des détails sur la façon d’écrire un logiciel pour processeur ARM, mais qui souhaitent également comprendre l’implémentation matériel des cœurs au sein d’un microcontrôleur
    • Ingénieurs matériel qui ont besoin de comprendre comment concevoir des systèmes basés sur ARM mais également être capable de comprendre les bases de la programmation logicielle sur ces plates-formes

Partenaires

ARM

Prérequis

  • Une compréhension de base des microprocesseurs et microcontrôleurs est utile mais non indispensable
  • Une compréhension de base de la logique numérique est utile mais non indispensable
  • Une compréhension de base de la programmation en assembleur ou en langage C est utile mais non indispensable
  • Des notions sur les cœurs ARM sont utiles mais non indispensables

Configurations

  • Pour les formations sur site, les travaux pratiques peuvent etre effectués sous les environnements suivants : Keil DS-5, Keil μVision, GNU/Lauterbach simulator, or IAR Workbench
  • Pour les formations inter-entreprises, les travaux pratiques se font sous Keil µVision

Contenu

Vue générale d’ARM

Modes de fonctionnement ARM

L’ensemble des registres ARM,

Program Status Registers

Gestion d’exception, table des vecteurs, commutation automatique en mode ARM

Ensembles d’instructions : branchement et sous-routines

Signaux cœur ARM7TDMI

Diagramme block ARM7TDMI

Le pipeline d’instruction du ARM7TDMI

Interface mémoire ARM7TDMI

Chemins de données ARM9TDMI

Pipeline ARM9TDMI

Utilisation des outils « cœur »

Caractéristiques clefs des compilateurs C/C++

Librairies fournies

Exécution conditionnelles et drapeaux

Instructions de branchement

Registre à décalage

Constantes immédiates

Transfert de registre simple

Transfert de blocks de registres

Gestion de la pile

Instructions coprocesseur

Accès aux registres en mode Thumb

Nouvelle instructions de l’architecture v5TE

TPs langage assembleur

Commutation entre états

Exemple de Branch & Exchange

Inter-opérabilité ARM/Thumb

Veneer ARM vers Thumb

Veneer Thumb vers ARM

Instructions de sortie d’exception

Priorité des exception

Instructions de la table des vecteurs

Enchaînement d’exceptions

Utilisation des registres dans un gestionnaire d’exception

FIQ vs IRQ

Exemple de gestionnaire d’interruption en C

Contrôleur d’interruption

Problème de démasquage d’interruption

Imbrication d’interruption

Utilisation du SWI

Data Abort et gestion de la mémoire

L’adresse de retour

Les bases du cache, associativité, verrouillage de cache

Le model programmeur

Vidage du cache

Tampon d’écriture, stratégie d’écriture

Gestion de la mémoire, translation d’adresse virtuelles vers physiques

TLB et tables de translation, descripteurs niveau 1 et niveau 2

Protection mémoire, configuration de la MPU

Coprocesseur de control système

Tightly Coupled Memory

Optimisation automatique

Re-ordonnancement des instructions

Tail-call optimization

Passage de paramètre

Access à des tableaux ou structures

Fin de boucle

Opération de division

Assembleur embarqué

Utilisation de la pile

Gestion des variables globales

ROM/RAM remapping

Table des vecteurs d’exceptions

Gestionnaire de Reset

Initialisation : pointers de pile, zone code et données

Initialisation de la librairie C

Fichier de configuration du linker

Long branch veneers

Fonctionnalités de la librairie C

Positionnement de la pile et du tas

Débogage d’images ROM

Intérêt de la spécification

Exemple typique de système basé sur l’interconnexion AMBA

Différences entre AMBA 2.0 et AMBA 3.0

Décodage d’adresse centralise

Address gating logic

Arbitrage de bus, parcage de bus

Transactions data simple

Transferts séquentiels

Réponse de type retry

Réponse de type split

Spécification AHB-Lite

Chronogramme de lecture

Chronogramme d’écriture

Interconnexion AHB vers APB

Nouvelles fonctionnalités de l’APB 3.0

Debogage avec multiICE

Watchpoints, points d’arret matériels et logiciels

Debug Communication Channel

Semihosting

EmbeddedICE-RTT logic

Traçage temps-réel

Trace instruction et trace data

Capture de trace

Notes

  • Les supports de cours seront fournis sur papier à chaque participant pendant la formation.