|
|
|
|
| ARM Cortex-M3 CORPORATE INTRODUCTION |
 |
ARM architectural summary |
 |
Meeting the challenge with profiles |
 |
ARM instruction set evolution |
| ARM Cortex-M3 INTRODUCTION |
 |
ARM Cortex-M3 processor macrocell |
 |
Programmer’s model |
 |
Program status registers |
 |
Instruction pipeline |
 |
Fixed memory map |
 |
Memory Protection Unit |
 |
Interrupt handling |
 |
Power management |
| ARM Cortex-M3 CORE |
 |
Block diagram |
 |
Datapath and pipeline |
 |
Write buffer |
 |
Bit-banding |
 |
State, privilege and stacks |
 |
Alignment and endianness |
 |
System control block |
| THUMB-2 INSTRUCTION SET |
 |
General points on syntax |
 |
Data processing instructions |
 |
Branch and control flow instructions |
 |
Memory access instructions |
 |
Exception generating instructions |
 |
If then conditional blocks |
 |
Stack in operation |
 |
Accessing special registers |
 |
Tutorial: Becoming familiar with Keil IDE |
|
 |
How to design a new project |
|
 |
Parameterizing the IDE |
|
 |
Executing simple labs to understand the operation of assembly complex instructions, such as table branch and it |
| INTERRUPTS |
 |
Basic interrupt operation |
 |
Interrupt entry / exit, timing diagrams |
 |
Tail chaining |
 |
Interrupt response, pre-emption |
 |
NVIC registers |
 |
Interrupt prioritization |
 |
Interrupt implementation configurability, impact on core size |
| EXCEPTIONS |
 |
Exception behavior, exception return |
 |
Non-maskable exceptions |
 |
Privilege, modes and stacks |
 |
Priority boosting |
 |
Vector table |
| MEMORY TYPES |
 |
Device and normal memory ordering |
 |
Memory type access restrictions |
 |
Access order |
 |
Memory barriers |
| MEMORY PROTECTION UNIT |
 |
Memory protection overview |
 |
Fault status and address registers |
 |
Region overview, memory type and access control, sub-regions |
 |
Setting up the MPU |
| EMBEDDED SOFTWARE DEVELOPMENT WITH Cortex-M3 |
 |
Embedded development process |
 |
Application startup |
 |
Placing code, data, stack and heap in the memory map, scatterloading |
 |
Reset and initialisation |
 |
Placing a minimal vector table |
 |
Building and debugging your image |
 |
Long branch veneers |
 |
Tutorial: Becoming familiar with Keil IDE |
|
 |
Scatterloading |
|
 |
Retargeting the C library |
|
 |
Handling interrupts in C language |
|
 |
Using SVC |