0% found this document useful (0 votes)
386 views4 pages

ARM7/ARM9 - Architecture and Assembly Lanaguage Programming - A 5-Day Course Synopsis

This is a taught course with labs, with a split of about 60% teaching and 40% labs. It is aimed at experienced programmers who need to master assembly language programming using the ARM7 / ARM9 instruction sets. The course will use representative ARM7 and ARM9 target boards and IAR's EWARM IDE for assembly language programming, simulation and debugging.

Uploaded by

fcmandi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
386 views4 pages

ARM7/ARM9 - Architecture and Assembly Lanaguage Programming - A 5-Day Course Synopsis

This is a taught course with labs, with a split of about 60% teaching and 40% labs. It is aimed at experienced programmers who need to master assembly language programming using the ARM7 / ARM9 instruction sets. The course will use representative ARM7 and ARM9 target boards and IAR's EWARM IDE for assembly language programming, simulation and debugging.

Uploaded by

fcmandi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

ARM7/ARM9 - Architecture and Assembly Lanaguage Programming A 5-day Course Synopsis

This 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 optimized 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 us for further details.

Course Objectives
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 management unit and privileged operation Implementing device drivers for both on chip and off chip peripherals, and making use of Direct Memory Access (DMA)

Intended Audience

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.

Contents

Overview of the ARM7 and ARM9 processor architectures


Evolution of ARM architectures RISC architecture and design philosophy ARM Processor basic structure and design o Registers o Current Program Status Register o Processing Pipelines o Exceptions, Interrupts and Vector Tables o Core extensions o 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 multiple-register load-store instructions Thumb stack instructions Thumb software interrupt instruction

Idioms and patterns for writing optimized assembly code


Basics of assembler programming optimization strategies and techniques o profiling and cycle counting

o o o o o o

register allocation instruction scheduling bit manipulation conditional execution optimizing 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 normalization - 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

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

You might also like