Mulțumim pentru trimiterea solicitării! Un membru al echipei noastre vă va contacta în curând.
Mulțumim pentru trimiterea rezervării! Un membru al echipei noastre vă va contacta în curând.
Durata 14 ore
Schița de curs
1. Introducere în kernelul Linux
- Prezentare generală a Linux embedded
- Arhitectura kernelului Linux
- Spațiul utilizator vs. spațiul kernel
- Responsabilitățile kernelului
- Fluxul de lucru pentru dezvoltarea kernelului
- Prezentarea platformelor embedded suportate
2. Configurarea mediului de dezvoltare
- Pregătirea stației de lucru pentru dezvoltare
- Concepte de compilare încrucișată
- Instalarea instrumentelor de dezvoltare necesare
- Configurarea plăcii de dezvoltare BeagleBone Black
- Configurarea consolei seriale
- Pornirea dispozitivului țintă
3. Obținerea și înțelegerea codului sursă al kernelului
- Arborele de cod sursă al kernelului Linux
- Kerneluri stabile vs. kerneluri cu suport pe termen lung
- Descărcarea surselor kernelului
- Explorarea structurii codului sursă
- Documentația kernelului
- Gestionarea versiunilor de kernel
4. Configurarea, compilarea și pornirea kernelului
- Configurarea kernelului folosind menuconfig
- Selectarea funcționalităților kernelului
- Compilarea încrucișată a kernelului
- Construirea imaginilor de kernel
- Instalarea modulelor de kernel
- Prezentarea bootloaderului
- Pornirea unui kernel personalizat
5. Fundamentele Device Tree
- Scopul Device Tree
- Fișierele Device Tree Source (DTS)
- Device Tree Blob (DTB)
- Concepte de descriere a hardwareului
- Modificarea fișierelor Device Tree
- Construirea și implementarea Device Tree
6. Module de kernel Linux
- Arhitectura modulelor de kernel
- Construirea modulelor de kernel încărcabile
- Încărcarea și descărcarea modulelor
- Parametrii modulelor
- Dependențele modulelor
- Interacțiunea cu modulele de kernel
- Tehnici de depanare a modulelor
7. Depanarea kernelului Linux
- Jurnalizarea kernelului cu printk()
- Utilizarea dmesg
- Depanare dinamică
- Analiza panicării kernelului
- Mesajele Oops
- Depanare cu GDB
- Instrumente de bază pentru urmărirea performanței
8. Drivere de dispozitiv de tip caracter
- Modelul de drivere de dispozitiv din Linux
- Dispozitive de tip caracter
- Înregistrarea driverelor
- Operații pe fișiere
- Operații de citire și scriere
- Interfața IOCTL
- Gestionarea memoriei
- Eliberarea resurselor driverului
9. Integrarea driverelor și accesul la hardware
- Dispozitive și drivere de platformă
- Programarea GPIO
- Gestionarea întreruperilor
- Temporizatoare și lucru amânat
- Accesarea registrelor hardware
- Lucrul cu I/O mapat în memorie
10. Controlul versiunilor cu Git
- Bazele Git
- Gestionarea codului sursă al kernelului
- Branching și merging
- Crearea de patchuri
- Revizuirea modificărilor
- Colaborarea în dezvoltarea kernelului
11. Laboratoare hands-on de dezvoltare a kernelului
- Configurarea unui kernel personalizat
- Construirea și implementarea kernelului
- Crearea unui modul de kernel simplu
- Dezvoltarea unui driver de caracter de bază
- Modificarea fișierelor Device Tree
- Depanarea problemelor de kernel pe BeagleBone Black
12. Bune practici și rezumat
- Stilul de codare pentru kernel
- Scrierea de drivere ușor de întreținut
- Capcane comune de dezvoltare
- Resurse de documentație a kernelului
- Fluxul de lucru pentru contribuții open-source
- Rezumatul conceptelor cheie
- Întrebări și răspunsuri
- Pașii următori pentru dezvoltarea kernelului Linux
Cerințe
Familiaritate de bază cu utilizarea unui sistem GNU/Linux
Mărturii (2)
Cunoașterea instrucționarului. A reușit să răspundă la toate întrebările mele, chiar și cele referitoare la platforma noastră. De asemenea, a continuat să ne ajute până am înțeles complet materialul.
James O'Donnell - Tennant Company
Curs - Embedded Linux Kernel and Driver Development
Tradus de catre o masina
I liked the hands-on nature of it.
Maurice Egan
Curs - Embedded Linux Kernel and Driver Development
Tradus de catre o masina