ARM - Conception logicielle avec RealView

(ref.002580A)

3 jours - 21 heures

Objectifs

  • L'objectif principal de cette formation est de permettre aux participants de devenir autonomes pour développer du logiciel sur des plateformes ARM 7 et 9
  • Cette formation explique le fonctionnement des pipelines des ARM7 et ARM9
  • Les travaux pratiques apportent une introduction approfondie aux outils de développement logiciel ARM et Keil
  • Le jeu d'instructions ARM est couvert en détails
  • Cette formation couvre les principes d'utilisation des caches
  • L'interworking ARM/Thumb est décrit
  • Les solutions de débug sont détaillées afin que les participants sache les exploiter pleinement

Partenaires

ARM

Prérequis

  • Des connaissances de base des architectures de microporcesseurs et microcontroleurs est recommandée mais pas indispensable
  • Des notions de programmation en assembleur et en langage C sont recommandées
  • Des notions de base des architectures ARM sont utiles mais pas indispensables

Configurations

  • Pour les formations sur site, les travaux pratiques peuvent se faire avec les environements de développement suivan : Keil DS-5, Keil μVision, GNU/Lauterbach simulator, or IAR Workbench
  • Pour les formations publiques, les travaux pratiques sont fait en utilisant Keil μVision

Contenu

Présentation de ARM

Modes de fonctionnement ARM

Jeux de registres

Program Status Register

Gestion d'exception, table de vecteurs

Jeux d'instructions

Signaux cœur ARM7TDMI

Diagramme block ARM7TDMI

Le pipeline d’instruction du ARM7TDMI

Interface mémoire ARM7TDMI

Chemins de données ARM9TDMI

Pipeline ARM9TDMI

Exemple de système à base de ARM9TDMI

Présentation des ARM9-E, ARM10, StrongARM et Xscale

Utilisation des outils « cœur »

Caractéristiques clefs des compilateurs C/C++

Librairies fournies

Compilation et execution d'un example

Creation d'un fichier d'entête

Creation d'un nouveau projet

Vues registres et mémoire

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

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

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

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

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.