Tack för att du skickade din fråga! En av våra teammedlemmar kontaktar dig snart.
Tack för att du skickade din bokning! En av våra teammedlemmar kontaktar dig snart.
Kursplan
1. Introduktion till Linux-kärnan
- Översikt över Embedded Linux
- Linux-kärnans arkitektur
- Användarutrymme jämfört med kärnutrymme
- Kärnans ansvarsområden
- Arbetsflöde för kärnutveckling
- Översikt över de stödda embedded-plattformarna
2. Installation av utvecklingsmiljön
- Förbereda arbetsstationen för utveckling
- Begrepp kring cross-kompilering
- Installation av nödvändiga utvecklingsverktyg
- Konfigurera utvecklingskortet BeagleBone Black
- Seriell konsolkonfiguration
- Starta målenheten
3. Hämtning och förståelse av kärnkällkoden
- Linux-kärnans källkodsträd
- Stabila vs långtidsstöttade kärnor (LTS)
- Hämta kärnkällkod
- Kontrollera strukturen i källkoden
- Kärndokumentation
- Vårdera kärnversioner
4. Konfiguration, kompilering och start av kärnan
- Konfigurera kärnan med menuconfig
- Välja kärnfunktioner
- Kompilera kärnan för cross-kompilering
- Bygg kärnavbildningar
- Installera kärnmoduler
- Översikt över bootloader
- Starta en anpassad kärna
5. Grunderna i EnhetsTräd (Device Tree)
- EnhetsTräds syfte
- Enhetsträkällfiler (DTS)
- Enhetsträdblob (DTB)
- Koncept för hårdvarubeskrivning
- Ändra enhetsträdfiler
- Bygg och distribuera EnhetsTräd
6. Linux-kärnmoduler
- Kärnmodularkitektur
- Bygga laddningsbara kärnmoduler
- Ladda och ta bort moduler
- Modulparametrar
- Modulberoenden
- Kommunicera med kärnmoduler
- Felsökningsmetoder för moduler
7. Felsökning av Linux-kärnan
- Kärnloggning med printk()
- Använda dmesg
- Dynamisk felsökning
- Analys av Kernel Panic
- Oops-meddelanden
- Felsöka med GDB
- Grunder för prestandaspårningsverktyg
8. Drivrutiner för teckenenheter (Character Device Drivers)
- Modellen för Linux-enhetsdrivrutiner
- Teckenenheter
- Anmäla drivrutiner
- Filoperationer
- Läs- och skrivoperationer
- IOCTL-gränssnittet
- Minnen hantering
- Rensa upp drivrutinen
9. Integration av drivrutiner och hårdvaruåtkomst
- Platformenheter och-drivrutiner
- GPIO-programmering
- Avbrotshantering
- Timers och deferrade arbeten
- Åtkomst till hårdvaruregistrar
- Arbeta med minnesspårade I/O (Memory-mapped I/O)
10. Versionshantering med Git
- Git-grunder
- Hantera kärnans källkod
- Grenning och sammanfogning (Branching and merging)
- Skapa patches
- Granska ändringar
- Samarbeta på kärnutveckling
11. Praktiska laborationer i kärnutveckling
- Konfigurera en anpassad kärna
- Bygg och distribuera kärnan
- Skapa en enkel kärnmodul
- Utveckla en grundläggande drivrutin för teckenenheter
- Ändra filer för EnhetsTräd (Device Tree)
- Felsöka kärnproblem på BeagleBone Black
12. Bäst prática och sammanfattning
- Kodningsstil för kärnan
- Skriva drivrutiner som går att underhålla
- Vanliga fallgropar vid utveckling
- Kärndokumentationsresurser
- Arbetsflöde för bidrag till öppen källkod
- Genomgång av nyckelbegrepp
- Frågor och svar
- Nästa steg för Linux-kärnutveckling
Krav
Grunder i att använda ett GNU/Linux-system
14 Timmar
Vittnesmål (2)
Instruktörens kunskap. Han kunde besvara alla mina frågor, även frågor om vår plattform. Han fortsatte också att hjälpa till tills vi alla förstått materialet.
James O'Donnell - Tennant Company
Kurs - Embedded Linux Kernel and Driver Development
Maskintolkat
I liked the hands-on nature of it.
Maurice Egan
Kurs - Embedded Linux Kernel and Driver Development
Maskintolkat