Innovation... driven by intelligence and logic

Topics - Embedded Systems Software Engineering

Modules and Projects in

Embedded Systems Software Engineering

 

Sl No.

Module No.

Project No.

Module Name

Working

Days

Classes

(2 Hrs)

  Labs   

(4 Hrs)

1. 00. 00. Linux Systems and Network Administration 5 5 5
2.   01. Data Structures using C with Linux. 20 17 20
      Project using Linux, gcc, C, gdb and source code control tools.        
 
3. 01. 11. Shell Scripting using Bash 5 5 5
4.   03. Linux programming and IPC 10 7 10
      Project using Linux, system C and IPC.      
5.   04. Network programming using Threads and sockets 6 4 6
      Project using Linux, threads ,sockets and network programming.      
 
6. 02. 05. Character Device Driver 18 18 18
7. . 06. Parallel Port Device Driver 7 7 7
 
8. 03. 12. Linux architecture and Internals 10 10 8
9.   07. Serial Port Device Driver 7 5 7
    08. Block Device Driver 7 7 7
 
10. 04. 09. Embedded Linux on ARM using Storage 15 15 15
11.   25. ARM Architecture and Embedded Applications 10 10 10
 
12. 05. 10. Embedded Linux porting on ARM and configuring GUI 10 10 10
13.   17. Embedded Linux on ARM using Network  10 10 10
14.   31. Embedded Linux on ARM using Standalone Setup 10 10 10
 
14. 06.. 16. USB Device Drivers Development 15 15 15
15.   21. I2C Device Driver 10 10 10
 
16. 07. 20. PCI Device Drivers 10 10 10
17.   22. SPI Device Driver 10 10 10
 
18. 08. 15. A Ethernet - Network Device Drivers Based Project 15 15 15
19.   24. A Wireless LAN Device Driver 15 15 15
             
18. 09. 02. Object oriented programming and Data Structures with C++ 24 24 24
 
19. 10. 28. Shell Scripting using Python programming language 24 24 24
 
20. 11. 13. A Linux System Programming using Memory Management 10 10 10
21.   14. A Linux System Programming using Interrupts 8 8 8
22.   27. Linux System Programming using IO Memory and Ports 8 8 8
 
22. 12. 29. VHDL - Verilog Hardware Definition Language 24 24 24

 

A brief description of Modules:

  • Module 00: Linux System and Network Administration

    • It should normally take 5 working days for this module to be completed.

    • There would be 5 classes of 2 Hours each.

    • There would be 5 Labs of 4 Hours each.

After This Module would be over, you should be able to:

  • Work comfertably on a Linux Workstation.

  • Install Linux, flavour Fedora and Debian using media i.e. cdrom.

  • Install Linux, flavour Fedora using media i.e. usb.

  • Install Linux, flavour Fedora using network.

  • Use vim editor efficiently for writing text and programs.

  • Compile programs using gcc - C compiler.

  • Able to Configure and use the following servers:

    • TFTP, FTP, TELNET, ssh, DNS, DHCP, NFS.

  • Module 01: Date structures using C and Linux

    • It should normally take 17 working days for this module to be completed

    • There would be 17 classes of 2 Hours each.

    • There would be 17 Labs of 4 Hours each.

After This Module would be over, you should be:

  • Comfortable with respect to programming in C

  • Able to Implement and use Data Structures using C.

  • Proficient in Advanced C.

  • Having good understanding about gcc compiler.

  • Able to debug complex C programs using gdb.

  • Ready for System Programming using C

  • Adept with Project Management tools.

  • Efficient with Source code management tools.

 

  • Module 11: Shell Scripting using Bash
    • It should normally take 5 working days for this module to be completed.

    • There would be 5 classes of 2 Hours each.

    • There would be 5 Labs of 4 Hours each.

After This Module would be over, you should be able to:

  • write shell scripts using Bash

  • Run and Controlling Scripts with ease

  • Debug shell scripts

  • Do scripting using files, sed, awk efficiently

  • Control processes

  • Handle System Administration

 

  • Module 03:Linux programming and IPC
    • It should normally take 7 working days for this module to be completed.

    • There would be 7 classes of 2 Hours each.

    • There would be 7 Labs of 4 Hours each.

After this Module would be over, you should:

  • be able to understand process creation, loading, duplication, replacement and destroying.

  • be adept with Process Management, Signals and Signal Handlers.b

  • be adroit with IPC Mechanism - Pipes, FIFOs, Message Queues and Shared Memory.

  • be proficient with Synchronization Techniques - Semaphores.

  • be seasoned and Skillful in implementing client server architecture using IPC and synchroniz optimally.

  • have implemented a project using the concepts learned.

 

  • Module 04: Network Programming using Threads and Sockets:
    • It should normally take 6 working days for this module to be completed.

    • There would be 4 classes of 2 Hours each.

    • There would be 4 Labs of 4 Hours each.

After this Module would be over, you should be able to:

  • understand the concepts of Threads as used in linux.

  • Synchronize Threads using joining and threads semaphores.

  • debug timing faults in threads and synchronize.

  • set thread attributes as required.

  • implemtnt communication among threads.

  • understand communication endpoints and implement network interface - sockets.

  • communicate across the network using sockets.

  • synchronize communication across the network

  • Implement a network programming project using threads, threads semaphore, sockets using AF_INET.

 

  • Module 05: Character Device Driver
    • It should normally take 17 working days for this module to be completed.

    • There would be 17 classes of 2 Hours each.

    • There would be 17 Labs of 4 Hours each.

After this Module would be over, you should be able to:

  • have an indepth driver level underatanding

  • understand the loadable kernel modules interfaces with the kernel

  • write a complete GPIO character driver.

  • synchronize device operations using semaphores, spinlocks, completion, blocking IO, wait queues.

  • implement advanced device operations like io control, /proc, sysfs.

  • underatand timing mechanism

  • implement kernel timers, tasklets and shared queues.

  • adept with usage of interrupts for devices.

  • Module 12: Linux Krnel Architecture and Internals
  • It should normally take 15 working days for this module to be completed

  • There would be 15 classes of 2 Hours each.

  • There would be 15 Labs of 4 Hours each.

After this Module would be over, you should be:

  • able to understand Linux Kernel Architecture

  • well versed with Linux internals

 

  • Module 06: Parallel Port Device Driver
    • It should normally take 7 working days for this module to be completed.

    • There would be 5 classes of 2 Hours each.

    • There would be 7 Labs of 4 Hours each.

After this Module would be over, you should be able to:

  • understand the working of parallel port

  • write device driver for parallel port from scratch in following modes

    • ​Compatiblity mode or centronics

    • Byte mode

    • nibble mode

    • ECP mode

    • EPP mode

  • use interrupts for parallel port.

 

  • Module 07: Serial Port Device Driver:
    • It should normally take 7 working days for this module to be completed.

    • There would be 5 classes of 2 Hours each.

    • There would be 7 Labs of 4 Hours each.

After this Module would be over, you should be able to:

  • adept with RS232 protocol

    • understand the working of serial port

  • write device driver for serial port from scratch

  • implement GPIO using serial port device driver

  • interpreet datasheets for writing device drivers

  • use interrupts for serial port.

  • Module 25: ARM Architecture and Embdded Applications:
    • It should normally take 10 working days for this module to be completed.

    • There would be 10 classes of 2 Hours each.

    • There would be 10 Labs of 4 Hours each.

After This Module would be over, you should be able to:

  • understand ARM Architecture in depth

  • know the Programmer’s Model well

  • know the ARM Instruction Sets

  • adept with the following ARM Processor Cores

  • ARM Architecture v4 Cores

  • ARM Architecture v5 Cores

  • ARM Architecture v6 Cores

  • ARM Architecture v7 Cores

  • ARM Cortex A8

  • Know ARM System Design, AMBA 

  • Do Debug and Trace

  • Write Software for ARM Processors

  • Use Software Development Tools

  • Do Exception Handling

  • Do Embedded Software Development

  • Understand Development Platforms

  • Module 08: Block Device Driver:
    • It should normally take 7 working days for this module to be completed.

    • There would be 5 classes of 2 Hours each.

    • There would be 7 Labs of 4 Hours each.

After this Module would be over, you should be able to:

  • understand the working of block drivers

  • write write device driver from scratch

  • implement GPIO using block device driver

  • implement block device operations

  • understand the gendisk structure.

  • implement IO control

  • do request processing

  • use request queues

  • understand bio structure, request structure fields, barrier requests, nonretryable requests.

  • implement request completion functions.

  • work with bios

  • do block request with dma

  • understand the mechanism for command pre-preperation

  • Tagged command queueing

 

  • Module 09: Embedded Linux with ARM using Storage
    • It should normally take 15 working days for this module to be completed.

    • There would be 10 classes of 2 Hours each.

    • There would be 15 Labs of 4 Hours each.

After this Module would be over, you should be able to:

  • underatand the internal for Linux

  • build a cross-compiled toolchain

  • configure bootloader-U-boot

  • Configure, (cross)compile and boot a Linux kernel

  • Create a simple, BusyBox based root filesystem from scratch

  • understand block filesystems

  • Create Flash filesystems – Manipulating flash partitions

  • Cross-compile libraries and applications

  • Use Embedded system building tools

  • Develop and debug applications for the embedded system

  • Do system optimizations

 

  • Module 10An Embedded Linux on ARM Cortex A8 and configuring GUI

  • Module 02: Data structures with C++
    • It should normally take 10 working days for this module to be completed.

    • There would be 10 classes of 2 Hours each.

    • There would be 10 Labs of 4 Hours each.

After This Module would be over, you should be able to:

  • Comfortable with respect to programming in C++

  • Able to Implement and use Data Structures using C++.

  • Proficient in Abstract Classes and STL Classes.

  • Having good understanding about g++ compiler.

  • Able to debug complex C++ programs using gdb.

  • Ready for System Programming using C++

  • Module 16: USB Device Driver Development

    • It should normally take 10 working days for this module to be completed.

    • There would be 10 classes of 2 Hours each.

    • There would be 10 Labs of 4 Hours each.

  • Module 17: Porting Embedded Linux on ARM using Networks

    • It should normally take 10 working days for this module to be completed.

    • There would be 10 classes of 2 Hours each.

    • There would be 10 Labs of 4 Hours each.

  • Module 20: PCI Device Drivers

    • It should normally take 10 working days for this module to be completed.

    • There would be 10 classes of 2 Hours each.

    • There would be 10 Labs of 4 Hours each.

 


EmbLogic™ is an ISO 9001:2008(QMS) (Quality Management System) Certified Company.

Go to Top ^