|
ARM implements an innovative and price-winning business model where the main strategy is not to manufacture chips, but to license "hardware source code" to a number of different silicon manufacturers.
This strategy has resulted in a large number for manufacturers of ARM-based micro controllers that target both generic and specialized applications. The ARM Cortex-M3 is from the latest family of ARM cores with a greatly improved architecture giving even faster and smaller code than the old ARM7TDMI core.
Goal
After attending the course you will have learned the ARM-family architecture and modes of operation with focus on the ARM Cortex-M3. You will be familiar with interrupts and how to access and control peripheral functions such as serial channels and timers. You will also have used a professional development tool for creating, compiling, linking and debugging your software project.
Participants
Anyone who would like a quick-start to develop C-based applications for ARM’s Cortex-M3 (and for ARM in general).
Previous knowledge
You must have basic knowledge of the C programming language, corresponding to our training course "C programming for embedded systems, part I".
It is not required to have experience from the development of embedded systems, however, we expect that you have basic knowledge about a micro controller architecture and how it is used (not necessarily ARM, though).
Practical exercises / Tools
There are a number of exercises that you will work through during the training. These will show you how to program and debug applications for the ARM Cortex-M3 core. The exercises are carried out in pairs with assistance of the teacher.
We will use Keil’s RealView MDK for Windows. Keil is owned by ARM and the suite offers an integrated solution including both the software and hardware needed for creating, building and debugging projects running on a target system.
All the exercises will be carried out running our code on the MCBSTM32 evaluation board from Keil. The board is based around the STM32F103 ARM Cortex-M3 micro controller from ST. |
Content
Introduction
The ARM family
The microcontroller architecture
- Presentation of the architetcure and building blocks of the Cortex-M3 kernel.
- Overview of the most important peripheral units of the microcontroller that is used during the course.
Assemler for ARM
- Overview and presentation of the ARM instruction set and assembly language syntax.
- How to develop start-up code and how to use paramterized calls between C and assembler.
C for ARM
- How C can be implemented on the ARM architecture. Extentions and deviations from the ANSI C standard.
Compiling and linking
- The technique used for compiling and linking with the KEIL RealView MDK, including the use of compiler switches and other options.
Optimization
- How to optimize part or all of your application with regards to techniques suitable for ARM.
High level debugging
- Covers the possibilities with In-Circuit Debugging (ICD) compared to other methods like "trail-and error", logic analyzers, software monitors, simulators, and emulators.
- Hints as to what is important for efficient C source level debugging.
Debugging
- Hands-on use of KEIL RealView MDK for source level debugging, register inspection, variables and complex data structures.
- Program optimization using performance and covreage analysis.
|