| |
| |
An Overview of Computing Systems | |
| |
| |
History of RISC | |
| |
| |
The Computing Device Number Systems | |
| |
| |
Representations of Numbers and Characters Translating Bits to Commands | |
| |
| |
The Tools Exercises | |
| |
| |
The ARM7 TDMI ProgrammerG++s | |
| |
| |
Model Data Types | |
| |
| |
Processor Modes Registers | |
| |
| |
Program Status Registers | |
| |
| |
The Vector Table Exercises | |
| |
| |
First Programs | |
| |
| |
| |
Shifting Data | |
| |
| |
| |
Factorial calculation | |
| |
| |
| |
Swapping Register Contents | |
| |
| |
Programming guidelines | |
| |
| |
Exercises | |
| |
| |
Assembler Rules & Directives | |
| |
| |
Introduction Structure of Assembly Language modules | |
| |
| |
Predefined register names | |
| |
| |
Frequently used directives | |
| |
| |
Macros Miscellaneous Assembler Features | |
| |
| |
Exercises | |
| |
| |
Loads, Stores and Addressing | |
| |
| |
Introduction | |
| |
| |
Memory Load and Stores- the Instructions Operand Addressing Endianness | |
| |
| |
Exercises | |
| |
| |
Constants and Literal Pools | |
| |
| |
The ARM Rotation Scheme | |
| |
| |
Loading Constants into Registers | |
| |
| |
Loading Addresses into Registers | |
| |
| |
Exercises Logic and Arithmetic Flags and Their Use Comparison Instructions | |
| |
| |
Data Processing Instructions | |
| |
| |
Fractional Notation Exercises | |
| |
| |
Loops and Branches Branching Looping More on Flags | |
| |
| |
Conditional Execution | |
| |
| |
Straight-line Coding | |
| |
| |
Exercises Tables | |
| |
| |
Lookup Tables | |
| |
| |
Jump Tables | |
| |
| |
Binary Searches | |
| |
| |
Exercises | |
| |
| |
Subroutines and Stacks | |
| |
| |
The Stack Subroutines Passing Parameters to Subroutines | |
| |
| |
The ARM APCS Exercises | |
| |
| |
Exception Handling Interrupts | |
| |
| |
Error Conditions Processor exception sequence | |
| |
| |
The Vector Table | |
| |
| |
Exception Handlers | |
| |
| |
Exception Priorities Procedures for Handling Exceptions | |
| |
| |
Reset Exception Undefined Instructions Interrupts | |
| |
| |
Aborts SWIs Exercises | |
| |
| |
Memory-mapped Peripherals | |
| |
| |
The LPC2104 | |
| |
| |
The UART | |
| |
| |
The Memory Map | |
| |
| |
Configuring the UART | |
| |
| |
Writing data to the UART | |
| |
| |
Putting the code together | |
| |
| |
Running the code | |
| |
| |
The LPC2132 The D/A Converter | |
| |
| |
The Memory Map | |
| |
| |
Configuring the D/A Converter | |
| |
| |
Generating a Sine Wave Putting the code together | |
| |
| |
Running the Code Exercises Thumb | |
| |
| |
Thumb opcodes | |
| |
| |
Differences between ARM and Thumb | |
| |
| |
Thumb Implementation and use | |
| |
| |
How to compile for Thumb Exercises | |
| |
| |
Mixing C and Assembly Introduction | |
| |
| |
Inline assembler | |
| |
| |
Embedded assembler | |
| |
| |
Calling between C and assembly Exercises | |
| |
| |
| |
The ARM v4T Instruction Set | |
| |
| |
| |
Running Keil Tools Introduction | |
| |
| |
Creating a Project and Selecting a Device | |
| |
| |
Creating Application Code | |
| |
| |
Building the Project and Running Code | |
| |
| |
| |
ASCII character codes | |