| |
EMBEDDED REAL-TIME SYSTEMS
[This Training Course covers 8 modules]
- Domain Knowledge (Covering Embedded Systems)
- C Programming
- Micro Controllers (Practical/Application Programming)
- Linux Internals(Programming Environment)
- Linux Network Programming(Protocol Development Operations)
- Device Driver Programming in Linux
- Embedded Linux using ARM9 (Ex: Mobile Phones)
- Real-Time Operating System
Module # 1
Domain Knowledge
- What is Embedded System & why it is Popular?
- Who Should Learn?
- What Programming Languages in Embedded Systems?
- Embedded Development Life Cycle (EDLC)
- Categories of Embedded Systems
- Embedded System Design Issues (H/W & S/W)
- Inside Embedded Systems
- How to learn Advanced Embedded standards?
- Embedded System Applications
Module # 2
C Programming
- Fundamentals of C
- Control Flow
- Data types, Operators & ExpressionsFunctions
Function
- Function type and return value
- Pass by value and pass by reference
- Output parameters
- Local variables & Static variables
Arrays
- Initialization
- One-dimensional & Two-dimensional array initialization
Pointers
- Introduction to Pointers
- Types of pointers
- Pointer Arithmetic
- Pointers as Function Arguments
Structures
- Packing of elements within a structure
- Accessing members of a structure with structure variables
- Structure pointers
- Memory Allocation Techniques [Static, Dynamic]
- File Management [Opening of File, Writing to File, Reading form File, Control Operations on Files & Closing of File]
Data Structures
- Stacks
- Queues (Linear queues & Circular queues)
- Linked Lists [Operations on linked lists, Single linked lists, Double linked lists]
Module # 3
Linux Internals
- What is Open Source and why do you care?
- Linux features and characteristics
- Protected memory
- Processes
- Foreground vs. background
- Users and Groups
- Root user
- Graphical desktop environment—KDE
- Linux Distributions
- Architecture
- File System
- Basic aspects, Root File System, VFS
- Mouting a file system, Superblock, The Inode concept and operations
- File operations, Directory cache
- Proc file system, Ext2/Ext3 file system (Structure, Directories, Block allocation, Extensions) , File system Hierarchy Standard (FHS)
- Editors (Vi & Emacs)
- Introduction to Linkers, Loaders and Debuggers
- API vs. System calls
- System Calls
- Initialization
- Process management
- Memory management
- Communication
- File system
- Adding new System Calls
- Linux Commands & Shell Scripting
- Debugging applications
- Practical Work-I
- Multiprocessing & Multithreading
- Decision Criteria
- A Look inside a Process
- Thread Creation & Destruction
- Thread Synchronization
- Process Creation & Destruction
- Foreground and Background Processes
- Zombie Processes
- Signal Handling
- Interprocess Communication
- Using Signals for Interprocess Communication
- Criteria for Choice
- Catching Signals
- Sending Signals
- Kernel IPC Facilities
- Shared Memory, Semaphores, Message Queues
- Managing Kernel IPC Resources
- Pipes, Pipe Lines
- Named Pipes
- Practical Work-II
- System V (Threads, Message Queues, Semaphores)
- POSIX (Threads, Semaphores & Spin locks)
- An Introduction to Graphics in Linux
Module # 4
Linux Network Programming
- Network Structures
- OSI vs. TCP/IP model
- Typical Protocols
- LAN standards
- Wireless
- Protocols [TCP, UDP, IP (IPv4 & IPv6), ICMP, IGMP, ARP & RARP]
Practical Work-I
Socket Programming
- What is Socket?
- Client and Server Model
- Socket API Interface
- Connectionless and connection oriented protocols (UDP/TCP)
- Algorithms and Issues in Client & Server software design
- Socket Address Structures
- Socket options
- Programs on various client/server designs
Practical Work-II
Module # 5
Device Drivers in Linux
- Linux 2.4 & 2.6 device driver architectures
- Character vs. Block devices
- Polling and interrupts
- Implementation
- Module Management
- Interfaces to modules
- Version numbering
- Adding/removing modules to the Kernel
- Implementation details
Virtual File System (VFS)
Practical Work-I
Network
- Layer model
- Network communications
- Data structures
- Devices
Advanced Driver Programming
- Linux Device Model
- Playing with New Devices
Bus Access
PCI, USB & Serial
Practical Work-II
Module # 6
Embedded Linux on ARM
What is Embedded Linux?
Why do we need Linux in Embedded Systems?
Advanced RISC Machine (ARM)
- High-speed Processors (8/16/32 & 64-bit Processors)
- Introduction to ARM7/ARM9/ARM11
- Architecture, Register Set
- ARM Processor Core
- Modes of Operation
ARM Development Environment
- Touch Screens
- USB
- LCD and many more…
Practical Work-I
Embedded System Booting Process
- Building a Compiler-Tool chain
- Building an Embedded Linux
- Linux kernel-2.6(Configuration & Compilation)
- Root File System Building Process
Porting Linux Kernel & Root File System to ARM9 Board
Practical Work-II
Module # 7
Real Time Operating System
- Why RTOS is required?
- RTLinux vs. Linux
- Multi tasking, Intertask Communication
- Intertask Synchronization & Mutual exclusion
- Interrupts
- Developing Applications using RTOS
|
|