Mô tả

==> This should be your very first course to dive into the exciting world of "Linux device drivers" <==

In this course you will learn ,

  1. Fundamentals Linux kernel module and syntax

  2. Character device driver theory and code implementation

  3. Platform bus, Platform device, and platform driver concepts

  4. Platform driver implementation

  5. Device tree from scratch

  6. Accessing device tree nodes from drivers

  7. Device instantiation through device tree nodes

  8. Device tree properties and node syntax

  9. Device tree overlays

  10. Overlays testing via u-boot

  11. Kernel synchronization services (Mutex, Spinlocks)

  12. Linux device model and sysfs

  13. Linux GPIO subsystem

  14. Linux pinctrl subsystem


Hardware Requirements:

1) For some exercises involving testing of GPIOs, pinctrl, device tree nodes, overlays, you need a board.

In this course, Beaglebone Black board is being used.

2) Mini USB cable to power BBB

3) USB to UART cable for serial connection with BBB

4) Micro SD card 8/16 GB

5) SD card reader

6) 16x2 LCD and 10K potentiometer

7) Jumper wires

8)Bread board


OS Requirements:

32/64 bit Ubuntu 18.04+ LTS


Learning order of FastBit Embedded Brain Academy Courses,

If you are a beginner in the field of embedded systems, then you can take our courses in the below-mentioned order.
This is just a recommendation from the instructor for beginners.

1) Microcontroller Embedded C Programming: absolute beginners(Embedded C)

2) Embedded Systems Programming on ARM Cortex-M3/M4 Processor(ARM Cortex M4 Processor specific)

3) Mastering Microcontroller with Embedded Driver Development(MCU1)

4) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)

5) Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL(MCU3)

6) Embedded System Design using UML State Machines(State machine)

7) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)

8) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)

9) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)

10) Embedded Linux Step by Step using Beaglebone Black(Linux)

11) Linux device driver programming using Beaglebone Black(LDD1)

Bạn sẽ học được gì

Yêu cầu

Nội dung khoá học

14 sections

Host and target setup

21 lectures
About the instructor
00:17
Source code and course materials
00:05
Host and target setup
07:56
Tool-chain download
02:21
Important Note
00:42
Installing gparted application
01:07
Tool-chain installation and PATH settings
03:31
Note for the students
00:07
Target preparation : Serial debug setup
05:27
Important documents
00:06
Understanding booting sequence of beaglebone black hardware
06:21
Preparing SD card for SD boot
06:18
Copying boot images to SD card
06:39
Booting BBB via SD card
13:35
Making SD boot default on BBB by erasing eMMC MBR
05:44
Updating Linux kernel image
02:41
Linux kernel compilation
06:21
Modules compilation
00:42
Modules install
02:15
Update new boot images and modules in SD card
04:16
Enabling internet over USB
09:49

Linux kernel module

12 lectures
Introduction to Linux kernel module
04:15
User space Vs kernel space
01:44
LKM writing syntax
09:45
__init and __exit macros
06:41
LKM entry point registration and other macros
05:40
Hello World LKM
06:07
Building a Linux kernel module
13:13
Compilation and testing of an LKM
07:09
Testing of an LKM on target
07:51
Makefile
07:05
Intree building
14:55
printk
13:56

Character device and driver

12 lectures
What is device driver ?
10:56
A char driver , char device and char device number
11:41
Dynamically allocating char device numbers
06:02
Pseudo character driver implementation
05:50
Character device registration
09:01
Character device registration contd.
03:19
Character driver file operation methods
24:20
Character driver file operation methods contd.
13:40
Implementing file operation methods
04:53
File operations structure initialization
04:43
Creating device files
23:22
Character driver cleanup function implementation
06:55

Character driver file operations implementation

9 lectures
Understanding read method
13:09
Understanding error codes
02:30
Read method implementation
05:29
Understanding write method
01:31
Write method implementation
02:41
lseek method
02:06
lseek method implementation
08:26
Testing pseudo char driver
07:40
Error handling
17:32

Char driver with multiple device nodes

