Jak zapewnić bezpieczeństwo danych w rejestrze R1 przy przerwaniach w Keil?

Czy keil potrafi sam przłączać banki pamięci ???





Poprzedni Następny
Wiadomość
Spis treści
From: "redips999" <redips999_at_nospam_poczta.onet.pl>
Subject: Czy keil potrafi sam przłączać banki pamięci ???
Date: Wed, 12 Feb 2003 23:00:07 +0100


Mam pytanie ...
chcę przkazać do funkcji obsługującej przerwanie zmienną z main'a . Jeżeli w
main'ie nie zmieniam numeru banku (domyślnie jest chyba 0) i zapamiętam
sobie zmienną powiedzmy w Rejestrze R1 , Banku3 (adresując np.
bezpośrednio). Czy istnieje zagrożenie, że kompilator jakimś "cudem"
przełączy sobie bank i nadpisze ten rejestr ??

pozdrawiam
Tomek (redips)
GG : 1397334
--------------------------------------
http://drobne.com - Serwis z ogłoszeniami



========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.internetia.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek" <neticus_at_nospam_wp.pl>
Subject: Re: Czy keil potrafi sam przłączać banki pamięci ???
Date: Thu, 13 Feb 2003 00:28:54 +0100


Mam pytanie ...
chcę przkazać do funkcji obsługującej przerwanie zmienną z main'a . Jeżeli
w
main'ie nie zmieniam numeru banku (domyślnie jest chyba 0) i zapamiętam
sobie zmienną powiedzmy w Rejestrze R1 , Banku3 (adresując np.
bezpośrednio). Czy istnieje zagrożenie, że kompilator jakimś "cudem"
przełączy sobie bank i nadpisze ten rejestr ??

Banku nie przełączy, chyba że zadeklarowałeś przerwanie z pragmą using 3.
Ale musisz zajrzeć do pliku *.M51, tam będzie mapa pamięci i dowiesz się,
czy ten Twój bank nie byl komuś potrzebny. A czy nie prościej zadeklarować
zmienną globalną i przez nią przekazać dane ... ? Unikniesz wtedy swoich
rozterek: przełączy / nie przełączy ... :-)

Pzdr,

Marek



========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!opoka-warszawa!news.idn.org.pl!news.signoff.com.pl!news.pse.pl!mimuw.edu.pl!news.mimuw.edu.pl!news.internetia.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "redips999" <redips999_at_nospam_poczta.onet.pl>
Subject: Re: Czy keil potrafi sam przłączać banki pamięci ???
Date: Thu, 13 Feb 2003 00:41:26 +0100


Banku nie przełączy, chyba że zadeklarowałeś przerwanie z pragmą using 3.
Ale musisz zajrzeć do pliku *.M51, tam będzie mapa pamięci i dowiesz się,
czy ten Twój bank nie byl komuś potrzebny. A czy nie prościej zadeklarować
zmienną globalną i przez nią przekazać dane ... ? Unikniesz wtedy swoich
rozterek: przełączy / nie przełączy ... :-)

zadeklarowałem zmienną zaraz po sekcji #include
unsigned int licznik;

jak odwołuję się do niej w programie - nie zmienia się jej wartość ...
pewnie popełniam jakiś błąd - mogę liczyć na jakieś wskazówki ??


--
pozdrawiam
Tomek (redips)
GG : 1397334
--------------------------------------
http://drobne.com - Serwis z ogłoszeniami





========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.mega.net.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek" <neticus_at_nospam_wp.pl>
Subject: Re: Czy keil potrafi sam przłączać banki pamięci ???
Date: Thu, 13 Feb 2003 02:36:12 +0100


zadeklarowałem zmienną zaraz po sekcji #include
unsigned int licznik;

jak odwołuję się do niej w programie - nie zmienia się jej wartość ...
pewnie popełniam jakiś błąd - mogę liczyć na jakieś wskazówki ??

Jasne ... tylko napisz coś więcej ... :-)

Albo przyslij/zacytuj większy kawałek programu, bo na razie
nie wiem co sie dzieje ...

Pzdr,

Marek



========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed.silweb.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Taddy <taddy_at_nospam_thb.de>
Subject: Re: Czy keil potrafi sam =?ISO-8859-2?Q?prz=B3=B1cza=E6_banki_pami=EAci_=3F=3F=3F?=
Date: Thu, 13 Feb 2003 09:05:59 +0100


redips999 wrote:

Banku nie przełączy, chyba że zadeklarowałeś przerwanie z pragmą using 3.
Ale musisz zajrzeć do pliku *.M51, tam będzie mapa pamięci i dowiesz się,
czy ten Twój bank nie byl komuś potrzebny. A czy nie prościej
zadeklarować zmienną globalną i przez nią przekazać dane ... ? Unikniesz
wtedy swoich rozterek: przełączy / nie przełączy ... :-)

zadeklarowałem zmienną zaraz po sekcji #include
unsigned int licznik;

jak odwołuję się do niej w programie - nie zmienia się jej wartość ...
pewnie popełniam jakiś błąd - mogę liczyć na jakieś wskazówki ??

Pewnie nie zadeklarowales jej jako volatile a tak by raczej nalezalo zrobic
by miec pewnosc ze kompilator zadba o jej aktualizacje.
Co do rejestrow to o ile pamietam Keil zdajesie odklada na stos te ktore
uzywa w procedurce intr jezeli nie moze banku zmienic choc to tez
zalezalo ciut od tego jakiej wersji keila sie uzywalo.

--
Pozdrawiam
Taddy

========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai