Kritická sekce – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kritická sekce – Mikrokontroléry – Fórum – Programujte.comKritická sekce – Mikrokontroléry – Fórum – Programujte.com

 

Mario10
Newbie
14. 3. 2010   #1
-
0
-

Zdar lidi, už jste někdo řešil kritickou sekci na AVR? Koukal jsem všude možně a všude se používá zákazu přerušení.
Jenže co když dojde zrovna v oné chvíli k události, která by vyvolala přerušení. Nemůžu si dovolit o tu událost přijít.

Nahlásit jako SPAM
IP: 89.103.27.–
KIIV
~ Moderátor
+43
God of flame
14. 3. 2010   #2
-
0
-

dost zalezi na tom, co myslis tim "kriticka" -- obvykle je to neco, co se musi vykonat za urcity cas a nesmi se prerusit .. nebo podobne...
ted si zrovna nejsem jist ale preruseni by se nemely ztratit.. maximalne pokud bys vykonaval prilis dlouho bys uz nerozeznal vicenasobne preruseni ze stejneho zdroje
jinak se vykonaj po znovuspusteni preruseni

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Mario10
Newbie
14. 3. 2010   #3
-
0
-

tím "kritická" myslím to, že se v té sekci přistupuje ke sdíleným prostrředkům, zde fronta zpráv.
Přerušení se sice vykonají po znovupovolení, ale to podle mě platí jen pokud přerušení je citlivé na logickou úroveň. Platí to ale i v případě že přerušení reaguje na hranu?
Zatím jsem přišel dva způsoby:
1) předělat/upravit HW aby negeneroval přerušení jako hranu ale jako logickou úroveň, ale zase bych musel SW ošetřit aby nedošlu k duplikaci přerušení
2) při vstupu do kritické sekce zakázat přerušení a po vykonání sekce načíst registr GIFR a podle toho znovuvyvolat přerušení. Zde je ale problém držet si údaje o aktuálním přerušení, možnost zacyklení a tak

Dělám rozsáhlejší zabezpečovací ústřednu na ATmega16 (kvůli ceně a tak) a ta moc prostředků nemá. Předtím jsem dělal na ATmega128, na kterém jsem rozchodil NutOS a obdobné "blbosti" jsem tím pádem řešit nemusel.

Nahlásit jako SPAM
IP: 89.103.27.–
KIIV
~ Moderátor
+43
God of flame
14. 3. 2010   #4
-
0
-

no v operacnich systemech se to resi pres "semafory" .. tj mas konkretni promennou kde si uzamknes nejaky sdileny prostredek aby do toho nehrabalo zadny dalsi vlakno .. akorat pokud toho mas vic hrozi takzvany deadlock.. ze to treba padne a neuvolni po sobe...

preruseni nastavuji priznaky preruseni a ty se po vykonani nuluji .. tj. problem bude akorat s vicenasobnym prerusenim v dobe zakazaneho preruseni ..

kdyby neco muzes se zeptat treba na avrfreaks.net tam maj mnohem vic zkusenosti

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
9. 4. 2010   #5
-
0
-

KIIV napsal:
...ted si zrovna nejsem jist ale preruseni by se nemely ztratit... maximalne pokud bys vykonaval prilis dlouho bys uz nerozeznal vicenasobne preruseni ze stejneho zdroje
jinak se vykonaj po znovuspusteni preruseni



rozumim tomu dobre, ze se napr. ext. preruseni v dobe, kdy jsou preruseni zakazana (napr. cli()), nekde stradaji, aby se mohly zpracovat po jejich povoleni???

Nahlásit jako SPAM
IP: 91.213.10.–
KIIV
~ Moderátor
+43
God of flame
9. 4. 2010   #6
-
0
-

nestradaji.. jen se nastavi priznak pokud je povolene...
takze poznas ze probelhlo alespon jednou.. pokud vic tak uz nemas sanci poznat

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý