Вы находитесь на странице: 1из 8

Course Content

Module I: Introduction to embedded systems & Programming language.


What is an embedded system? Why C in embedded systems? Overview of ANSI C.

An Introduction to C C Basic data types Integer types Floating point types Pointers (pointer arithmetic, pointer derefencing) Arrays The relationship between arrays and pointers Enums Programming constructs if - else statements switch statements while loops and do - while loops for loops goto statements Arrays Overview Array Basics Array Example Looping Over an Array Array Sizes Copying Arrays Initializing Arrays Strings Array Caveats

Functions in C Function prototypes Understanding C's call by value mechanism for passing arguments Implementing functions Calling functions Using pointers to pass values by reference Passing arrays to functions Understanding C's return value mechanism Using pointers to return values by reference Advanced topics Pointers to pointers Function pointers Const and static keywords - their meanings and uses Casts and casting Using void * pointers Data structures containing pointers to data structures Data structures containing function pointers Function pointers and table driven programming Bit fields in data structures and Unions Data structures: Linear & non-linear Homogenous & non-homogenous Static & dynamic Single , double & circular linked lists Stacks & queues Binary trees Sorting and searching techniques: Insertion , selection , bubble Merge , quick , heap Command line arguments: Argc , argv Variable inputs to the main Compiler in practical: Preprocessor directives Compiler , assembler , linker Conditional compilation Multiple file compilation Code optimization techniques

Volatile , #pragma Overview of the C standard library putc, putchar, getc, getchar printf, scanf String manipulation functions ( strcpy, strcat, ... )

MODULE II: Architecture of Embedded Systems & Microcontroller 8051 Introduction: Microprocessor Vs microcontroller Over view of embedded system architecture CLSC Vs RISC Overview of architecture of 8051: Processor core and functional block diagram Description of memory organization Clock circuitory Over view of all sfrs and their basic functionality Low level programming concepts: Addressing modes Instruction set and assembly language (alp) Watchdog timer / reset circuitory Chipset i/p & o/p devices dma-adc , dac, ,sensors & transducers categories of embedded operating systems application software Developing , building , and debugging alps Cross compiler Embedded C implementation, prog. & debugging Differences from ANSI-C Embedded C Memory models Library reference Use of #pragma directive Functions , parameter passing and return types Pointer usage Volatile Mixing C and Assembly MISRA standards C99 Embedded extensions Optimization techniques Reliability issues

Portability issues Booting On-chip peripherals: Ports: input/output Timers & counters Interrupts , UART Real-Time - C Techniques for Dealing with Time What is Real-Time? Characteristics of Real-Time Applications Synchronising I/O with CPU Via Polling Synchronising I/O with CPU Via Interrupts Interrupts Capabilities of the 16f877 Pic Handling Interrupts Generating Delays Via Software C Delay Loops Generating Delays Via Hardware MODULE III: Communication interfaces Need for communication interface RS232 / UART RS 422 / rs 485 I2C (efprom) SPI (eeprom) CAN USB(usb physical interfaces & features of usb) MODULE IV: Introduction and programming with ARM Core controllers. (Preferably LPC21XX from Philips Semiconductors) Role of controllers and their specifications along with usage MCS-51 Architecture and programming in KEIL IDE. This includes hands on sessions on various interfaces and application development around C51 core controllers. Usage of Simulator for Debugging in KEIL. Introduction to ARM Controllers & programming ARM through KEIL IDE. Programming for UART, I2C, CAN, SPI on ARM controller(LPC 21XX). Interfacing devices like ADC, DAC, Alpha Numeric LCD, Graphic LCD, RF Modems, GSM Modems, I2C based devices, RTC, UART etc device driver implementation. Introduction to various Communication protocols like CAN,I2C, SPI, Firewire/IEEE 1394, USB etc.

MODULE V :Linux Programming and Internals Introduction to operating systems Introduction to Linux. Standard I/O library function Threads. MODULE VI: Advanced linux system programming & linux internals Introduction to operating system-services , components & structure( 1hr ) POSIX standard & linux features( 1hr ) I/O Subsystem. Architecture and Introduction to Kernel. File System Organization. Introduction to system calls( 1hr ) Memory Management Process Management. Inter Process Communication -signals, pipes, FIFOS, message queues, shared memory, semaphores( 8hrs ) Introduction to Socket programming-TCP/IP MODULE VII: Real time operating system RTOS Basic Concepts Tasks, Threads, POSIX Pthreads Basics Why Tasks? Multitasking Example Our Terminology Processes and Threads Analogy Synchronisation, Scheduling and Races Thread Basics Creating Posix Pthreads Creating Threads Example Example of Multiple Threads Shared Data Problems Race Conditions Dealing with Critical Sections Example of Unprotected Critical Section Protecting Critical Sections Drawbacks to Mutexes Using Condition Variables Operations on Condition Variables Semaphores Spinlocks Debugging Multithreaded Programs Thread-Safe Functions Deadlocks

Prioity Inversion RTOS Implementation VXWORKS/Wince: Introduction to tornado/platform builder Wind kernel POSIX features Tornado development tools Task management Priority based , round robin based Inter task communication and synchronization Dead lock handling , watch-dog timer Semaphores & message queue Pipes & i/o Drivers Priority inversion and inheritance Socket programming B.S.P creation Kernel configuration , build and load Application loading through target server Installation and implementation Porting of VxWORKS on intel-x86 board MODULE VIII :Device Drivers and Interrupt Servicing Mechanism Introduction to Device Drivers. Types of Device Drivers. Device Drivers for Character, Block and Network Devices. Interrupt Servicing (Handling) Mechanism. Context, Context-Switching, Deadline and Interrupt Latency. Linux Device Drivers: Linux Device Drivers Driver Types Device Number Driver Initialization Module Load/Unload Providing Module Parameters Open and Release Functions Read and Write Write Reading from Device Read Code Tasklet and Bottom Half Code Interrupt and Tasklet Code

Hands on Sessions: Extensive sessions on Programming in C Introduction and Programming in C. Data structures implementation. Searching and Sorting Algorithms Implementation. Basics of Cryptography and data security. Optimization concepts with respect to memory and time in the implementation of various algorithms. Introduction to Debugging Techniques. Interfacing to external world through PC using C programming language. Basics of event driven programming Port I/O - flashing LEDs Software delays Keypad scanning Basic RS232 Basic data acquisition and sensor interfacing Working with EEPROM (on chip and SPI/I2C) Embedded software development on 89c51 microcontroller platform: Development environment Cross-platform development tools Application development To toggle leds To glow a led when a switch is pressed Seven segment display Lcd Keypad matrix Communication through UART port Porting applications on 8 bit microcontrollers like C51 core, PIC etc. Application designing with various interfacings like (ADC, DAC, LCD, RS 232 IC etc). Development of Firmware for various controller families.

RTOS: Interrupt based Programming and Context-Switching, saving methods implementation. Programming in RTOS (Micro C OS, Vx-Works). Writing serial and Parallel Device Drivers Case study on Implementing Character device, Block Device, and Network Devices in Linux. Additional Modules: Embedded Linux Windows Mobile Concepts of Android

Вам также может понравиться