Embedded systemen en firmware

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)?

  1. ADe lage handler wordt onderbroken en de hoge handler wordt uitgevoerd, waarna wordt teruggekeerd naar de rest van de lage handler
  2. BDe hoge interrupt wordt genegeerd tot de lage handler klaar is
  3. CBeide handlers worden tegelijk parallel uitgevoerd op dezelfde CPU
Antwoord en toelichting tonen

Antwoord: A. De lage handler wordt onderbroken en de hoge handler wordt uitgevoerd, waarna wordt teruggekeerd naar de rest van de lage handler

Wanneer interrupts prioriteiten hebben, wordt een dringende interrupt afgehandeld door tussenbeide te komen, ook terwijl een andere handler draait. Geeft men bijvoorbeeld de detectie van motoroverstroom een hoge prioriteit en het ontvangen van communicatie een lage, dan kan direct op overstroom worden gereageerd, ook tijdens de verwerking van ontvangen gegevens. De NVIC van Arm Cortex-M en dergelijke hebben dit mechanisme. Interrupts met dezelfde of een lagere prioriteit moeten wachten tot de huidige handler klaar is.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Embedded systemen en firmware

  1. Welke schrijfwijze in C zet alleen bit 3 van register reg op 1 en laat de overige bits ongewijzigd?
  2. Welke schrijfwijze in C zet alleen bit 3 van register reg op 0 en laat de overige bits ongewijzigd?
  3. Een bit van een uitgangspoort waarop een LED is aangesloten, moet bij elke uitvoering tussen aan en uit wisselen. Welke schrijfwijze in C is juist?
  4. Welke voorwaarde in C test of bit 5 van invoerregister in gelijk is aan 1?
  5. De bovenstaande code herschrijft een instelveld van meerdere bits in register reg. Wat gebeurt er?

Vergelijkingen bij dit onderwerp