Linux Device Drivers - Communicating with Hardware
What you'll learn
- IO Mapped IO
- Memory Mapped IO
- PCI
- Kernel Modules for Keyboard and RTC
Requirements
- Should be able to write/compile/load/unload Hello World Linux Kernel Modules
Description
What you will learn in this course:
Two modes of communication with hardware - IO Mapped IO and Memory Mapped IO
Kernel Drivers/Modules for IO Mapped IO - Speaker, RTC, Keyboard
Kernel Drivers/Modules for Memory Mapped IO - Hardware Random Generator, GPIO, UART
Accessing IO Mapped IO and Memory Mapped IO from user space
PCI and SMBIOS
API's/Macros/Structures
inb, outb, inw, outw, inl, outl
inb_p, outb_p, inw_p, outw_p, inl_p, outl_p
struct resource, request_region, release_region
ioperm, iopl, geteuid
request_mem_region, release_mem_region, ioremap, iounmap, ioread8, ioread16, ioread32, iowrite8, iowrite16, iowrite32
ioport_map, ioport_unmap,mmap
Files:
/dev/port, /dev/mem, /proc/iomem, /proc/ioports
Commands
hwclock
date
showkey
hexdump
strings
dd
lspci
biosdecode
dmidecode
Who this course is for:
- Kernel developers curious about learning how to communicate with hardware
Course content
- Preview02:46
- Preview01:03
- Preview03:54
Instructor
I have been working on Linux for more than 7 years. I have seen many people still lack their skills on Linux. So, i am working on courses for Linux which will make them Learn Linux in an easy way. The agenda of my courses will be more practical and less theoretical. Show more examples and you will easily grab the concepts.
Order of Learning
1. Learn Linux User Space Debugging
2. Learn Linux Kernel Programming
3. Character Device Drivers in Deep
4. Memory management in Linux Kernel
5. Synchronization in Linux Kernel Programming
6. Linux Kernel Development Model and Compilation
7. Linux Device Drivers - Communicating with Hardware
8. Interrupts and Bottom Halves in Linux Kernel
9. System calls in deep
10. Timing Subsystem in deep
11. Embedded Linux using Yocto
12. Embedded Linux using Yocto Part 2
13. Embedded Linux using Yocto Part 3
14. Embedded Linux using Yocto Part 4
15. Testing Linux Kernel
16. Debugging Linux kernel in deep - Part 1
17. Debugging Linux kernel in deep - Part 2