ARM Embedded System Design
Summary
The course provides the skills needed to develop software for ARM based embedded systems. The course explains the ARM architecture, then demonstrates the advantages of programming in C instead of the microcontroller's specific assembly language, including faster development, improved portability, and reusability. The course is taught using an ARM development kit and related add-on boards. This is a very practical, results-oriented course, which will provide knowledge and skills which can be applied immediately.
Pre-requisite
-
Good programming knowledge.
-
C programming basics
Duration
-
Duration: 72 hours
-
Span for Weekdays: 6 weeks
-
Span for Weekends: 9 weeks
Syllabus
Advanced C
Types, Declaration, Exp, functions
-
Basic types and declarations
-
Initialization
-
Const and volatile
-
Expressions and operators
-
Short Circuiting
-
Size of
-
typedef
Functions
-
Functions
-
Stack
-
Importance of Function Prototypes
-
storage class
-
Recursion
Pointer and Array Basics
-
Simple Pointers
-
Single Dimensional Arrays
-
Arrays Initialization
-
Pointer and Array Names
-
Pointer Arithmetic
-
The Square bracket Notation
-
Passing Arrays to Function
-
Returning Arrays from Function Pitfall
-
NULL Pointers
-
Function Pointers
Pointers and Strings
-
Strings
-
String Literals
-
String Literals and Arrays
-
Null Strings
-
String Literal Pitfalls
Structures and Unions
-
Purpose of Structures
-
Structure Initialization
-
Arrays of struct
-
Field Alignment and Padding
-
Field Offsets
-
Self Referential Structures
-
Mutually Referential Structures
-
Purpose of Unions
-
Union Initialization
-
Incomplete types
Preprocessor
-
Preprocessor Constants
-
Preprocessor Macros
-
Macro Pitfalls
-
Conditional Compilation
-
Stringization Operator
Embedded System Programming
Hardware Fundamentals
Embedded Systems
-
What Is an Embedded System?
-
Define the components of an embedded systems
Digital Electronics
-
Logic Gates
-
Flip flops
-
Clocks
-
Counters and Shift Registers
-
Decoders and Encoders
-
Demultiplexers and Multiplexers
-
Read Only Memory (ROM) - PROM, EPROM, EEPROM, Flash EEPROM
-
Random Access Memory (RAM) - Static RAM, Dynamic RAM
Microcontrollers
-
Introduction
-
Architecture
-
On-chip program Memory
-
On-chip Data RAM
-
Bi-directional and Individually Addressable IO Lines
-
Timers/Counters
-
UART
-
Interrupt Structure
-
Clock Oscillator
-
On Chip I2C and SPI bus controllers
ARM Introduction
-
ARM Architecture
-
Register set
-
Pipeline
-
Exceptions & Interrupts
-
ARM Processor Families
-
Write, compile, link, and test embedded C programs.
-
Use the embedded tools including: IDE, C compiler and linker.
-
Download and run programs on an evaluation target board.
Human Interface Devices
-
LEDs, Keys
-
Seven-segment display
-
LCD Modules
-
Matrix Keyboard Scanning Algorithm
-
Multiplexed LED Display Module
Timers and Interrupts
-
Interrupts
-
Interrupt Vector Table
-
Writing Interrupt Handlers
-
Timers and Counters
Motors and Relays
-
Relays
-
DC Motors
-
H-Bridge
-
Pulse Width Modulation
-
DC Motor Speed Control
-
Stepper Motors
I2C and SPI
-
On-board Interconnects
-
I2C protocol
-
SPI protocol
-
I2C vs SPI Comparison
-
Accessing I2C EEPROMs
-
Accessing SPI Slave Devices
Analog I/Os
-
Analog Inputs
-
Reading an ADC
-
Waveform generation
-
Light Sensor
-
Temperature Sensor
Asynchronous Serial Communications
-
UART, RS-232C
-
RS-485
-
Sending and Receiving Data from PC
