|
C för inbyggda system
Pris SEK 13 500
Antal dagar 2
|
|
|
Vi belyser viktiga områden som inte alltid kommer fram i en grundläggande programmeringskurs. C är det viktigaste av högnivåspråken för området industriell programmering i inbyggda system. Teknikerna som används för inbyggda system kan skilja sig ganska mycket från "skolboksprogrammering". Denna kurs tar upp en del av dessa. Bland annat diskuterar vi olika strategier för optimering av kod för såväl minnesutrymme som för exekveringshastighet. Vi tar dessutom upp olika fel och fällor som är vanliga i språket C, som uppstår när man arbetar med de speciella krav som ett inbyggt system ställer. Genomgående i kursen är att kopplingen mellan hårdvaran och mjukvaran och samspelet med kompilatorn diskuteras som ett samverkande system. Alla källkodsexempel i kursen är verklighetsbaserade.
Mål Vi vill dela med oss av den gedigna kunskap om C-programmering i inbyggda system som Enea har samlat på sig under 35 år. |
Dessutom vill vi höja kunskapsnivån hos kursdeltagarna om hårdvarans och kompilatorns roll i samspelet med mjukvaran.
Avsedd för Nyexaminerade och personer med liten eller ingen erfarenhet av att arbeta med inbyggda system och som ska arbeta med C-programmering.
Förkunskaper Grundläggande C-programmering.
Kursdokumentation I kursen ingår egenproducerat kursmaterial på engelska. Kursen hålls vanligtvis på svenska, men kan vid behov även hållas på engelska.
Övrig information Gott om utrymme finns för diskussion kring de exempel som ges.
Påbyggnadskurs Safer C OSE-kurserna |
Kursinnehåll
Definition av inbyggda system Karakteristik hos ett inbyggt system
Konsekvenser för programmeraren
Frågor till åhörarna
Relationen mellan C och inbyggda system Varför används C så ofta för inbyggda system?
Bitmanipulering med C:s operatorer
Pekare, dubbla pekare och operatorn "address of"
Structs och unions i inbyggda system
Att implementera en länkad lista
|
Minne Att länka sitt program
Hur sparar man minne?
Problem: Minnesläckor, minnesöverskrivning
Stackar
Variabler
Rekursivitet
Pekargument till funktioner
Optimering Optimering: Minnesutnyttjande och exekveringstid
Arkitekturberoenden
Bitvektorer och structs |
Cacheminne
Indexering av vektorer
Profiling
Portabilitet och interoperabilitet Registerbredd
Endian-problemet
Fällor i språket C
Kodstil och kodningsdisciplin Vad är "bra" programmering?
Goda vanor
|
|