KEIL C problemy



Masz problem? Zapytaj na forum elektroda.pl z bramk± pl.misc.elektronika!

Poprzedni Następny
Wiadomość
spis tre¶ci
From: mszym_at_nospam_sparc10.ely.pg.gda.pl (Michal Szymanski)
Subject: KEIL C problemy
Date: 19 Jan 1999 13:20:16 GMT


Mam pare problemow z kompilatorem KEIL C.

,"large powoduje ze
wszystkie dane sa w pamieci zewnetrznej ale jaki ma znaczenie
"objectextend" ?

danego zakresu np. 0-32000
Z tego co widze, domyslnie jest przyjety zakres 64kB SRAM

wywolywanych z przerywania

Wdzieczny byl bym za odpowiedz

Michal Szymanski
email: mszym_at_nospam_ely.pg.gda.pl

--
--------------------------------------------------------------------------
Michal Szymanski tel: 501022399
http://www.ely.pg.gda.pl/~mszym/index.html
-------------------------------------------------------------------------
Faculty of Electrical and Control Engeneering
Specialization Automation&Robotics V year
------------------------------------------------------------------------

Poprzedni Następny
Wiadomość
spis tre¶ci
From: this_address_is_invalid_see_signature_at_nospam_adresniewazny.com (Jaroslaw Cichorski Jr.)
Subject: Re: KEIL C problemy
Date: Thu, 21 Jan 1999 00:38:55 GMT


mszym_at_nospam_sparc10.ely.pg.gda.pl (Michal Szymanski) wrote:

Mam pare problemow z kompilatorem KEIL C.

Zakladam, ze masz legalny, wiec wszystko masz w instrukcji, a Ty tam
nie zajrzales ze wzgledu na brak czasu :-)

- co oznaczaja parametry kompilatora "large objectextend". Z tego co widze
,"large powoduje ze
wszystkie dane sa w pamieci zewnetrznej ale jaki ma znaczenie
"objectextend" ?

C Compiler str. 37.
Rozszerzenie umieszczane w OBJ do prawidlowej identyfikacji obiektow
wykorzystywane w emulatorach i symulatorach.

- jak ustawic kompilator aby uzywal tylko pamieci zewnetrznej danych z
danego zakresu np. 0-32000
Z tego co widze, domyslnie jest przyjety zakres 64kB SRAM

Mozna na etapie linkowania umieszczac okreslone obszary zmiennych w
okreslonych obszarach pamieci.
Najlepiej umiescic te parametry w zbiorze *.lnk
Przykladowo umieszczenie za lista zbiorow obj polecenia
xdata(1000h) spowoduje umieszczenie obszaru zmiennych xdata od adresu
1000h. Mozna tez umieszczac zmienne okreslonych modulow w okreslonych
miejscach, ale to juz jest bardziej skomplikowane i odsylam do
instrukcji 8051 Utilities.

- czy konieczne jest umieszczanie deklaracji reentrant dla funkcji
wywolywanych z przerywania

Tak, o ile funkcja ta moze byc wykonywana z programu glownego i
przerwana przez przerwanie lub gdy przerwania, ktore korzystaja z tej
procedury maja rozne priorytety i w chwili korzystania z niej moga sie
wzajamnie przerwac.
Rozwiazan jest kilka. Zalezy od tego gdzie bedziesz uzywal tej
procedury. Jezeli tylko w dwoch przerwaniach o takim samym
priorytecie, to wystarczy tylko, zeby procedura dzialala w tym samym
banku, co przerwania wolajace. Jezeli sa rozne priorytety, no to
przerwania musza korzystac z roznych bankow, wiec procedura musi byc
kompilowana z #pragma NOAREGS.
Jezeli przerwania moga sie wzajemnie przerywac w trakcie wywolywania
tej procedury (lub w trakcie jej wolania z programu glownego zezwolone
sa przerwania z niej korzystajace), to procedura ta musi byc
reentrant.
Pamietaj, ze dla takiej procedury tworzony jest wirtualny stos -
trzeba uwazac, zeby nie zabraklo pamieci przy kolejnych wejsciach w
nia.
Nie bede tu wszystkiego opisywal, musisz uszczegolowic przypadek.
Jednak o ile nie jest to na prawde konieczne odradzalbym reentrant.

Pozdrawiam

--
Jaroslaw Cichorski Jr.
E-mail cichy_at_nospam_amart.JUNKMAILPROTECTION.com.pl
WWW http://www.amart.com.pl
UWAGA Adres email niewazny!
Prosze usunac JUNK MAIL PROTECTION. zeby otrzymac prawidlowy adres.
Kto to jest General Failure i dlaczego czyta z mojego dysku twardego ?

Poprzedni Następny
Wiadomość
spis tre¶ci
From: "nameno" <nameno_at_nospam_free.com.pl>
Subject: Re: KEIL C problemy
Date: Thu, 21 Jan 1999 09:31:00 GMT


Jaka jest wersja Keil C ?

Nameno