BPC-MIC05 - Principy obsluhy V-V periferií
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Činnost procesoru při návratu z
obsluhy přerušení
• Poslední instrukcí prováděnou rutinou obsluhy
přerušení musí být instrukce RTI - návrat z
přerušení.
Činnost procesoru při návratu z
obsluhy přerušení
• Instrukce RTI:
– Obnoví ze zásobníku obsah stavového registru,
případně dalších uložených registrů.
• Tím se opět povolí přerušení.
– Vyzvedne ze zásobníku návratovou adresu a vloží ji
do programového čítače.
Co se ukládá při obsluze přerušení
do zásobníku?
• Návratová adresa a obsah stavového registru.
• Některé procesory ukládají obsah i dalších
registrů (akumulátor, indexové registry, …).
Co se ukládá při obsluze přerušení
do zásobníku?
• Pokud není příslušný registr automaticky
uložen do zásobníku a jeho obsah je v
přerušovací rutině měněn, musí uložení
obsahu registru zajistit programátor
(překladač vyššího programovacího jazyka)!!!
Co se ukládá při obsluze přerušení
do zásobníku?
• Existují procesory s více bankami registrů.
– Při obsluze přerušení se přepne na jinou banku.
– Registry pak není třeba ukládat do zásobníku.
• Zrychlí se obsluha přerušení.
• Avšak při větším počtu registrů nerealizovatelné.
Obslužné rutiny přerušení
• Pro každou událost případně skupinu událostí
obvykle existuje samostatná obslužná rutina
přerušení (Interrupt Handler).
• Počáteční adresy obslužných rutin jsou uloženy
v oblasti paměti označované jako tabulka
vektorů přerušení.
Definice obslužné rutiny přerušení
; Obslužná rutina přerušení pro IRQ
IsrIRQF:
PSHH
; H se automaticky neukládá
LDHX #buf
…………
PULH
; Obnovení H
RTI
; Návrat z přerušení
.org 0xFFFA
.dw
IsrIRQF
; Vektor přerušení pro IRQ
Asynchronní přerušení
• Asynchronní události
– Nejsou nijak synchronizovány s vykonáváním instrukcí.
– Mohou nastat kdykoli během provádění instrukce.
• Typické zdroje asynchronních přerušení:
– Doběhnutí časovače.
– Dokončení A/D převodu.
– Hodiny reálného času.
– Havarijní stavy jako detekce chyby parity paměti nebo
výpadek napájení.
Synchronní přerušení
• Může být generováno: