Intrati in legatura

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 în dezvoltarea kernelului
  • Prezentare generală a 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 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 kernelului
  • Prezentare generală a bootloaderului
  • Pornirea unui kernel personalizat

5. Fundamentele arborelui de dispozitive

  • Scopul arborelui de dispozitive
  • Fișierele Device Tree Source (DTS)
  • Device Tree Blob (DTB)
  • Concepte de descriere hardware
  • Modificarea fișierelor Device Tree
  • Construirea și implementarea arborilor de dispozitive

6. Module ale kernelului Linux

  • Arhitectura modulelor kernelului
  • Construirea modulelor de kernel încărcabile
  • Încărcarea și descărcarea modulelor
  • Parametrii modulelor
  • Dependențele modulelor
  • Interacțiunea cu modulele kernelului
  • 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 dispozitive de tip caracter

  • Modelul de drivere de dispozitive 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 hardware

  • Dispozitive și drivere de platformă
  • Programare GPIO
  • Gestionarea întreruperilor
  • Temporizatoare și lucru amânat
  • Accesarea registrilor hardware
  • Lucrul cu I/O mapat în memorie

10. Controlul versiunilor cu Git

  • Fundamentele Git
  • Gestionarea codului sursă al kernelului
  • Ramificare și fuziune
  • Crearea de patch-uri
  • Revizuirea modificărilor
  • Colaborarea la dezvoltarea kernelului

11. Laboratoare practice de dezvoltare a kernelului

  • Configurarea unui kernel personalizat
  • Construirea și implementarea kernelului
  • Crearea unui modul de kernel simplu
  • Dezvoltarea unui driver de dispozitiv de tip caracter de bază
  • Modificarea fișierelor Device Tree
  • Depanarea problemelor de kernel pe BeagleBone Black

12. Bune practici și rezumat

  • Stilul de codare al kernelului
  • Scrierea de drivere ușor de întreținut
  • Capcane comune în dezvoltare
  • Resurse de documentație ale kernelului
  • Fluxul de lucru pentru contribuții open-source
  • Recapitularea 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

 14 Ore

Numărul de participanți


Pret per participant

Mărturii (2)

Cursuri viitoare

Categorii înrudite