> Mikrovezérlő alatt az IRQ-t ha a hardver 0-ban hagyja, akkor más IRQ nem lehetséges.
A "nagy" procikon (en elsosorban ARMv7-re irtam drivereket) tobb megszakitas van, de ezeket egy megszakitasvezerlo kezeli. Ezert...
1. Vannak prioritasok es egy megszakitas fontosabb mint egy masik
2. A kernelt "meg lehet tanitani" a megszakitasvezerlo kezelesere es igy a driverek ebben nem tudnak hibazni.
Tehat ez nem valodi problema. Ha egy drivert sem erdekli a megszakitas akkor maszkolva van. Ha van egy amit erdekel, akkor annak szol a kernel, maszkolja, majd a driver keresere (amikor a driver kezelte a megszakitast) ujra engedelyezi a megszakitast. A maszkolas miatt a megszakitasok kezeleset is lehet utemezni.
> Ha történetesen a DMA egy félrekonfigurálás miatt leáll
A DMA nem resze a CPU-nak. Egy nagy ARM SoC-n tobb DMA vezerlo szokott lenni es a nagy adatatvitelre kepes periferiak (pl. Ethernet) sajat DMA-val rendelkeznek. A DMA vezerlok egy belso buszon osztoznak, de ez a busz ugy van kialakitva, hogy egy DMA sem foglalhatja tul sokaig. A DMA vezerloknek amiken tobb periferia osztozik altalaban tobb csatornaja van, es egy driver csak egy csatornat kezel. A DMA vezerlo felvaltva szokta a csatornak kereseit teljesiteni, es ha "beakad" egy csatorna akkor sem all le a tobbi. Valamit nagyon felre kell konfiguralni ahhoz, hogy megdogoljon a rendszer. :)