priznak preruseni u 8051
Jan Waclawek
wek@evona.sk
Středa Červenec 6 13:17:50 CEST 2005
Vladimír Anděl wrote:
> vsude se pise, ze kdyz pri preruseni s vyssi prioritou dam
> pozadavek s nizsi prioritou, uz se neprovede ani po navratu z te vyssi
> urovne preruseni.
Hm, mohli by ste to "vsude" konkretizovat?
Odporucam taky zdroj rychlo zahodit.
Ultimativnym zdrojom informacie pre 8051 je User's manual, 27238302.pdf
od intelu, v kapitole Architectonal overview, stat Interrupt Structure,
strana 1-20; alebo este lepsie, v kapitole 8051/8052 hardware
description stat Interrupts na strane 3-23. Toto je bohuzial scanovane,
takze je vhodnejsie pouzivat prakticky ekvivalentne dokumenty od
Philipsu
(http://www.semiconductors.philips.com/acrobat/various/80C51_FAM_ARCH_1.pdf,
http://www.semiconductors.philips.com/acrobat/various/80C51_FAM_HARDWARE_1.pdf)
ci Atmela.
V kocke, ak neprebieha prerusenie vyssej priority, ak neprebieha , ak je
nastavi flag, ktory prerusenie sposobuje (), a je dane prerusenie
povolene, tak sa vykona, nezavisle na existencii povoleneho prerusenia
inej urovne. To, ze kedy bol dany flag nastaveny (t.j. pocas prerusenia
ci mimo neho) je uplne irelevantne; pri odchode z akehokolvek prerusenia
(reti) sa nenastavuje ani nenuluje ziadny z uzivatelom viditelnych
flagov (akurat sa nuluju interne flagy, vdaka ktorym mcu "vie", ze prave
prebieha prerusenie, a ktorej priority).
Flag sposobujuci prerusenie je vynulovany hardwarom pri vykonani volania
obsluznej rutiny prerusenia, s vynimkou flagov ti a ri (to je
pochopitelne, kedze zdielaju prerusovaci vektor) (a u '52 aj tf2/exf2).
Pochopitelne je vzdy mozne ho nulovat aj softwarom, v takom pripade sa
uz prerusenie nevyvola.
Inak nie presne chapem Vas problem, neda sa pouzit akykolvek bit v
pamati? Mohli by ste troska konkretizovat Vas napad?
wek
Další informace o konferenci Hw-list