AVRStudio i dwie zmienne pod jednym adresem



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Paweł" <pawel.neo_at_nospam_neostrada.pl>
Subject: AVRStudio i dwie zmienne pod jednym adresem
Date: Fri, 7 Oct 2005 22:10:49 +0200


Witam !

Nowsze wersje AVRStudio wykrywają błąd gdy zadeklaruje się dwie zmienne pod
tym samym adresem.
Co jednak zrobić w przypadku gdy chcę aby różne procedury używały tego
samego kawałka pamięci.
Wymyśliłem sobie taki przykład:

.dseg
.org 100

ifdef A
Nazwa1: .byte 100
.else
Nazwa1: .byte 50
.endif
....
....
.dseg
.org 100

Nazwa2: .byte 50
.
ifdef B
Nazwa3: .byte 2
.endif

ifdef C
Nazwa 4: .byte 5
.endif

Nazwa5: .byte 20

Jak to trzeba napisać aby przy kompilacji nie pojawiał się błąd ?

Paweł



Poprzedni Następny
Wiadomość
Spis treści
From: "Piotrek Sz." <zumek.WYTNIJ_at_nospam_gazeta.pl>
Subject: Re: AVRStudio i dwie zmienne pod jednym adresem
Date: Fri, 7 Oct 2005 21:52:04 +0000 (UTC)


Paweł <pawel.neo_at_nospam_neostrada.pl> napisał(a):

Witam !

Nowsze wersje AVRStudio wykrywają błąd gdy zadeklaruje się dwie zmienne pod
tym samym adresem.

1)Assembler nie operuje na zmiennych , tylko na etykietach.
2)Do tego samego adresu , możesz przypisać więcej niż jedną etykietę ;)
3)Chyba żaden porządny kompilator , nie pozwala "cofnąć" licznika segmentu.
4)Rozwiń bardziej temat , jak byś widział etykiety dla różnych "ifów" i "defów".
..
Jak to trzeba napisać aby przy kompilacji nie pojawiał się błąd ?

Z rozwagą ;-)

Paweł

Pozdrawiam
Piotrek



--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Poprzedni Następny
Wiadomość
Spis treści
From: "Paweł" <pawel.neo_at_nospam_neostrada.pl>
Subject: Re: AVRStudio i dwie zmienne pod jednym adresem
Date: Sat, 8 Oct 2005 00:49:53 +0200


1)Assembler nie operuje na zmiennych , tylko na etykietach.
OK
Dokonałem pewnego uproszczenia. W segmencie .dseg znajdują się dane, zmienne
itp.

2)Do tego samego adresu , możesz przypisać więcej niż jedną etykietę ;)
OK

3)Chyba żaden porządny kompilator , nie pozwala "cofnąć" licznika
segmentu.
Starsze wersje AVRStudio pozwalały to robić.

4)Rozwiń bardziej temat , jak byś widział etykiety dla różnych "ifów" i
"defów".
Nie bardzo wiem co mam rozwinąć. Załóżmy, że kompilator pozwala "cofnąć"
licznik segmentu.
W takiej sytuacji podany przykład skompiluje się bez problemu. Jeśli
kompilator na to nie pozwala to ten przykład trzeba jakoś zmodyfikować aby
móc go skompilować. Chodzi mi właśnie o tą modyfikację.

Paweł





Poprzedni Następny
Wiadomość
Spis treści
From: "Piotrek Sz." <zumek.WYTNIJ_at_nospam_gazeta.pl>
Subject: Re: AVRStudio i dwie zmienne pod jednym adresem
Date: Sat, 8 Oct 2005 15:34:21 +0000 (UTC)


OK.
Nie wnikając w dalsze szczegóły , proponuję Ci lekarstwo.
-Oie

Piotrek


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotrek Sz." <zumek.WYTNIJ_at_nospam_gazeta.pl>
Subject: Re: AVRStudio i dwie zmienne pod jednym adresem
Date: Sat, 8 Oct 2005 16:05:22 +0000 (UTC)


Piotrek Sz. <zumek.WYTNIJ_at_nospam_gazeta.pl> napisał(a):

OK.
Nie wnikając w dalsze szczegóły , proponuję Ci lekarstwo.
-Oie

Zapomniałem jeszcze o ...
#pragma overlap ignore ;lub warning jeśli ma tylko ostrzegać ;-)
.dseg
.org 100

ifdef A
Nazwa1: .byte 100
.else
Nazwa1: .byte 50
.endif
....
....
.dseg
.org 100

Nazwa2: .byte 50
.
ifdef B
Nazwa3: .byte 2
.endif

ifdef C
Nazwa 4: .byte 5
.endif

Nazwa5: .byte 20


Piotrek

PS
Help "całą prawdę Ci powie" ;-)


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Poprzedni Następny
Wiadomość
Spis treści
From: "Paweł" <pawel.neo_at_nospam_neostrada.pl>
Subject: Re: AVRStudio i dwie zmienne pod jednym adresem
Date: Sat, 8 Oct 2005 21:31:09 +0200


#pragma overlap ignore ;lub warning jeśli ma tylko ostrzegać ;-)

Dziękuje !
To rozwiązało problem.

Paweł