AVRStudio i dwie zmienne pod jednym adresem
Masz problem? Zapytaj na forum elektroda.pl
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ł
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/
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ł
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/
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/
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ł