Event Handling in Embedded Systems
Wat is een event? Welke events zijn het meest “time-critical”? Welke toestand wordt door de CPU opgeslagen? Exception handlers in assembly language of in C? Hoe te vermijden dat het werk in de exception handler gebeurd?
Wat is een event? An event (gebeurtenis) = anything that needs the attention of the embedded system. Is een signaal hetzelfde als een event? Er is ergens iets gebeurd en er wordt een reactie verwacht… … snel… … binnen een bepaalde tijd.
Welke events zijn het meest “time-critical” ? Exceptions (uitzonderingen) events die rechtstreeks door de CPU worden afgehandeld Wat doet de microprocessor wanneer een exception wordt gedetecteerd? Zijn alle exceptions hetzelfde? Wat zijn synchrone/asynchrone exceptions? Hoe komen interrupts tot stand en hoe worden ze afgehandeld?
Wat doet de microprocessor wanneer een exception gedetecteerd wordt? Stoppen van de huidige program thread selecteren van een nieuwe thread uit een tabel (array) van pointers naar exception handlers. DOEL = SNELHEID
Zijn alle exceptions hetzelfde? Synchronous exceptions resultaat van iets wat het zelf heeft gedaan. Asynchronous exceptions resultaat van iets wat iemand/iets extern heeft gedaan.
Synchronous exceptions De huidige thread veroorzaakt zelf een error (al dan niet opzettelijk) vb. divide by zero, bus exception error Sommige systemen zijn erop voorzien om opzettelijk zulke exceptions te veroorzaken en de nodige services in werking te zetten.
Aynchronous exceptions Een extern signaal zorgt voor een onderbreking van de thread. Vb. toetsenbord (I/O) Onderbreking > interrupt
Hoe komen interrupts tot stand en hoe worden ze afgehandeld? Interrupt pins in de microprocessor Onderbreken van de huidige thread en saven verwijzen naar de juiste interrupt handler uitvoeren wat nodig is speciale instructie return from exception
Welke toestand wordt door de CPU opgeslagen? Net genoeg zodat de toen lopende thread terug tot in de toestand waarin die zich bevond, kan worden hersteld User Stack, registers D0 tem D7 en A0 tem A6, program counter… naar Supervisor Stack. Is de ‘MACHINE STATE’ hetzelfde als de ‘thread state’?
Is de ‘machine state’ hetzelfde als de ‘thread state’? Machine state CPU registers en program counter Thread state = machine state + thread-ID, prioriteit, …
Exception handlers in assembly language of in C of in... ? Exception handlers in assembly language of in C of in... ? TIJD, SNELHEID
Hoe te vermijden dat het werk in de exception handler gebeurd? Hoe te vermijden dat het werk in de exception handler gebeurd? Er wordt een interrupt waargenomen… … stuur hem door naar een ander gedeelte…
VRAGEN