|
|
|
|
| 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 |
| INVASIVE DEBUG |
 |
Coresight debug infrastructure |
 |
Halt mode |
 |
Monitor mode |
 |
Debug event sources |
 |
Flash patch and breakpoint features |
 |
FPB remapping |
 |
Data watchpoint and trace |
 |
DWT registers |
 |
ARM debug interface specification |
 |
AHB-Access Port |
 |
Possible DP implementations |
| NON-INVASIVE DEBUG |
 |
Basic ETM operation |
 |
Instruction trace principles |
 |
ITM packets |
 |
DWT trace packets |
 |
Time-stamping packets |
 |
Instruction tracing |
 |
TPIU components |
 |
TPIU pinout |
 |
Software interface |
| C/C++ COMPILER HINTS AND TIPS FOR Cortex-M3 |
 |
ARM compiler optimisations |
 |
Mixing C/C++ and assembly |
 |
Coding with ARM compiler |
 |
Measuring stack usage |
 |
Unaligned accesses |
 |
Local and global data issues, alignment of structures |
|
 |
Tutorial: Implementing these optimizations by using ARM/Keil compiler |
| AMBA3.0 INTERCONNECT SPECIFICATION |
 |
Purpose of this specification |
 |
2-bus organization |
 |
Example of SoC based on AMBA specification |
| AHB - ADVANCED HIGH PERFORMANCE BUS |
 |
Centralized address decoding |
 |
Address gating logic |
 |
Arbitration, bus parking |
 |
Single-data transactions |
 |
Address pipelining |
 |
Sequential transfers |
 |
AHB-lite specification |
| APB - ADVANCED PERIPHERAL BUS |
 |
Second-level address decoding |
 |
Operation of the AHB-to-APB bridge |
 |
APB3.0 new features |
| AHB CORTEX-M3 HARDWARE IMPLEMENTATION |
 |
Clocking and reset, power management |
 |
Bus interfaces |
 |
AMBA-3 compliance |
 |
Unifying the code buses |
 |
Branch Status signal |
 |
Unaligned access management |
 |
Connection to the TPIU |