Šajā rakstā jūs uzzināsit par atšķirību starp ISR un funkciju izsaukums , taču, pirms apspriest atšķirības, jums īsumā jāzina par ISR un funkciju izsaukumu.
Orākulu tabulas izveide
Kas ir ISR?
Pārtraukšanas pakalpojuma rutīna (ISR) ir programmatūras rutīna, ko aparatūra izsauc, reaģējot uz pārtraukumu. ISR pārbauda pārtraukumu, nosaka, kā ar to rīkoties, izpilda to un atgriež loģiskā pārtraukuma vērtību. Ja turpmāka apstrāde nav nepieciešama, ISR paziņo kodolam ar atgriešanas vērtību. ISR ir jādarbojas ļoti ātri, lai nepalēninātu ierīces darbību un visu zemākas prioritātes ISR darbību.
Lai gan ISR var pārvietot datus no CPU reģistra vai aparatūras porta uz atmiņas buferi, parasti tas paļaujas uz īpašu pārtraukuma pavedienu (vai uzdevumu), ko sauc par pārtraukuma pakalpojuma pavedienu (IST), lai veiktu lielāko daļu nepieciešamās apstrādes. Ja nepieciešama papildu apstrāde, ISR atgriež kodolam loģiskā pārtraukuma vērtību. Tad tas kartē fizisko pārtraukuma numuru ar loģisko pārtraukuma vērtību.
Pārtraukumu apstrādes mehānisms
Tālāk ir norādīts pārtraukumu apstrādes mehānisms šādās darbībās, piemēram:
- Pārtraukums ir nosacījums, kas liek CPU apturēt pašreizējo programmu un izpildīt ISR. ISR ir īpaši rakstīta programma, lai apkalpotu stāvokli, kas izraisīja pārtraukumu.
- Pēc pārtraukuma apkalpošanas centrālais procesors atgriežas galvenajā programmā tieši pēc nākamās instrukcijas, kur tas bija aizgājis.
- Pārtraucot datu pārsūtīšanu, kad I/O ierīce ir gatava datu pārsūtīšanai, tā pārtrauks centrālo procesoru. ISR ietvaros CPU veiks datu pārsūtīšanu.
- Šī metode ir labāka par aptauju, jo CPU nav jātērē laiks I/O ierīces statusa pārbaudei. Tastatūra ir labs pārtraukumu vadītas I/O piekļuves piemērs.
- Tā vietā, lai pārbaudītu centrālo procesoru, tastatūrai jāpārtrauc CPU, kad tiek nospiests taustiņš. Tādējādi laiks netiks tērēts, atkārtoti pārbaudot tastatūru, kad lietotājs vispār neraksta.
- I/O ierīce pieprasa pārtraukumu, nosūtot $overline{INTR}$ signālu centrālajam procesoram.
- Ikreiz, kad CPU saņem $overline{INTR}$ signālu, tas pabeidz pašreizējās instrukcijas izpildi un pēc tam izpilda ISR. Kad centrālais procesors ir gatavs, tas nosūta apstiprinājuma signālu caur LAIKĀ līniju.
- ISR tiek izpildīts, un centrālais procesors atgriežas galvenajā programmā.
- I/O ierīces izslēdz $overline{INTR}$ signāls pēc izpildes.
Piemēram: Tālāk esošajā piemērā I/O pārsūtīšana, izmantojot pārtraukumu vadītu I/O.
- Ja I/O ierīcei, kas vēlas veikt datu pārsūtīšanu ar procesoru, jāpārtrauc procesors.
- Pārtraukums ir nosacījums, kas liek procesoram izpildīt pārtraukuma pakalpojuma rutīnu.
- ISR procesors veiks datu pārsūtīšanu ar I/O ierīci.
Šajā piemērā pārtrauciet pieprasījumu, nospiežot tastatūras taustiņu,
- Tā vietā, lai procesors pārbaudītu, vai taustiņš ir nospiests, tastatūra pārtrauc procesoru, nospiežot taustiņu.
- Tastatūras ISR, kas ir daļa no tastatūras draivera programmatūras, procesors nolasīs datus no tastatūras.
ISR priekšrocības
Tālāk ir norādītas šādas ISR priekšrocības, piemēram:
- ISR asinhronie notikumi var notikt jebkurā programmas izpildes laikā.
- ISR saglabā datoru, karogus un reģistrus stekā, atspējo visus pārtraukumus un ielādē ISR adresi.
- ISR nevar būt argumenti, ko tai var nodot.
- ISR nevar atgriezt vērtības.
- ISR iespējo pārtraukumus.
- Parasti ISR ir mazs, jo tas aizņem kādu citu procesu laiku.
- Dažiem ISR ir savs kaudze.
Kas ir funkciju izsaukums?
Funkcijas izsaukumu sauc arī par apakšprogrammas izsaukumu. Apakšprogramma ir instrukciju kopums, kas programmai ir nepieciešams atkārtoti. Tā ir daļa no lielākas programmas, kas ir atbildīga par konkrēta uzdevuma veikšanu. Lielāka programma var izpildīt lielu darba slodzi, un apakšprogramma var veikt tikai vienkāršu uzdevumu, kas arī nav atkarīgs no atlikušās programmas kodēšanas.
Funkcija ir kodēta tā, lai to varētu izsaukt vairākas reizes un no dažādām vietām (pat no citām funkcijām). Kad funkcija tiek izsaukta, procesors var doties uz vietas, kur atrodas funkcijas kods, un izpildīt funkcijas norādījumus pa vienam. Pēc funkciju pabeigšanas procesors atgriezīsies tieši tajā vietā, kur tas tika pārtraukts, un turpinās izpildi, sākot no nākamās instrukcijas.
Funkcijas ir lielisks rīks koda atkārtotai izmantošanai. Daudzas mūsdienu programmēšanas valodas atbalsta funkcijas. Funkciju kopumu sauc par a bibliotēka . Bibliotēkas bieži izmanto kā programmatūras koplietošanas un tirdzniecības līdzekļus. Dažos gadījumos visa programma var būt apakšprogrammu secība.
kas ir f5 uz tastatūras
8086 procesora gadījumā apakšprogrammu izsauc a ZVANIET instrukcijas un kontroles atgriež ar a PA LABI instrukcija. Tas samazina programmas lielumu.
Atšķirība starp ISR un Function Call
Funkcijai ir jābūt skaidri izsauktai, un tā ir daļa no tā paša konteksta un izpildes pavediena kā tās izsaucējs. Aparatūras ISR netiek tieši izsaukts, bet drīzāk to izsauc kāds ārējs notikums. Pašreizējā pavediena konteksts tiek automātiski saglabāts, kad tiek izsaukts pārtraukums pirms konteksta pārslēgšanas uz ISR.
Savukārt notiek apgrieztā konteksta slēdzis, atjaunojot procesora stāvokli pirms pārtraukuma, lai izpilde turpinātos no pārtraukuma punkta. Tālāk ir norādītas vēl dažas atšķirības starp ISR un funkciju izsaukumu.
ISR | Funkcijas izsaukums |
---|---|
Pārtraukumu parasti ierosina iekšējais vai ārējais signāla mikroprocesors, nevis instrukciju izpilde. ISR tiek izpildīts pēc programmas pašreizējā statusa saglabāšanas kaudzē. ISR veic dažādus uzdevumus atkarībā no pārtrauktās ierīces vai programmētāja rakstītajām instrukcijām. | Funkcijas izsaukums tiek izsaukts, izpildot instrukcijas, kas veic konkrētos uzdevumus un samazina programmas izmēru. |
Aparatūra nosaka ISR adresi. ISR adrese ir ierakstīta pārtraukumu vektoru tabulā, un katra pārtraukuma ISR adrese ir fiksēta. | Apakšprogrammas adrese ir ierakstīta instrukcijā, kas ir ierakstīta galvenā programmas koda iekšpusē. |
ISR tiek izmantots visiem vispārējiem uzdevumiem. | Programmai specifiskiem uzdevumiem tiek veikti funkciju izsaukumi. |
Ja pašreizējās programmas izpildes laikā notiek pārtraukums, tāpēc pēc pašreizējās instrukcijas izpildes procesors izpilda ISR. Pēc ISR izpildes procesoram ir jāatsāk programma tieši tāpat kā pirms pārtraukuma. Šim nolūkam tiek saglabāts datora saturs, µP reģistri un daži statusa nosacījumi. Visu statusa bitu nosacījumu apkopojumu mikroprocesorā sauc par PSW (programmas statusa vārdu).
| Šeit kaudzē tiek saglabāts tikai dators, lai iegūtu galvenās programmas nākamās instrukcijas adresi. Apakšprogrammai ir jābūt piekļuvei datiem no izsaucošās apakšprogrammas un jāatgriež rezultāti šai apakšprogrammai. Tāpēc tiek veikti apakšprogrammas parametri un datu sasaiste. To var izdarīt caur
|