Komplett pensumoversikt for maskinnær programmering ved NTNU — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.
Innhold
Denne studieguiden dekker hele pensum i TDT4258 Maskinnær programmering ved NTNU. Emnet gir en grundig innføring i innebygde systemers hardware og software — fra prosessorarkitektur og minnehierarki til lavnivåprogrammering i ARM-assembly og C (7,5 studiepoeng). Mye av terminologien og eksempelhardwaren (EFM32GG, ARM Thumb-2) er på engelsk, og eksamensteksten er på engelsk.
Eksamen er en 3-timers skriftlig skoleeksamen uten hjelpemidler (kode E), og den har historisk vært fullstendig flervalg (multiple choice): et stort sett deloppgaver (typisk ca. 25, merket a, b, c …) à 2 poeng. Det er negativ uttelling for feil svar (typisk +2 for riktig, 0 for blankt, −0,66 for feil), så du bør kun gjette når du kan eliminere alternativer. I tillegg inngår obligatoriske laboratorieøvinger der du programmerer ARM Cortex-M-baserte mikrokontrollere (typisk EFM32 eller STM32) på tre abstraksjonsnivåer: ren ARM-assembly, bare-metal C og OS-støttet (uClinux/RTOS).
Eksamen tester begrepsforståelse og evnen til å skille riktig fra nesten-riktig — ikke å skrive lange kodebesvarelser for hånd. Du må kunne lese korte kodefragmenter (assembly og C), gjenkjenne avvik (RAW/WAR/WAW-avhengigheter, hazards, registerbehov), og resonnere presist om cache, busser, avbrudd, energi og OS-oppstart. Fordi alternativene er deltsanne, må du forstå nyanser, ikke bare hovedtrekk.
Faste eksamensmønstre (utledet fra tidligere eksamener):
Kjennetegn ved innebygde systemer, designprosess og typiske bruksområder.
Et innebygd system (embedded system) er et dedikert datasystem integrert i et større produkt for å utføre én eller noen få spesifikke funksjoner. Til forskjell fra en general-purpose-PC er et innebygd system typisk: ressursbegrenset (lite RAM, lav klokkefrekvens), strømsensitivt (batteri), sanntidskritisk (deterministisk responstid) og direkte tilkoblet fysisk maskinvare via GPIO, sensorer og aktuatorer.
Eksempler spenner fra enkle mikrokontrollere i bryteren på vaskemaskinens frontpanel til komplekse systemer i biler (motorstyringsenheter, ABS), medisinsk utstyr (pacemakere, insulinpumper), industriautomatisering og IoT-enheter.
En typisk innebygd systemdesignprosess er:
Krav: mål temperatur hvert 10. sekund, lagre til flash, send over UART ved forespørsel, batterielevetid 1 år. Arkitekturvalg: ARM Cortex-M0+ (lav strøm), ADC for temp-sensor, UART, intern flash for logging. Firmware: initialiser klokke til 4 MHz, sett opp ADC og UART, les ADC i en 10-sekunders timer-ISR, sov i dype sleep-moder mellom målinger. Resultat: CPU aktiv under 1 % av tiden gir lavt gjennomsnittlig strømforbruk.
I TDT4258 arbeider du på tre nivåer:
Nøkkelformler
Vanlige feil
Eksamenstips
Laster...