Top Banner

Click here to load reader

Embedded system - embedded system programming

Jan 22, 2018



  1. 1. Embedded System Programming Introduction to Device Drivers By :- Vibrant Technologies & Computer
  2. 2. What are device drivers? Software interfaces to hardware resources in the kernel Mirrors variety of hardware resources Can change constantly Will require reconfiguration Different interfaces into the same devices Require kernel resident programs Uses module interface
  3. 3. Types of device driver There are some general types or characteristics of device drivers Character devices Serial data stream Block devices Accessed via blocked data stream Network interfaces Although serial, has no mapping into file system
  4. 4. Recognising device drivers Apart from network devices most drivers appear like file in the Unix system ls l /dev crw-r--r-- 1 root root 10, 134 Jun7 1996 apm_bios brw-rw---- 1 root floppy 2, 0 May 14 1996 fd0 Device type Major number Minor number File Name
  5. 5. Character Device Drivers Data is a serial stream No random access Even a block devices can be a character one! Printers
  6. 6. Block Devices Data is read in blocks Block size depends upon the device Random access is supported Files systems can only be mounted block devices Block devices can have character interfaces fsck works on character raw interface to file system
  7. 7. Network Interfaces Network interfaces act in some ways like a serial character orientated device, however they dont exist in the file system For example eth0 is queried through the ifconfig command Weirdly, network devices can support block features for example network mounted file systems
  8. 8. Character & Block Device number assignment Character devices 1 Memory 4 Terminal 6 Parallel interfaces 7 Vitual consoles 9 SCSI tapes 10 Bus mice 12 QIC02 Tape 13 PC speaker driver Block devices 1 RAM disk 2 Floppy disk 3 IDE disk 8 SCSI disk 11 SCSI CD-ROM 13XT 8-bit hard disk
  9. 9. Loadable modules Historically there has been a split between monolithic kernels All code is contained in the kernel, fixed at build or boot time This means that kernel can be fast and efficient And Micro kernels Small lightweight kernel that load features in at run time, when required The kernel is smaller, easier to port, the feaure list of more flexible Linux loadable modules gives a compromise position Mainly monolithic kernel but can load modules in when needed The use of modules for devices is clearly important
  10. 10. Kernel Modules The provision of kernel modules allows code to be introduced into a running kernel. This requires the kernel to be built with this capability, it also requires the commands Insmod and rmmod (plus lsmod, depmod and modprobe) Modules can be loaded on demand automatically.
  11. 11. Module programming The 2.6 kernel has changed the way module programming is handled. We will look at this later on for the moment we will deal with 2.4 Modules under 2.4 are just ordinary unlinked object files (cc o) Although they must link with the kernel and can bring it down, so they are rather special.
  12. 12. Module programs Requires header files These will include others Needs an init_module and cleanup_module function The return value is important Only return 0. Use of printk #include #include int init_module(void) { printk("Hello world 1.n"); return 0; } void cleanup_module(void) { printk("KERN_ALERT "Goodbye cruel world 1.n"); }
  13. 13. Using macros Use of init & exit macros Use of __init and __initdata #include #include #include static int hello_data __init_data= 47; static int __init hello2_init(void) { printk("Hello world 2. %d n", hello_data); return 0; } static void __exit hello2_exit(void) { printk("KERN_ALERT "Goodbye cruel world 2.n"); } module_init(hello2_init); module_exit(hello2_exit);
  14. 14. Features of kernel programming Dont use libraries only kernel code Printk not printf Set use of headers /usr/include/asm & /usr/include/linux Beware of namespace pollution Code shares names with the kernel Use static
  15. 15. ThankThank You !!!You !!! For More Information click below link: Follow Us on: mumbai.html
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.