ARM11 Software Design is a 4-day comprehensive class that introduces the current ARM architectures and the ARM development systems.
In the second part of the class, the emphasis is on the development and debugging of ARM software code for ARM11 based systems.
The course familiarises the delegates with the ARM architecture, as well as the corresponding command sets ARM and Thumb. Examples will be used to explain how to write exception handlers (e.g. interrupt handlers) and ROM code.
The workshops are based around carefully designed exercises to reinforce and challenge the extent of learning, and comprise approximately 30% of class time. Software developers who wish to develop system and application software for ARM based systems. An in-depth knowledge of microprocessors is not essential, but would be advantageous. However, all participants must be computer literate and should have a basic understanding of the programming language C.
Structure and Content
The ARM Architecture
Overview of ARM, registers, modes, exception handling, instruction sets, supporting technologies
ARM Processor Core
ARM7TDMI and ARM9TDMI pipelines, datapaths and instruction decoding. Overview of ARM9E-S, ARM10, ARM11, StrongARM and XScale.
Real View Developer Suite (RVDS) Overview
Compilers, Assembler, Linker, Debuggers
Real View Introductory Workbook
Practical work using RVDS
ARM and Thumb Instruction Sets
Overview of the ARM and Thumb Instruction Sets. Includes practical work.
ARM / Thumb Interworking
Mixing ARM and Thumb code in the same application
V6/V7 Caches and TCM
Initializing caches, cache lockdown, cache maintenance, TCM configuration
V6/V7 Memory management
Initializing MMU and MPU, level1 and level2 page tables, memory types, memory barriers
Embedded Software Development
Running code from ROM, reset handlers, locating code and data in memory (scatterloading), library retargeting.
ARM Debug Solutions
On-chip debug logic, breakpoints and watchpoints, debug communication channel, tools issues, system design considerations. EmbeddedICE-RT and RealMonitor. How to design-in and use ARM's Embedded Trace Module.
Performance Analysis
Code/data size calculations. Benchmarking facilities provided in ARMulator.
Performance Analysis Workbook
Practical work on benchmarking
Compiler Hints and Tips
Compiler optimization options. Writing efficient code. Minimizing data memory