Course Duration: 16 Weeks |
Course Structure and Outline |
Mod. |
Module Title |
What You Learn |
P1
(3 Days) |
Engineering primer |
- Number systems
- Logic gates
- Boolean expressions
- Introduction to registers and counters
- Introduction to Embedded systems
|
P2
(10 Days) |
C Primer |
- Introduction to C Programming - Structure of a C program, The C compilation process
- Types and Operators - C base types, Precedence & Associativity, - Arithmetic operation, Promotion & Typecasting
- Control Flow - Logical expressions and operations, Decision Making, Loops
- Definitions and declarations, Header files, Scope and lifetime - Storage Classes
- Introduction to pointers - Using pointers to access single dimensional arrays
- Bit Manipulation, Bit level manipulation
- Standard C I/O functions
- Functions - The Function as a logical program unit, Parameter passing by copy and reference
|
C1
(18 Days) |
Designing with ARM7 |
- Introduction to MCU / MPU
- Introduction to ARM
- ARM7-TDMI Architecture & Programmer’s model
- ARM & THUMB Instruction Set Architecture’s
- ARM7 Assembly programming using Keil MDK tool-chain
- LPC2378 - ARM7 based MCU Architecture & Programming using Embedded C
- Interfacing and Programming with LPC2378(GPIO - LED, Switches, Matrix Keypad & LCD, Timer, RTC, ADC, UART)
- In-Circuit debugging using Keil Ulink2 JTAG debugger
- Boot sequence & System initialization
- Exception handling
- Advanced simulation, Code profiling & Optimization techniques
- Overview of Serial protocols (SPI, I2C and CAN) Overview of ARM Cortex Cores
|
C2
(18 Days) |
Advanced C |
- Advanced Pointers – Pointer array, array of pointers, pointer to arrays, function pointers
- C string handling
- Advanced Data types - Structures, Unions and Enums, Bit-fields
- Dynamic Memory allocation techniques
- Data Structures - Linked lists, Stacks, Queues, Binary Search trees, applications
- Search and Sort algorithms
- Conditional compilation
- File operations
|
C3
(8 Days) |
GPOS and Shell Scripting |
- Introduction to operating system
- Process Management
- File Management
- Memory management
- Shell scripting
|
C4
(12 Days) |
System Programming using Linux |
- Linux kernel architecture – Kernel subsystem, system call interface, scheduler, virtual memory management, file system management
- Linux System Programming: File I/O, Signals, Timer and Sleeping, Memory Allocation
- Process Management: Process, Process Descriptor, Process States, Threads, Process Creation, Execution, Termination
- Inter-Process Communication: Kernel IPC Facilities, Pipes, POSIX Message Queue, POSIX Semaphore, Shared Memory
|
Integrated in the course |
Module Projects |
C/8051/ARM/RTOS |
Elective 1
(10 Days) |
Linux Device Drivers |
- Essentials of kernel programming
- Dynamically loadable kernel module
- Memory Allocation schemes in kernel
- Interrupt handling – top and bottom halves, deferring work
- Kernel synchronisation tools
- Wait event queues
- Developing and running char drivers
- Developing and running Block drivers
- Debugging techniques
- Proc file system
- Linux device model , device tree
|
Elective 2
(10 days) |
Real Time Operating system
µCOS |
- Introduction to µC/OS-II RTOS
- RTOS Fundamentals: Real Time Scheduling and Timing, Clock Ticks, Priority Scheduling, Application development using µC/OSII RTOS
- RTOS Task Management: Task Creation, Multi-Tasking, Task Scheduling, Task Query, Task Deletion, Task Change Priority, Task Suspend/Resume
- RTOS Time Management: Timer and Timer Services, Timer Delay, Get/Set Timer RTOS Inter-Process Communication: Hardware Synchronization, Binary Semaphore, Counting Semaphore, Mutual Exclusion, Message Queue Management, Shared Memory, The Critical Section Problem, Priority Inheritance
|
Elective 3
(10 Days) |
C++ |
- Introduction to object oriented programming
- Classes and objects
- Constructors and Destructors
- Dynamic memory allocation techniques
- Exception handling
- Polymorphism – Function overloading
- Polymorphism – Operator overloading
- Inheritance
- Run time polymorphism
|
Elective 4
(10 Days) |
Embedded System Design Using Zynq |
- Overview of Embedded Software Development
- Zynq-7000 All Programmable SoC Architecture Overview
- Introduction to FPGA
- Driving the Vivado Tool
- Driving the SDK tool
- Standalone Software Platform Development
- Interrupts – software consideration
- AXI - Introduction, Transaction
- AXI: Connecting AXI IP
- Integration of software and hardware design
|
|