Innovation... driven by intelligence and logic

Advanced Device Driver Development

Advanced Device Driver Development

This training program covers three different types of device drivers. It involves implementing parallelport device driver, serial port device driver and block device driver.

A character device driver is one that transfers data directly to and from a user process. This is the most common type of device driver and there are plenty of simple examples in the source tree.Character device drivers may transfer data between a user-level process and the device using any scheme other than the system buffer cache. Character drivers control devices such as network cards, terminal devices, printers, and specialized devices such as robots, medical devices, and retail sales devices.

parallel port is a type of interface found oncomputers (personal and otherwise) for connecting peripherals. In computing, a parallel port is a parallel communication physical interface. It is also known as a printer port or Centronics port. It was a de facto industry standard for many years, and was finally standardized as IEEE 1284 in the late 1990s, which defined a bi-directional version of the port. Today, the parallel port interface is seeing decreasing use because of the rise of Universal Serial Bus (USB) and FireWire (IEEE 1394) devices, along with network printing using Ethernet.We use Parallel port Device Driver Development as a building block towards mastering Device Driver Development. We would implement Driver for 74LS24 chip and use ISSS1284 Standard.

The training program on Serial Port Device Driver Development aims at creating the driver from scratch. During the training, we would discuss in detail about data-sheet interpretation, underatanding the architecture of the serial port and the assicoated chip PC16550D, underatanding serial IO, RS232 protocol. Then the driver development would start.

Training Content with Modules and Projects. click here...

Salient features of the Training Program:

Training Objective:

  • This course is designed to ensure that students of Engineering College with academic capabilities will have the skill set needed to deal with the challenges involved in real-world Embedded Technologies to meet the needs of industries both today and in the future.
  • This career oriented program considers understanding the Linux operating system internals, device driver architecture
  • Implementing the following device driver
    • ​Parallel port device driver using IEEE1284 protocol for 74LS244 chip.
    • Serial Port Device Driver using RS232 protocol for PC16550D Chip
    • Block Device Driver for SD/MMC cards
  • This course is taught mainly using Linux operating system (fedora/ubuntu/debian), systems based on x86 processors and a PC emulated as an embedded device.

Pre Requisite:

  • Good Programming skills in C, Shell Scripts
  • Good understanding about kernel internals is asumed
  • An Engineering Degree (completed or persuing(third/final year)) in the stream of: Electronics, Computer Science, Information Technology, Instrumentation or Master of Application (MCA).


  • The Duration of Training should be:
    • 24 working days
    • There would be (approx) 20 Classroom Sessions of 2 Hours each.
    • There would be (approx) 24 Lab Sessions of 4 hours each.
  • Training Methodology:
    • Hands on approach to training, behaviorial model of training would be practiced.
    • During the training, the Trainee whould learn and implement Linux shstem and network programming
    • Comitment to Individual growth and constant evaluation.
  • Deliverables:
    • The Trainee should be able to:-
      • understand device driver architecture for Linux
      • understand the parallel port device architecture
      • know and implement the IEEE1284 standard
      • understand the 74LS244 chip architecture
      • Implement the parallel port device driver in 4 different modes. Compatibility mode, Byte mode, Nibble mode and Half duplex mode
      • Understand the RS232 protocol
      • understand the Linux block layer
      • understand IO mechanism in Linux
      • understand the concept of sectors, blocks, buffers and pages
      • understand the device driver architecture
      • understand the memory allocation and IO blocks creation
      • Implement complete block driver from scratch including...
      • Implement block device driver registration with linux kernel
      • Implement queue initialization, synchronization and timer initialization
      • Implement initialization of block device structure
      • Implement Operations support initialization for the driver
      • Implement request functions and transfer functions
      • Implement all 5 standard request function like opening, closing, read, write ioctl and media change
  • EmbLogicTM would issue The Certificate of Completion for the training as mentioned above.

EmbLogicTM is an ISO 9001:2008(QMS) (Quality Management System) Certified Company



Go to Top ^