Labs are conducted on target boards, that can be: | ||
Dual Cortex/A7-based "STM32MP15-DISCO" boards from STMicroelectronics. | ||
Quad Cortex/A9-based "SabreLite" boards from NXP. | ||
Quad Cortex/A53-based "imx8q-evk" boards from NXP. | ||
We use a recent (4.x) linux kernel, as supported by the chip supplier. |
Exercise: | Writing the "hello world" kernel module | |
Exercise: | Adding a driver to kernel sources and configuration menu | |
Exercise: | Using module parameters | |
Exercise: | Writing interdependent modules using memory allocations, reference counting and linked lists |
Exercise: | Display dynamic traces on the running kernel | |
Exercise: | Debug a module initialization using kgdb |
Exercise: | Fixing race conditions in the previous lab with mutexes |
Exercise: | Step by step implementation of a character driver: | |
• | driver registration (major/minor reservation) and device special file creation (/dev) |
Exercise: | Step by step implementation of a character driver: | |
• | Implementing open and release | |
• | Implementing read and write | |
• | Implementing ioctl | |
• | Implementing mmap |
Exercise: | implementation of a pipe-like driver: | |
• | implementing waiting and waking | |
• | adding non-blocking, asynchronous and multiplexed operations (O_NONBLOCK, SIGIO, poll/select) |
Exercise: | Polling gpio driver with raw register access | |
Exercise: | Interrupt-based gpio driver with raw register access | |
Exercise: | gpio driver using the gpiolib |
Exercise: | Implementing a platform driver and customizing the device tree to associate it to its device (a serial port) | |
Exercise: | Implementing power management in the previous driver | |
Exercise: | Implementing remote wakeup in the previous driver |
Exercise: | Writing a custom class driver | |
Exercise: | Writing a misc driver |
Exercise: | Implementing slave DMA in a serial port driver |
Exercise: | Writing a USB host driver |
To book a training session or for more information, please contact us on info@ac6-training.com.
Registrations are accepted till one week before the start date for scheduled classes. For late registrations, please consult us.
You can also fill and send us the registration form
This course can be provided either remotely, in our Paris training center or worldwide on your premises.
Scheduled classes are confirmed as soon as there is two confirmed bookings. Bookings are accepted until 1 week before the course start.
Last update of course schedule: 15 November 2022
Booking one of our trainings is subject to our General Terms of Sales