Zenler Player
Your course is loading. Hang tight.
Linux Device Driver Programming With Beaglebone Black (LDD1)
Back to curriculum
0% Complete
0% Complete
About the instructor
Source code and course materials
Host and target setup
Tool-chain download
Important Note
Installing gparted application
Tool-chain installation and PATH settings
Note for the students
Target preparation : Serial debug setup
Important documents
Understanding booting sequence of beaglebone black hardware
Preparing SD card for SD boot
Copying boot images to SD card
Booting BBB via SD card
Making SD boot default on BBB by erasing eMMC MBR
Updating Linux kernel image
Linux kernel compilation
Modules compilation
Modules install
Update new boot images and modules in SD card
Enabling internet over USB
Introduction to Linux kernel module
User space Vs kernel space
LKM writing syntax
__init and __exit macros
LKM entry point registration and other macros
Hello World LKM
Building a Linux kernel module
Compilation and testing of an LKM
Testing of an LKM on target
Makefile
Intree building
printk
What is device driver ?
A char driver , char device and char device number
Dynamically allocating char device numbers
Pseudo character driver implementation
Character device registration
Character device registration contd.
Character driver file operation methods
Character driver file operation methods contd.
Implementing file operation methods
File operations structure initialization
Creating device files
Character driver cleanup function implementation
Understanding read method
Understanding error codes
Read method implementation
Understanding write method
Write method implementation
lseek method
lseek method implementation
Testing pseudo char driver
Error handling
pcd driver with multiple devices
Pcd driver with multiple devices code implementation part-1
Pcd driver with multiple devices code implementation part-2
Pcd driver with multiple devices code implementation part-3
Pcd driver with multiple devices code implementation part-4
Pcd driver with multiple devices code implementation part-5
Pcd driver with multiple devices code implementation part-6
Pcd driver with multiple devices code implementation part-7
Pcd driver with multiple devices testing
Pcd driver with multiple devices testing contd
Pcd driver with multiple devices lseek implementation
Container of discussion
Platform devices and drivers
Example of platform drivers
Registering platform device and drivers
Platform driver code exercise
Platform device setup code implementation
Platform device setup code implementation contd.
Platform driver code implementation part-1
Platform driver code implementation part-2
Platform driver code implementation part-3
Platform driver code implementation part-4
Platform driver code implementation part-5
Platform driver code implementation part-6
Testing platform driver
Linux device resource managed functions
Using device resource managed kernel functions
Testing with more platform devices
Fixing kernel crash
Platform device driver matching using platform device ids
Fixing error handling in probe function
Introduction to device tree
Writing device tree
Device tree structure
Device tree writing syntax
Device tree parent and child node
Device tree properties
'compatible' property
Device tree binding
pcd device tree version
Switching to Linux kernel version 5.4
Updating Linux kernel image of 5.4
Device tree nodes for pcd driver
Pcd platform driver DT coding part-1
Testing device tree changes on board
Pcd platform driver DT coding part-2
Pcd platform driver DT coding part-3
Pcd platform driver DT coding part-4
Introduction to device tree overlays
Device tree overlays exercise
Updating u-boot
Updating u-boot contd.
Applying overlays using u-boot commands
Applying overlays and testing using u-boot uEnv.txt file
Linux device model
kobjects
kobject type and kset
sysfs and kobject attributes
Creating sysfs attributes
pcd_sysfs_attributes coding part 1
pcd_sysfs_attributes coding part 2
pcd sysfs kernel module testing
show and store methods of the sysfs attributes
pcd_sysfs_attributes coding part 3
Attribute grouping
Introduction
GPIOs of BBB
Pad configuration register
Linux GPIO subsystem
Consumer accessing GPIO pins
Exercise GPIO Sysfs driver implementation
GPIO Sysfs driver implementation part-1
GPIO Sysfs driver implementation part-2
GPIO Sysfs driver implementation part-3
GPIO Sysfs driver implementation part-4
GPIO Sysfs driver implementation part-5
GPIO Sysfs driver implementation part-6
GPIO Sysfs driver implementation part-7
GPIO Sysfs driver implementation part-8
Gpio syfs driver testing
Pin control subsystem and pin controller
Writing pin configuration node
LCD exercise
Significance of LCD application
Adding pin configuration node for gpios
Exploring LCD code
Sending command to LCD
Creating LCD command code
Testing LCD application over gpio sysfs
Assignment : Implementing LCD platform driver
Avoiding race conditions
Linux locking services
Spinlock Vs Mutex
Linux spinlock functions
Mutex
Using locking functions in the code
BONUS LECTURE
Host and target setup
About the instructor
Source code and course materials
Host and target setup
Preview
Tool-chain download
Preview
Important Note
Installing gparted application
Preview
Tool-chain installation and PATH settings
Note for the students
Target preparation : Serial debug setup
Important documents
Understanding booting sequence of beaglebone black hardware
Preparing SD card for SD boot
Copying boot images to SD card
Booting BBB via SD card
Making SD boot default on BBB by erasing eMMC MBR
Updating Linux kernel image
Preview
Linux kernel compilation
Preview
Modules compilation
Modules install
Update new boot images and modules in SD card
Enabling internet over USB
Preview
Linux kernel module
Introduction to Linux kernel module
User space Vs kernel space
LKM writing syntax
Preview
__init and __exit macros
Preview
LKM entry point registration and other macros
Preview
Hello World LKM
Building a Linux kernel module
Compilation and testing of an LKM
Testing of an LKM on target
Makefile
Intree building
printk
Character device and driver
What is device driver ?
A char driver , char device and char device number
Preview
Dynamically allocating char device numbers
Preview
Pseudo character driver implementation
Preview
Character device registration
Character device registration contd.
Character driver file operation methods
Preview
Character driver file operation methods contd.
Implementing file operation methods
File operations structure initialization
Creating device files
Character driver cleanup function implementation
Character driver file operations implementation
Understanding read method
Understanding error codes
Read method implementation
Understanding write method
Write method implementation
lseek method
lseek method implementation
Testing pseudo char driver
Error handling
Char driver with multiple device nodes
pcd driver with multiple devices
Pcd driver with multiple devices code implementation part-1
Pcd driver with multiple devices code implementation part-2
Pcd driver with multiple devices code implementation part-3
Pcd driver with multiple devices code implementation part-4
Pcd driver with multiple devices code implementation part-5
Pcd driver with multiple devices code implementation part-6
Pcd driver with multiple devices code implementation part-7
Pcd driver with multiple devices testing
Pcd driver with multiple devices testing contd
Preview
Pcd driver with multiple devices lseek implementation
Container of discussion
Platform bus, Platform devices and Platform drivers
Platform devices and drivers
Example of platform drivers
Registering platform device and drivers
Platform driver code exercise
Platform device setup code implementation
Platform device setup code implementation contd.
Platform driver code implementation part-1
Platform driver code implementation part-2
Platform driver code implementation part-3
Platform driver code implementation part-4
Platform driver code implementation part-5
Platform driver code implementation part-6
Testing platform driver
Linux device resource managed functions
Using device resource managed kernel functions
Testing with more platform devices
Fixing kernel crash
Platform device driver matching using platform device ids
Fixing error handling in probe function
Preview
Device tree
Introduction to device tree
Writing device tree
Device tree structure
Preview
Device tree writing syntax
Preview
Device tree parent and child node
Device tree properties
'compatible' property
Device tree binding
pcd device tree version
Switching to Linux kernel version 5.4
Preview
Updating Linux kernel image of 5.4
Device tree nodes and platform driver
Device tree nodes for pcd driver
Pcd platform driver DT coding part-1
Testing device tree changes on board
Pcd platform driver DT coding part-2
Pcd platform driver DT coding part-3
Pcd platform driver DT coding part-4
Device tree overlays
Introduction to device tree overlays
Device tree overlays exercise
Preview
Updating u-boot
Updating u-boot contd.
Applying overlays using u-boot commands
Applying overlays and testing using u-boot uEnv.txt file
Preview
Linux device driver model
Linux device model
kobjects
kobject type and kset
sysfs and kobject attributes
Creating sysfs attributes
pcd_sysfs_attributes coding part 1
pcd_sysfs_attributes coding part 2
pcd sysfs kernel module testing
show and store methods of the sysfs attributes
pcd_sysfs_attributes coding part 3
Attribute grouping
Linux GPIO subsystem
Introduction
GPIOs of BBB
Pad configuration register
Linux GPIO subsystem
Consumer accessing GPIO pins
GPIO Sysfs driver implementation
Exercise GPIO Sysfs driver implementation
GPIO Sysfs driver implementation part-1
GPIO Sysfs driver implementation part-2
GPIO Sysfs driver implementation part-3
GPIO Sysfs driver implementation part-4
GPIO Sysfs driver implementation part-5
GPIO Sysfs driver implementation part-6
GPIO Sysfs driver implementation part-7
GPIO Sysfs driver implementation part-8
Gpio syfs driver testing
Pin control subsystem of Linux
Pin control subsystem and pin controller
Writing pin configuration node
LCD exercise
Significance of LCD application
Preview
Adding pin configuration node for gpios
Preview
Exploring LCD code
Sending command to LCD
Creating LCD command code
Testing LCD application over gpio sysfs
Assignment : Implementing LCD platform driver
Linux synchronization services
Avoiding race conditions
Preview
Linux locking services
Spinlock Vs Mutex
Linux spinlock functions
Mutex
Using locking functions in the code
BONUS LECTURE
×
This is an unpublished lesson. This lesson will not be shown for students unless you set it as Public.
Back to Dashboard
No contents are available in this lesson!
No lessons available !
Back to Dashboard
Lesson contents locked
Enroll to unlock this lesson.
Enroll to unlock
Next Lesson