ARM 7/9- architecture and assembly lanaguage programming
Course
Inhouse
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.
Reviews
Course programme
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
- Data processing instructions
- Branch instructions
- Load-store instructions
- The Software Interrupt Instruction
- Program Status Register manipulation instructions
- loading constants
- conditional execution
- ARMv5E extensions
- 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
- 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
- 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
- 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
- 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
- Exceptions
- Interrupts
- Idioms and patterns for interrupt handling
- Bootloader concept
- Design and implementation of a simple bootloader
- basic operating system concepts
- Design and implementation of a simple operating system
- 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