Embedded System Programming
Summary
The course provides the skills needed to develop software for embedded systems. The course explains the architecture common to most 8-bit micro controllers, then demonstrates the advantages of programming in C instead of the micro controller's specific assembly language, including faster development, improved portability, and reusability. This course also covers more advanced parts of the C language like pre-processor, complex declarations and expressions, recursion, pointers and data structures. 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
-
Stack
-
Importance of Function Prototypes
-
storage class
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
The Linear Dynamic Data Structures
-
Need for Dynamic Data Structures
-
The Stack and Queue Data Structures
-
The Linked List Data Structure
-
Dynamic Memory Allocation
Recursion
-
Recursive Computation of a Factorial
-
Recursive Computation of the Fibonacci Number Sequence
Preprocessor
-
Preprocessor Constants
-
Preprocessor Macros
-
Macro Pitfalls
-
Conditional Compilation
-
Stringization Operator
-
Token Pasting Operator
Embedded System Programming
Introduction
-
What Is an Embedded System?
-
Define the components of an embedded systems
Hardware Fundamentals
-
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
Micro Controller
-
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
Programming
-
Create embedded applications.
-
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.
Keyboard interface
-
Keyboard Basics
-
Matrix Keyboard Scanning Algorithm
-
Using the Matrix Keyboard Module
LED Displays
-
Multiplexed LED Display Module
-
Using the Multiplexed LED Display Module
Liquid Crystal Displays
-
character LCD Modules
-
using LCD Module Display
Real Time Clock
-
RTC display module
-
using RTC Module
Analog I/Os
-
Analog Inputs
-
Reading an ADC
-
using Analog I/O Module
Asynchronous Serial Communications
-
RS-232C
-
Sending and Receiving Data using Serial Ports on a PC
