Embedded Systems


Embedded Systems: Embedded systems are involved in almost every facet of modern life including cell phones, pagers, answering machines, microwave ovens, televisions, CD and DVD players, video game consoles, remote controls, fax machines, and digital cameras. Modern automobiles may contain as many as 65 embedded microprocessors, controlling such tasks as antilock breaking, climate control, engine control, audio system control, and airbag deployment. Embedded processor sales far outweigh any other type of microprocessor.
This tremendous growth in embedded computing has given rise to demand for engineers with experience in designing and implementing embedded systems.
This course is aimed at practicing embedded software engineers as well as those engineers planning to enter the embedded field. The course presents practical lessons and techniques for use in designing, implementing, integrating, and testing software for modern embedded systems. The course will describe what an embedded system is, what makes them different, and what embedded systems designers need to know to develop embedded systems. The course will provide the student with a life cycle view for designing multi-objective, multi-discipline embedded systems.
The objective of this course is to impart a solid understanding of the role of embedded systems and embedded systems design and development. Students completing this course will have a framework for evaluating, developing, implementing and integrating embedded systems software projects in this high demand field and will understand the role of embedded systems in the context of complex engineering systems.
» Course Overview
Intensive Programming Skills (Why C? and Fundamentals of C)
Intensive Programming Skills (Why C? and Fundamentals of C)
Data types and Constants
Operators & Expressions
SimpleI/O
Flow Control
Preprocessor features
» Functions
Role of Functions
Passing arguments to functions
Returning values from functions
Recursive Functions
Call Back functions
Implications on Stack
Pass by value/reference
» Arrays
Defining, initializing and using arrays
Multi Dimensional arrays
Arrays of Characters and Strings
Arrays and pointers
Passing arrays to functions
String handling and its library functions
» Storage Classes
Scope
Internal
External
Automatic
Static
Scope and extent of parameters
» Structures & Unions
What structures are for
Declaration, initialization and accessing
Nested Structures
Array of structures
Allocation of memory and holes
Unions
» Bit Operations
AND (&), OR (|), XOR (^)
Compliment (~)
Left-shift (<<), Right-shift (>>)
Masking, Setting and Testing of Bit/Bits
» Pointers
The purpose of pointers
Defining pointers
The & and * operators
Pointer assignment
Pointers with functions
Pointer arithmetic
Advanced pointer types
Pointers to functions
Pointers and Strings
Pointers and Dynamic memory
FAR & NEAR Pointers
» File Handling Concepts
Concept of a FILE data type
Character handling routines
Record handling routines
Formatting routines
» Command line arguments
» Dynamic Memory Allocation
Malloc()
Calloc()
Realloc()
Free()
Farmalloc()
Farcalloc()
» Data Structures
Linked Lists
Stacks & Queues
Binary Trees
» Sorting and Searching Techniques
Insertion sort
Selection sort
Bubble sort
Merge sort
Quick sort
» Concepts and Realtime exposure
Development Tools and Environment
Compiler
Functionality of Assembler
Functionality of Linker
Make Utility
Object File format
Executable File Format
Debugger
Multiple C File Program Development
Basic Networking concepts
Dynamically Loading Libraries (DLL)
Object Oriented Concept With 'C++'
Object Oriented Concept With 'C++'
Data Vs Object
Classes
Data abstraction
Casting in C++
Constructors & Destructors
Class Methods & Data
Ingeritance
Overloaded Functions
Virtual Functions
Overloaded Operations
Pure Virtual Functions
Exception Handling
References & Constants
Standard Template Library
RDBMS & Understanding database
RDBMS & Understanding database
Table, field, record
Data source,connectivity
» Relational database
Relation(model), tuple, attribute
» Entity - relationship models
Keys, primary key
E-R Diagram
Generalization
Aggregation
» Understanding Normalizations
1st NF, 2nd NF
BCNF and 3rd NF
4th NF
» Planning and Management
Order indices
B-Tree index files
VHDL & Aplication of HDLs
VHDL & Aplication of HDLs
Range of use
Origin of VHDL
Levels of VHDL
Capabilities
Disadvantage
» Design Unit
Object declaration
Entity Architecture
Libraries
Packages
Components
» Language Elements
Data types
Operators
Sequential statements
Concurrent statements
Functions
» Simulation
Flow
Delay models
Test benches
Embedded System Concepts
Embedded System Concepts
Introduction
Real Time Systems
Hard Time Systems
Soft-Real Time Systems
Host-Target Environment
Cross compilers
Target/host based debugging
Embedded System Concept
Inside Embedded System
Memory
I/O Controllers and Techniques
» Bus Concepts
IIC
PCI
USB
Unix Internals
Unix Internals
Introduction to OS
Architecture
Batch systems
Time sharing systems
Distributed systems
Basic commands
File system
CPU utilization
Process Scheduling
Kernel
Shell Programming
Control Statements
Loops
Debugger
Process management
Fork
Pipe
Message queue
Semaphore
Socket Programming
Mini Project
Networking and TCP/IP Applications
Real Time Operating System (VxWorks,mC OS - ii,RTLinux)
INTEL 8051 MicroController
Embedded 'C'
Major Project