Mastering Embedded System

Course Features

Course Details

CHAPTER 1: GETTING STARTED
What is C?
Data Types
Variables
Naming Conventions for C Variables
Printing and Initializing Variables

CHAPTER 2: CONTROL FLOW CONSTRUCTS
if
if else
while
for
Endless Loops
do while
break and continue
switch
else if

CHAPTER 3: THE C PREPROCESSOR
#define
Macros
#include
Conditional Compilation
#ifdef
#ifndef

CHAPTER 4: MORE ON FUNCTIONS
Function Declarations
Function Prototypes
Returning a Value or Not
Arguments and Parameters
Organization of C Source Files
Extended Example

CHAPTER 5: BIT MANIPULATION
Defining the Problem Space
A Programming Example
Bit Wise Operators
Bit Manipulation Functions
Circular Shifts

CHAPTER 6: STRINGS & ARRAY
Fundamental Concepts
Aggregate Operations
String Functions
Array Dimensions
An Array as an Argument to a Function
String Arrays
Example Programs

CHAPTER 7: POINTERS (PART 1)
Fundamental Concepts
Pointer Operators and Operations
Changing an Argument with a Function Call
Pointer Arithmetic
Array Traversal
String Functions with Pointers
Pointer Difference
Prototypes for String Parameters
Relationship Between an Array and a Pointer
The Pointer Notation *p++

CHAPTER 8: POINTERS (PART 2)
Dynamic Storage Allocation -malloc
Functions Returning a Pointer
Initialization of Pointers
gets -a Function Returning a Pointer
An Array of Character Pointers
Two Dimensional Arrays vs. Array of Pointers
Command Line Arguments
Pointers to Pointers
Practice with Pointers
Function Pointers

CHAPTER 9: STRUCTURES
Fundamental Concepts
Describing a Structure
Creating Structures
Operations on Structures
Functions Returning Structures
Passing Structures to Functions
Pointers to Structures
Array of Structures
Functions Returning a Pointer to a Structure
Structure Padding

CHAPTER 10: STRUCTURE RELATED ITEMS (UNION)
typedef-New Name for an Existing Type
Bit Fields
unions
Non-HomogeneousArrays
Enumerations

CHAPTER 11: FILE I/O
System Calls vs. Library Calls
Opening Disk Files
fopen
I/O Library Functions
Copying a File
Character Input vs. Line Input
scanf
printf
fclose
Servicing Errors -errno.h
Feofo

CHAPTER 12: SCOPE OF VARIABLES
Block Scope
Function Scope
File Scope
Program Scope
The auto Specifier
The static Specifier
The register Specifier
The extern Specifier
The Const Modifier
The Volatile Modifier

CHAPTER 13: INTRODUCTION TO EMBEDDED
What is Embedded Systems?
Difference b/w Micro processor & Micro
Controller
CISC Vs RISC
Architecture of8,16,32-bitProcessor
Software Used, Compilation, Debugging
Example Programs (LCD, RELAY, STEPPER MOTOR)
Embedded Software Life Cycle TestingSPI, ADC,
Serial Communication, Protocols (I2C , CAN, Ethernet)

CHAPTER 14: Linux OS Architecture
Linux Features
Linux Kernel Source Directory Structure
Linux Kernel Components
User Mode Vs Kernel Mode
System Initialization –Booting Process
CHAPTER 15: Introduction to Linux tools, compilers and utilities
Introduction To Makefile
How to write Makefile to compile programs on Linux
Building static and dynamic libraries
LABs

CHAPTER 16: Kernel compilation
Importance of Makefiles
Procedure to recompile the kernel
LAB

CHAPTER 17: Detail study of Linux OS components
Process Management
Process Control Block (PCB)
Types Of Processes
States Of Process
How to Create Process?
Process Scheduling
LABs

CHAPTER 18: Thread Management
What is Thread?
Thread Control Block (TCB)
User level Vs Kernel level Threads
How to create and cancel threads?
Thread Scheduling
Process Vs Threads
LABs

CHAPTER 19: Interrupt Management
What are interrupts?
Types Of Interrupt
Interrupt Handling
Interrupt Service Routine (ISR)
Interrupt Latency

CHAPTER 20: Signal handling
What are signals in Linux OS?
Signal Implementation
Signal Handling
LABs

CHAPTER 21: Inter-Process communication (IPCs)
Introduction To Inter-processcommunication mechanism
Pipes, Message Queue and Shared Memory
Semaphores and Mutex
LABs

CHAPTER 22: Socket programming on Linux
TCP/IP and UDP socket programming
LABs

CHAPTER 23: Linux Kernel and Device driver Programming
Linux File system and System call interface
Introduction To System Call Mechanism
Significance Of System Calls
LABs

CHAPTER 24: Memory Management Unit
Segmentation and Paging
Swapping and demand paging
malloc(), kmalloc() and free()

CHAPTER 25: Linux Kernel and Device driver Programming
Module Basics
Introduction to Modules
Writing Your first kernel module
Statically linked vs Dynamically linked
Exporting symbols from modules
The kernel symbol table
Concurrency in the kernel
Module Parameters
Version dependency
LABs

CHAPTER 26: An introduction to device drivers
Role of the Device Drivers
Role of Virtual file system
Classes of devices
Registering a character device driver
File operations and ioctls
Reading and writing into char devices
LABs

CHAPTER 27: Block Device Drivers
Registering block driver
File operations and ioctls
Handling requests
Write RAM type of disk driver
LABs

CHAPTER 28: Network Device Drivers
The net_device structure in detail
Packet transmission
Packet reception
Simulating a network device
LABs

CHAPTER 29: Embedded Linux On ARM9
Intro to the target board (Samsung mini2440– ARM 9)
Introduction to ARM9 architecture

CHAPTER 30: Installation of cross compilation tool chain
Installing Sources, Patching
Installing the GCC toolchain
Set Cross Compiling Environment
LABs
CHAPTER 31: Porting Linux on ARM9
Recompilation and flash Kernel on ARM9 board
LABs

CHAPTER 32: The Root Filesystem
Busybox
A Small Application example
Flashing the new root filesystem
Compilation procedure
LABs

CHAPTER 33: Write device driver for ARM9 board
Services on Board
Compiling and setting up services
An example service – LABS
CHAPTER 34: Structure and implementation of open source RTOS
RTOS Source Organization
Configuration Of RTOS
Implementation Of RTOS
CHAPTER 35: Port RTOS on ARM Board
Steps for porting RTOS On ARM7
LAB(Demostration)- Port Open Source RTOS On ARM Board
CHAPTER 36: Real Time Operating Fundamentals
Task Management
Multitasking
Context Switching
Inter Process/Task Communication (IPC)
LABs (Demostration)
CHAPTER 37: References and Guideline for Linux base embedded system Skills developed after completion of course
Learn about Key principles of Linux OS
Expertise on device driver for target board
Porting Linux on advanced cross platform i.e. ARM 9
Get good expertise on Linux base embedded system
This course does not have any sections.

More Courses by this Instructor