Vous êtes sur la page 1sur 5

Course content:- Embedded System Design Course

1. Basic Embedded System Design (BESD) 1.1 Basic Electronics and Components 1.1.1 Basics of analog Electronics 1.1.2 Basics of digital Electronics 1.1.3 Prototype Boards 1.1.4 Resistors 1.1.5 Using Multimeters 1.1.6 Working on circuits 1.1.7 Diodes, Transistors 1.1.8 Timer IC 1.2 Micro Controllers 1.2.1 RISC / CISC and Harvard / Princeton Architectures 1.2.2 Types of Memories 1.2.3 Introduction to 8-bit Microcontrollers 1.2.4 Timers / Counters, UART 1.2.5 LED 1.2.6 Switches 1.2.7 ADC, DAC 1.2.8 LCD 1.2.9 Stepper Motors 1.2.10 Geared Motors 1.3 One Step Ahead in Embedded Systems with C Programming 1.3.1 Introduction 1.3.2 Declaring Variables 1.3.3 Preprocessor Statements 1.3.4 Arithmetic Operators 1.3.5 Programming Style 1.3.6 Keyboard Input 1.3.7 Relational Operators 1.3.8 For and while loops 1.3.9 If, if else, relational operators 1.3.10 Switch/case 1.3.11 String and character handling 1.3.12 Data validation examples 1.3.13 Conditional expression operator 1.3.14 Arrays 1.3.15 Functions 1.3.16 Additional assignment operator 1.3.17 Handling user input and Validation 1.3.18 Formatters for printf() and scanf(), bit operations 1.3.19 Structures 1.3.20 Data conversion with itoa() and atoi() 1.3.21 Files 1.3.22 Pointers 1.3.23 Dynamic Memory Allocation 1.3.24 Sample programs so far 1.3.25 Interactive tests

Advanced Embedded System Design Course (AESD) 2.1 Hardware and Installation 2.1.1 Hardware Compatibility 2.1.2 CPU and Memory 2.1.3 Devices 2.1.4 Bus Support 2.1.5 Operating System Installation 2.1.6 Configuring Hard Drives and File systems 2.1.7 Partitioning Hard Disks 2.1.8 Creating Filesysytems 2.1.9 Understanding Journaling Filesystems 2.1.10 Post-Installation Configuration 2.1.11 Validating the Installation 2.2 User Administration 2.2.1 Introduction to Unix / Linux 2.2.2 Evolution of Unix / Linux 2.2.3 Comparison of Unix / Linux operating systems with other 2.2.4 Creating User Accounts 2.2.5 Maintaining User Accounts 2.2.6 Creating and Maintaining Groups 2.2.7 The User Private Group Model 2.2.8 Creating Group Directories: the SGID Mode 2.2.9 The Initial User Environment 2.2.10 Pluggable Authentication Modules 2.2.11 Network Authentication Configuration: NIS 2.2.12 Mounting Filesystems: The mount Command and /etc/fstab 2.2.13 The Automounter 2.2.14 Security Configuration: Firewalls and SELinux 2.3 The Boot Process 2.3.1 Sequence of the Boot Process 2.3.2 BIOS Initialization 2.3.3 The GRUB Boot Loader 2.3.4 Kernel Initialization 2.3.5 init and /etc/inittab 2.3.6 Run Levels 2.3.7 Controlling Services 2.4 Introduction to the Shell and Shell Commands 2.4.1 Signing on to Unix / Linux 2.4.2 Unix / Linux system prompt 2.4.3 Introduction to some Unix / Linux commands: cat, ls, date, cal, logname 2.4.4 Stopping a command 2.4.5 Getting on-line help: the man command 2.4.6 Signing off 2.4.7 The vi editor 2.4.8 Unix / Linux file structure 2.4.9 Working with Directories 2.4.10 Working with Files 2.4.11 Creating files using cat

2.4.12 2.4.13 2.4.14 2.4.15 2.4.16 2.4.17 2.4.18

Counting words and characters: wc command Communication Utilities General Purpose Utilities The Shell The Process Pattern Search The Environment

