This shows you the differences between two versions of the page.
lkd [2024/05/21 19:33] daniel.baluta |
lkd [2024/05/22 16:25] (current) daniel.baluta |
||
---|---|---|---|
Line 7: | Line 7: | ||
* learn about the Linux kernel development environment | * learn about the Linux kernel development environment | ||
* get hands on experience with real hardware using an NXP i.MX8 board | * get hands on experience with real hardware using an NXP i.MX8 board | ||
- | * create a Linux kernel driver for a simple device connected on I2C | + | * create a Linux kernel driver for a simple device connected on a standard bus |
- | * have fun and c | + | |
== Team == | == Team == | ||
- | * Iuliana Prodan | + | * [[https://www.linkedin.com/in/iuliana-prodan-254a135a/ | Iuliana Prodan]] |
- | * Laurentiu Mihalcea | + | * [[https://www.linkedin.com/in/lauren%C8%9Biu-cristian-mihalcea-6723aa237/ | Laurentiu Mihalcea ]] |
- | * Daniel Baluta | + | * [[https://www.linkedin.com/in/danielbaluta/ | Daniel Baluta]] |
== RSVP == | == RSVP == | ||
- | If you have an interest in embedded systems and low level programming please fill in this form [[TBD]] | + | If you have an interest in embedded systems and low level programming please fill in this [[https://forms.gle/YxhNj2cSojc6b3CD8 | form]] |
== Schedule == | == Schedule == | ||
+ | Location: | ||
+ | |||
+ | * NXP, Campus 6 (near Politehnica) | ||
^ Date ^ Time ^ Lab name | | ^ Date ^ Time ^ Lab name | | ||
Line 29: | Line 31: | ||
| July, 11 | 17:00 - 20:00 | Device Drivers | | | July, 11 | 17:00 - 20:00 | Device Drivers | | ||
+ | == Overview == | ||
+ | |||
+ | There will be four session organized around hands on activities that will take up to 3 hours. Each session will contain a theoretical part (hour) and a practical lab (two hours). | ||
+ | |||
+ | === Introduction to Embedded Linux kernel development === | ||
+ | |||
+ | * setup development environment (cross compiler toolchain) | ||
+ | * compile Linux kernel and modules on arm64 | ||
+ | * build system and configuration options | ||
+ | * boot the i.MX8 board | ||
+ | |||
+ | === Basics of writing a Linux kernel module === | ||
+ | |||
+ | * create a simple "hello world" module | ||
+ | * learn about printk & friends | ||
+ | * userspace vs kernelspace interface | ||
+ | * hack on a skeleton driver | ||
+ | |||
+ | === Basics of Device tree === | ||
+ | |||
+ | * learn how hardware is described in the ARM world | ||
+ | * learn how to create a device tree node and associated it with a Linux driver | ||
+ | * learn about standard embedded busses | ||
+ | |||
+ | === Hardware application === | ||
+ | |||
+ | * learn how to read hardware specs | ||
+ | * learn about Linux kernel subsystems and coding patterns | ||
+ | * have fun and create a driver for a real hardware device |