Formation - ARM conception logicielle - Principes de base (reference 003556A)
 
    Partners
  • Do not hesitate to request the detailed course description by contacting training@mvd-fpga.com
  • This training course is approved by ARM
  • Practical exercices are built with ARMCC compiler, simulated on a PC with ADS
   
           
    Related Trainings
  • As this course covers only software aspects of the ARM, an other course whose reference is 002579A has been created to cover all hardware related.
  • MVD also delivers training courses around embeded OS which can be useful : Embeded Linux, OSEK
   
           
    Prerequisites
  • A basic understanding of microprocessors or microcontrollers
  • Familiarity with assembler or C programming
  • Embedded programming experience would be helpful, but is not essential
  • A basic awareness of the ARM is useful but not essential
   
             
  Course Objectives
  • The course explains ARM7 and ARM9 pipeline operation
  • The workbook provides the student with an introduction to the tools provided with the ARM Developer Suite version 1.2 (ADS)
  • The ARM assembly instructions are viewed in detail
  • The course focuses on cache operation
  • Thumb / ARM interworking is described
  • ARM debug solutions are explained
   
           
    Duration
  • 2-day course
   
           
    Topics

(The full description of this course can be provided on request)

First day

THE ARM ARCHITECTURE

  • Overview of ARM
  • ARM operation modes
  • The ARM registers set, register organization summary according to the current mode
  • Program Status Registers
  • Exception handling, vector table, automatic switch into ARM mode
  • Instruction sets : ARM branches and subroutines

ARM PROCESSOR CORE

  • ARM7TDMI core signals
  • ARM7TDMI block diagram
  • The ARM7TDMI instruction pipeline
  • ARM7TDMI memory interface
  • ARM9TDMI datapaths
  • ARM9TDMI pipeline
  • Example ARM9TDMI system
  • Overview of ARM9E-S, ARM10, StrongARM and Xscale

ARM DEVELOPPER SUITE (ADS) OVERVIEW

  • Using the core tools
  • C/C++ compilers key features
  • Supplied libraries
  • Codewarrior introduction
  • Debugging with multi-ICE

ADS INTRODUCTORY WORKBOOK

  • Compiling and running an example
  • Creating a header file
  • Creating a new project
  • Viewing registers and memory

Second day

ARM AND THUMB INSTRUCTION SETS

  • Conditional execution and flags
  • Branch instructions
  • The barrel shifter
  • Immediate constants
  • Single register data transfer
  • Block data transfer
  • Stack management
  • Coprocessor instructions
  • Register access in Thumb
  • ARM architecture V5TE new instructions
  • Assembler workbooks

ARM / THUMB INTERWORKING

  • Switching between states
  • Branch exchange example
  • Mixing ARM and Thumb subroutines
  • ARM to thumb veneer
  • Thumb-to-ARM veneer
  • Interworking calls
  • Interworking using codewarrior

EXCEPTION HANDLING

  • Exception return instructions
  • Exception priority
  • Vector table instructions
  • Chaining exception handlers
  • Register usage in exception handlers
  • FIQ vs IRQ
  • Example C interrupt handler
  • Software managed interrupt controller
  • Issues when reenabling interrupts
  • C nested interrupt example
  • Invoking SWIs
  • Data abort with memory management
  • The return address

EMBEDDED SOFWARE DEVELOPMENT

  • ROM or RAM at 0x0 ?
  • ROM/RAM remapping
  • Exception vector table
  • Reset handler
  • Initialization : stack pointers, code and data areas
  • C library initialization
  • Scatterloading
  • Linker placement rules
  • Long branch veneers
  • C library functionality
  • Placing the stack and heap
  • Debugging ROM images
   
           
    Documentation

Training manuals will be given to participants during training. Precise and easy of use, those notes can be used as a reference afterwards.
   
           
    Other trainings :

If you want to know our other training courses and their contents, you can consult or download our complete training courses list on this page : Training courses - General presentation