12 lectures
pcd driver with multiple devices
10:35
Pcd driver with multiple devices code implementation part-1
05:29
Pcd driver with multiple devices code implementation part-2
10:07
Pcd driver with multiple devices code implementation part-3
11:23
Pcd driver with multiple devices code implementation part-4
06:45
Pcd driver with multiple devices code implementation part-5
10:47
Pcd driver with multiple devices code implementation part-6
05:24
Pcd driver with multiple devices code implementation part-7
08:17
Pcd driver with multiple devices testing
07:51
Pcd driver with multiple devices testing contd
09:25
Pcd driver with multiple devices lseek implementation
04:24
Container of discussion
19:01

Platform bus, Platform devices and Platform drivers

19 lectures
Platform devices and drivers
18:56
Example of platform drivers
04:13
Registering platform device and drivers
11:24
Platform driver code exercise
02:04
Platform device setup code implementation
12:30
Platform device setup code implementation contd.
04:47
Platform driver code implementation part-1
07:52
Platform driver code implementation part-2
05:01
Platform driver code implementation part-3
08:11
Platform driver code implementation part-4
17:19
Platform driver code implementation part-5
05:43
Platform driver code implementation part-6
06:08
Testing platform driver
05:35
Linux device resource managed functions
07:47
Using device resource managed kernel functions
03:57
Testing with more platform devices
05:48
Fixing kernel crash
02:02
Platform device driver matching using platform device ids
24:56
Fixing error handling in probe function
04:35

Device tree

11 lectures
Introduction to device tree
04:59
Writing device tree
10:03
Device tree structure
13:47
Device tree writing syntax
11:17
Device tree parent and child node
05:26
Device tree properties
06:23
'compatible' property
13:16
Device tree binding
10:08
pcd device tree version
04:31
Switching to Linux kernel version 5.4
01:31
Updating Linux kernel image of 5.4
04:16

Device tree nodes and platform driver

6 lectures
Device tree nodes for pcd driver
08:06
Pcd platform driver DT coding part-1
13:13
Testing device tree changes on board
10:32
Pcd platform driver DT coding part-2
23:40
Pcd platform driver DT coding part-3
06:52
Pcd platform driver DT coding part-4
13:44

Device tree overlays

6 lectures
Introduction to device tree overlays
08:15
Device tree overlays exercise
15:13
Updating u-boot
02:09
Updating u-boot contd.
02:32
Applying overlays using u-boot commands
10:25
Applying overlays and testing using u-boot uEnv.txt file
15:04

Linux device driver model

11 lectures
Linux device model
10:56
kobjects
05:37
kobject type and kset
16:00
sysfs and kobject attributes
07:00
Creating sysfs attributes
07:41
pcd_sysfs_attributes coding part 1
07:46
pcd_sysfs_attributes coding part 2
10:08
pcd sysfs kernel module testing
02:22
show and store methods of the sysfs attributes
04:29
pcd_sysfs_attributes coding part 3
13:48
Attribute grouping
06:13

Linux GPIO subsystem

5 lectures
Introduction
05:32
GPIOs of BBB
08:40
Pad configuration register
04:17
Linux GPIO subsystem
05:16
Consumer accessing GPIO pins
08:39

GPIO Sysfs driver implementation

10 lectures
Exercise GPIO Sysfs driver implementation
06:24
GPIO Sysfs driver implementation part-1
08:27
GPIO Sysfs driver implementation part-2
10:51
GPIO Sysfs driver implementation part-3
12:26
GPIO Sysfs driver implementation part-4
25:03
GPIO Sysfs driver implementation part-5
05:38
GPIO Sysfs driver implementation part-6
17:02
GPIO Sysfs driver implementation part-7
14:44
GPIO Sysfs driver implementation part-8
09:31
Gpio syfs driver testing
10:04

Pin control subsystem of Linux

10 lectures
Pin control subsystem and pin controller
14:10
Writing pin configuration node
11:31
LCD exercise
09:31
Significance of LCD application
06:10
Adding pin configuration node for gpios
27:05
Exploring LCD code
11:46
Sending command to LCD
10:52
Creating LCD command code
08:22
Testing LCD application over gpio sysfs
11:20
Assignment : Implementing LCD platform driver
10:49

Linux synchronization services

7 lectures
Avoiding race conditions
25:06
Linux locking services
04:19
Spinlock Vs Mutex
14:26
Linux spinlock functions
08:03
Mutex
08:26
Using locking functions in the code
33:11
BONUS LECTURE
01:36

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.