ARM 7/9- architecture and assembly lanaguage programming

Course

Inhouse

Price on request

Description

  • Type

    Course

  • Methodology

    Inhouse

  • Duration

    5 Days

On completion of the course attendees will understand. The evolution of ARM7 and ARM9 architectures - their similarities and differences. ARM Instruction Set. Thumb Instruction Set. structured assembly language programming techniques. ARM7 and ARM9 memory systems. exceptions and interrupts and their handling. memory maps, memory. Suitable for: This course is aimed at experienced programmers who need to master assembly language programming using the ARM7/ARM9 instruction sets, and to understand the various ARM7/ARM9 architectures.

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Course programme

Overview
It is a 5 days hands on course that will cover generic ARM7/ARM9 architectures from the perspective of the embedded systems application developer. The instruction sets of ARM7/ARM9 processors will be covered with practical examples. Knowledge of the architecture and instruction set and of techniques for writing efficient and well structured assembler will be of particular use to those developing low level device drivers, firmware and implementing or porting existing embedded operating systems to the architecture. This knowledge will also be needed by those maintaining libraries coded in optimised assembler such as signal processing libraries or maths libraries.
This is a taught course with labs, with a split of about 60% teaching and 40% labs.
The course will use representative ARM7 and ARM9 target boards and IAR's EWARM IDE for assembly language programming, simulation and debugging.
Note: This course can be tailored to use other target boards. The course can also be adapted to customer needs by including/excluding optional sections. Contact FTT for further details.

Course Benefits
On completion of the course attendees will understand
  • The evolution of ARM7 and ARM9 architectures - their similarities and differences
  • ARM Instruction Set
  • Thumb Instruction Set
  • structured assembly language programming techniques
  • ARM7 and ARM9 memory systems
  • exceptions and interrupts and their handling
  • memory maps, memory protection unit, memory managment unit and priviledged operation
  • implementing device drivers for both on chip and off chip peripherals, and making use of Direct Memory Access (DMA)

Course Contents
Overview of the ARM7 and ARM9 processor architectures
  • Evolution of ARM architectures
  • RISC architecture and design philosophy
  • ARM Processor basic structure and design
    • Registers
    • Current Program Status Register
    • Processing Pipelines
    • Exceptions, Interrupts and Vector Tables
    • Core extensions
    • ARM processor families
Introduction to the ARM Instruction Set
  • Data processing instructions
  • Branch instructions
  • Load-store instructions
  • The Software Interrupt Instruction
  • Program Status Register manipulation instructions
  • loading constants
  • conditional execution
  • ARMv5E extensions
Thumb Instruction Set
  • Rationale underlying the Thumb Instruction set
  • Interworking between ARM and Thumb code
  • Thumb branch instructions
  • Thumb data processing instructions
  • Thumb single-register load-store instructions
  • Thumb mulitple-register load-store instructions
  • Thumb stack instructions
  • Thumb software interrupt instruction
Idioms and patterns for writing optimised assembly code
  • Basics of assembler programming
  • optimisation strategies and techniques
    • profiling and cycle counting
    • register allocation
    • instruction scheduling
    • bit manipulation
    • conditional execution
    • optimising multiway branches
    • dealing with unaligned data
Basic Assembly language programming examples and case studies
  • GPIO pins and their configuration
  • lighting an LED - the "Hello World of Embedded Programming"
  • Flashing an LED using software delays
  • Detecting a button press by polling
  • Detecting a button press via an external interrupt
  • Flashing an LED using a timer and polling
  • Flashing an LED using a timer and timer interrupt handling
  • Storing text data in memory
  • Programming UARTs and RS232 communication with a PC
Overview of Maths processing in assembler [ OPTIONAL SECTION ]
  • Double precision integer multiplication
  • Integer normalisation - counting leading zeros
  • Division
  • Square roots
  • Floating point calculations
  • Transcendental functions - log, exp, sin, cos
  • bit reversal
  • saturated and rounded arithmetic
  • Pseudo random number generation
Overview of Digital Signal Processing [ OPTIONAL SECTION ]
  • Digital signal processing overview
  • Doing DSP on an ARM processor
  • Overview of FIR filters and their implementation in ARM assembler
  • Overview of IIR filters and their implementation in ARM assembler
  • Overview of the Discrete Fourier Transform and its implementation in ARM assembler
  • Cortex M3 dbugging components - an overview
  • Practical debugging using EWARM IDE
Exception and interrupt handling
  • Exceptions
  • Interrupts
  • Idioms and patterns for interrupt handling
Basics of Firmware, Operating System and Bootloader Implementation
  • Bootloader concept
  • Design and implementation of a simple bootloader
  • basic operating system concepts
  • Design and implementation of a simple operating system
Caches and Memory
  • Cache architecture and usage
  • Memory protection unit - basic concepts and uses
  • Memory management unit - basic concepts and uses

ARM 7/9- architecture and assembly lanaguage programming

Price on request