2.5 Advanced C Programming 2.5.1 Linked Lists 2.5.2 Preprocessor Statements, Macros, Conditional Compilation, typedef 2.5.3 Eumerated Data Types 2.5.4 Unions 2.5.5 Register based variables, null statements and strings 2.5.6 Command Line Arguments 2.5.7 Pointers to functions 2.5.8 Formatters for characters and strings 2.5.9 System Calls 2.5.10 Suggested solutions to all problems 2.5.11 Advanced C, hardware accessing, longjump/ctrl break, tsr's, comms 2.6 Data Structures 2.6.1 Sorting Techniques-MergeSort, HeapSort, RadixSort, QuickSort 2.6.2 Searching Linear & Binary Search 2.6.3 Concept of Hashing 2.6.4 Dynamic Data Structures 2.6.5 Linked List Stack Queue 2.6.6 Priority Queue Circular List Doubly Linked List 2.6.7 Tree Binary Tree Traversal 2.6.8 Search Tree General Purpose Tree 2.6.9 Representation of General Purpose Tree 2.6.10 Binary Tree AVL Tree B- Tree 2.6.11 Concept of Algorithm. Resources -Time & Space Concepts of Time & Space Complexity 2.7 Linux at System Level 2.7.1 Introduction to Linux 2.7.2 Features of Linux OS 2.7.3 RT Linux vs. Desktop Linux 2.7.4 Architecture of Kernel 2.7.5 File Management Systems 2.7.5.1 Structure of FMS 2.7.5.2 Super Block 2.7.5.3 Inode Block 2.7.5.4 Data Block 2.7.5.5 Boot block 2.7.5.6 Inodes 2.7.5.7 Types of Data Blocks 2.7.5.8 Directory Structures 2.7.6 Process Management Systems 2.7.6.1 Structure of Processes, User Area Fields, 2.7.6.2 Process Information Table

2.7.6.3 Paging, Page Sizes, Offset, Region Tables 2.7.6.4 Layout of Kernel 2.7.6.5 Context of a Process, Register 2.7.6.6 Triples Allocating, Attaching, detaching, duplicating, freeing region Process Scheduling and types 2.7.6.7 Priorities of Processes 2.7.6.8 System Boot, Init process and Kill Signals 2.7.7 Memory Management Systems 2.7.7.1 Virtual and Physical Memory 2.7.7.2 Swapping and Paging 2.7.7.3 Demand Paging, Page Faults 2.7.7.4 Copy on Write bits 2.7.8 Inter Process Communication 2.7.8.1 Client- Server Model 2.7.8.2 Pipes, FIFO's, Drawbacks of Pipes and FIFO's 2.7.8.3 Message Queues 2.7.8.4 Shared Memory 2.7.8.5 Semaphores-binary and array of semaphores, 2.7.8.6 Socket programming 2.7.9 Interrupts and Exceptions 2.8 Linux At full Stretch (Device Driver programming) 2.8.1 Introduction to Device Driver Programming 2.8.2 Hardware Basics 2.8.3 The CPU, Memory, Buses, Controllers and Peripherals, Addresses, Timers 2.8.4 Kernel Source Code 2.8.5 Configuring & Compiling the kernel 2.8.6 Role Device Drivers 2.8.7 Types of Device driver 2.8.8 Loadable modules and its benefits 2.8.9 Functions used to load and unload modules 2.8.10 Passing parameters to a loadable module 2.8.11 Writing a Device Driver Programme 2.8.12 Important Header Files 2.8.13 Writing a simple module 2.8.14 Compiling and loading modules 2.8.15 Device information in /proc 2.8.16 Strace command 2.8.17 Ksyms and ksymoops 2.8.18 Debuggers like gdb, kgdb 2.8.19 Major and minor numbers 2.8.20 Creating device files with mknod 2.8.21 Registering a character device driver 2.8.22 IOCTL commands to interact with a device 2.8.23 Implementing IOCTL in driver 2.8.24 Functions for accessing user and kernel space 2.8.25 Exporting symbols from loadable module 2.8.26 Creating stacked loadable module 2.8.27 Printk for debugging 2.8.28 MEMORY & INTERRUPTS HANDLING 2.8.29 Memory allocation with kmalloc and kfree 2.8.30 Page oriented memory allocation

2.8.31 2.8.32 2.8.33 2.8.34 2.8.35 2.8.36 2.8.37 2.8.38 2.8.39 2.8.40 2.8.41

Memory allocation in the virtual address space Uses of I/O ports and IRQ's Platform dependency issues Functions used for reading/writing I/O ports Interrupt handler functions Timer Interrupts, Delay execution techniques Task queues, Task Queue operations Obtaining the current time PCI Interface Requirements for Network / Block drivers Various network and block driver methods

2.9 Real time oprating system (RTOS) 2.9.1 What is rtos. 2.9.2 Linux as a rtos 2.9.3 What is real time? 2.9.4 Hard real time os vs soft real time os 3 4 Project In Embedded Systems Engineering Resume 4.1 General Software Industry Concepts 4.1.1 Tools actually used by Embedded Engineers 4.1.2 Version control overview 4.1.3 Native compilation vs. Cross compilation 4.2 Placemat assistance