Embedded systemen en firmware

Waarop moet worden gelet wanneer in C met een structuur met bitvelden de registers van een randschakeling worden voorgesteld?

  1. ABitvelden maken het programma altijd twee keer zo snel
  2. BDe volgorde van de bits in bitvelden mag per compiler verschillen, dus met een andere compiler kunnen onbedoeld andere bits worden bewerkt
  3. CBitvelden kunnen geen waarden van 8 bit of meer weergeven
Antwoord en toelichting tonen

Antwoord: B. De volgorde van de bits in bitvelden mag per compiler verschillen, dus met een andere compiler kunnen onbedoeld andere bits worden bewerkt

Bitvelden zijn leesbaar te schrijven, maar de C-norm laat het aan de implementatie of bits in een structuur van hoog naar laag of van laag naar hoog worden geplaatst, hoe velden die een grens overschrijden worden behandeld en welke toegangsbreedte wordt gebruikt. Wat bij de ene compiler goed werkt, kan daarom bij een andere compiler of CPU andere bits lezen of schrijven. De headers van microcontrollerfabrikanten zijn vaak geschreven met maskers en verschuivingen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Embedded systemen en firmware

  1. Welk voordeel heeft het declareren van een grote, ongewijzigde tabel (zoals lettertypegegevens) met const bij veel microcontrollers?
  2. Wat kan met debuginterfaces zoals JTAG en SWD worden gedaan?
  3. Een bepaalde besturingsberekening moet elke 1 ms worden uitgevoerd. Welke implementatie op een microcontroller zonder besturingssysteem is het meest geschikt?
  4. Wat is de juiste rol van brown-outdetectie (BOD, brown-outreset) van een microcontroller?
  5. Bij een microcontroller waarbij interrupts een prioriteit kunnen krijgen, treedt een interrupt met hoge prioriteit op tijdens de uitvoering van de handler van een interrupt met lage prioriteit. Wat gebeurt er gewoonlijk (uitgaande van een instelling die nesten van interrupts toestaat)?

Vergelijkingen bij dit onderwerp