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