Linux Device Driver Programming With Beaglebone Black (LDD1)
What you'll learn
- Fundamentals of Linux kernel module and writing syntax
- Makefile and LKM build procedure
- Character device driver implementation
- Platform bus, Platform device, and platform driver concepts
- Platform driver implementation
- Learn device tree from scratch
- Device tree node syntax, properties of device tree nodes
- Kernel APIs to process device tree nodes
- Device instantiation through device tree nodes
- Device tree overlays and overlays testing via u-boot
- Kernel synchronization services , mutex , spinlocks usage
- Linux device model and sysfs
- Linux GPIO Subsystem
- Linux pinctrl subsystem
Requirements
- Students must be familiar with basic Linux command usage
- Students must be familiar with 'C' programming language
Description
==> This should be your very first course to dive into the exciting world of "Linux device drivers" <==
In this course you will learn ,
Fundamentals Linux kernel module and syntax
Character device driver theory and code implementation
Platform bus, Platform device, and platform driver concepts
Platform driver implementation
Device tree from scratch
Accessing device tree nodes from drivers
Device instantiation through device tree nodes
Device tree properties and node syntax
Device tree overlays
Overlays testing via u-boot
Kernel synchronization services (Mutex, Spinlocks)
Linux device model and sysfs
Linux GPIO subsystem
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)
Other programming courses
1) Master The Rust Programming Language : Beginner To Advanced
Who this course is for:
- Students/Hobbyists/Professionals interested in exploring Linux device driver programming
Featured review
Instructors
Best selling microcontroller programming and RTOS course creators having over 65,000+ active students and dedicated co-instructor team to help you in your embedded programming journey.
We have published courses on embedded C, microcontroller programming, RTOS programming, embedded Linux, and Linux device driver development.
If you are starting your career in the domain of embedded programming or if you want to learn how to program the microcontroller and its peripherals coding from scratch, then you are at the right place.
Enroll in the courses created by us, and we hope you will not be disappointed.
What we do?
We leverage the power of the internet to bring online courses at your fingertip in the domain of embedded systems and programming, microcontrollers, real-time operating systems, firmware development, embedded Linux, and device drivers. Thanks to Udemy.
Our primary goal is to teach embedded systems enjoyably with examples and lots of animations, which help our students excel in this field.
We have carefully crafted all these online courses to help students access industry-standard professional training with a very low price tag, thus saving your time, effort, and money.
Try our courses, and we are sure that the courses will make you feel you made the right choice.
Read full reviews to understand more about the courses.
==>Learning order of FastBit Embedded Brain Academy Courses<==
If you are a beginner in the field of embedded systems, 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)
Other programming courses
1) Master The Rust Programming Language : Beginner To Advanced
* FastBit EBA is an online embedded software training wing of Bharati Software
Kiran Nayak holds a Bachelor’s Degree(B.E.) in Electronics and Communication Engineering and Post Graduate Diploma in Embedded Systems Design from Center for Development of Advanced Computing(C-DAC), GOI with vast experience in embedded software development.
Currently, he is working as a managing partner of Bharati software, India.
He creates video courses on programming languages, microcontroller programming , ARM cortex Mx processor, real time operating systems , embedded Linux and Linux device drivers.