The ARM Core: Architecture and Programming (EE428)
The ARM design philosophy, ARM processor fundamentals – Registers, Current program status register, pipeline, exceptions, interrupts and the vector table, core extensions, architecture revisions, ARM processor families. The ARM instruction set: Data processing instructions, Branch instructions, Load-store instructions, Software interrupt instructions, Program status register instructions, Conditional execution. The THUMB instruction set, THUMB register usage, ARM-THUMB interworking.
Writing assembly code, Profiling and cycle counting, Instruction Scheduling, Register allocation, Looping constructs, Bit manipulation, Efficient switches, Handling unaligned data. Using the GNU assembler.
Optimized primitives, Exception and interrupt handling. Rudimentary aspects of embedded operating systems.