Training - ARM 7/9 system design (reference 002879A)
 
    Partners
  • Do not hesitate to request the detailed course description by contacting training@mvd-fpga.com
  • This training course is approved by ARM
   
           
    Practical labs
  • For on-site courses, labs can be run under 3 possible environments :
    • CodeWarrior/ADS/AXD
    • Eclipse/RVDS
    • GNU/Lauterbach simulator
  • For open courses, labs are run under Eclipse/RVDS
   
           
    Prerequisites
  • A basic understanding of microprocessors and microcontrollers
  • A basic understanding of digital logic or hardware / ASIC design issues would be useful but not essential
  • A basic understanding of assembler or C programming would be useful but not essential
  • A basic awareness of the ARM is useful but not essential
   
             
  Course Objectives
  • This course takes an in depth look at the considerations you will need to take into account when designing a system containing either an ARM7TDMI family or ARM9TDMI family processor core. Some information on the latest generation of ARM processor cores, such as the ARM9E-S family is also included.
  • It is aimed at:-
    • Software engineers who not only want to obtain details of how to write software to run on the ARM, but also wish to obtain an understanding of hardware design issues
    • Hardware engineers who need to understand how to design ARM based systems, but also wish to obtain an understanding of the issues of writing software to run on that system
   
           
    Duration
  • 4-day course
   
           
    Topics

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

First day

THE ARM ARCHITECTURE

  • ARM operation modes
  • The ARM registers set
  • Program Status Registers
  • Exception handling
  • Instruction sets

ARM PROCESSOR CORE

  • ARM7TDMI core signals
  • The ARM7TDMI instruction pipeline
  • ARM7TDMI memory interface
  • ARM9TDMI datapaths
  • ARM9TDMI pipeline

Second day

ARM AND THUMB INSTRUCTION SETS

  • Conditional execution and flags
  • Branch instructions
  • Single register data transfer
  • Block data transfer
  • Stack management
  • Register access in Thumb
  • ARM architecture V5TE new instructions

ARM / THUMB INTERWORKING

  • Branch exchange example
  • Mixing ARM and Thumb subroutines
  • ARM to thumb veneer
  • Thumb-to-ARM veneer
  • Interworking calls

EXCEPTION HANDLING

  • Exception priority
  • Vector table instructions
  • Chaining exception handlers
  • Register usage in exception handlers
  • Example C interrupt handler
  • Software managed interrupt controller
  • Issues when reenabling interrupts
  • Invoking SWIs
  • Data abort with memory management

Third day

COMPILER HINTS AND TIPS

  • Automatic optimization
  • Instruction scheduling
  • Tail-call optimization
  • Loop termination
  • Inline assembler
  • Stack usage
  • Global data layout

INITIALIZING CACHED PROCESSORS

  • Cache basics
  • Cache flushing
  • Write buffer
  • Memory management
  • TLB and translation tables
  • Memory protection, MPU configuration steps
  • System control coprocessor
  • Tightly coupled memory

EMBEDDED SOFWARE DEVELOPMENT

  • ROM/RAM remapping
  • Exception vector table
  • Reset handler
  • C library initialization
  • Scatterloading
  • Linker placement rules
  • Long branch veneers
  • C library functionality
  • Placing the stack and heap

Fourth day

AMBA BUS ARCHITECTURE

  • AHB Protocol
  • AHB Connection Architectures
  • AHB Workbook

ARM DEBUG SOLUTIONS

  • Debugging with multiICE
  • Watchpoints, hardware breakpoints, software breakpoints
  • Semihosting
  • EmbeddedICE-RTT logic
  • Instruction trace, data trace
  • Trace capture
   
           
    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