Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Ostrzeżenie podczas kompilacji - co oznacza

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:
Ostrzeżenie podczas kompilacji - co oznacza

Postautor: Sławek5 » 19 lip 2006, o 06:35

Próbuje skompilować program dla at902313 nnapisany w asemblerze. Kompiluję AVRStudio.
Podczas kompilacji wyskakują mi ostrzeżenia w postacji:

Kod: Zaznacz cały

Building project... C:\uC_Projekty\avr910_prog\avr910.asm(438): warning: Register r28 already defined by the .DEF directive C:\uC_Projekty\avr910_prog\avr910.asm(439): warning: Register r29 already defined by the .DEF directive Assembly complete, 0 errors. 2 warnings
A w kodzie źródłowym jest tylko umieszczona linijki:

Kod: Zaznacz cały

.def addrl = r28 ; (YL) Low order byte of address .def addrh = r29 ; (YH) High order byte of address
O co chodzi, czy te rejestry sa gdzie indziej wykorzysywane

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 19 lip 2006, o 06:41

Są zdefiniowane

Kod: Zaznacz cały

.def YL =r28 .def YH =r29
w pliku 2313def.inc

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 19 lip 2006, o 08:05

Czyli mogę się tym nie przejmować i to oznacza że wszystko jest w porządku.

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 19 lip 2006, o 10:56

W gruncie rzeczy tak... Problem mógłby sie pojawić, gdyby np w przerwaniu korzystać z tych rejestrów pod inną nazwą bez wcześniejszego zapamiętania ich stanu.

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 19 lip 2006, o 11:09

To ostrzeżenie pojawa mi sie podczas kompilacji programu do AVR910 z Twojej strony Radzio więc chyba jest ok. A tak przy okazji czy mogę i co zmienić aby podpiąć kwarc np 4 lub 8Mhz i czy tylko ten programator działa z takimi dyżymi prędkościami 19200 czy da się obniżyć BAUD zarówno do AVRStudio jak i do Bascoma.

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 19 lip 2006, o 14:43

Jest ok.
Prędkości transmisji jak i częstotliwosći taktowania możesz zmienić w pliku z programem.

Kod: Zaznacz cały

;*************************************************************************** ;* ;* CONSTANTES ;* ;*************************************************************************** ;**** Constant declarations Data Rate **** ;******** Chrystals for maximum Baudrates .equ XTAL = 7373 ; XTAL frequency, Khz (7.3728 Mhz) ;******** .equ BAUD = 115200 ; Data rate, bauds .equ N = 3 ; for 7.3728 Mhz/115.200Baud ;******** ;.equ BAUD = 38400 ; Data rate, bauds ;.equ N = 11 ; for 7.3728 Mhz/38.400Baud ;******** ;.equ BAUD = 19200 ; Data rate, bauds ;.equ N = 23 ; for 7.3728 Mhz/19.200 Baud ;********* ;**** definitions for different chrystals and 115.200 baud **** ;.equ XTAL = 3686 ; XTAL frequency, Khz (3.6864 Mhz) ;********* ;.equ BAUD = 115200 ; Data rate, bauds ;.equ N = 1 ; for 3.6864 Mhz/115.200Baud ;********* ; ;********* Baudrates for 8 Mhz Chrystal ;.equ XTAL = 8000 ; XTAL frequency, Khz (8.000 Mhz) ;********* ;.equ BAUD = 38400 ; Data rate, bauds ;.equ N = 12 ; for 8.00 Mhz/38.400 Baud ;********* ;.equ BAUD = 19200 ;Data rate, bauds ;.equ N = 25 ; for 8.00 Mhz/19.200 Baud ;********* ;.equ BAUD = 9600 ; Data rate, bauds ! Not valid for AVRProg, use for avrdude only ! ;.equ N = 51 ; for 8.00 Mhz/9.600 Baud ;********* ;********* Baudrates for 4 Mhz Chrystal ;.equ XTAL = 4000 ; XTAL frequency, Khz (4.000 Mhz) ;********* ;.equ BAUD = 19200 ; Data rate, bauds ;.equ N = 12 ; for 4.00 Mhz/19.200 Baud ;********* ;.equ BAUD = 9600 ; Data rate, bauds ! Not valid for AVRProg, use for avrdude only ! ;.equ N = 25 ; for 4.00 Mhz/9.600 Baud ;*********
Musisz odkomentować interesujące Cię wartości a zakomentować akutalnie odkomentowane.

stan24
-
-
Posty:60
Rejestracja:16 lut 2004, o 10:19
Lokalizacja:Łódź

Postautor: stan24 » 24 lip 2006, o 14:30

W gruncie rzeczy tak... Problem mógłby sie pojawić, gdyby np w przerwaniu korzystać z tych rejestrów pod inną nazwą bez wcześniejszego zapamiętania ich stanu.
i aby tego uniknac celowe jest wprowadzenie dyrektywy :D :
.IFDEF YL
.undef YL
.def MojNowyRejestr=r28
.ENDIF
i teraz juz nie powinno byc komunikatu o konflicie nazw, uf jak goraco :)
pozdrawiam S

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 27 lip 2006, o 19:15

.IFDEF YL
.undef YL
.def MojNowyRejestr=r28
.ENDIF
i teraz juz nie powinno byc komunikatu o konflicie nazw, uf jak goraco :)
Za to moze wystapic komunikat, ze uzyto nieznanego obiektu Yl *). O ile programista takiej nazwy uzyje :roll:

Lepszym wyjsciem jest przeczytanie warningow, i zinterpretowanie, czy to co nam mowia moze skutkowac faktyczne powaznym bledem, czy tylko niegroznym ostrzezeniem.

*) Edited... oczywiscie MojNowyRejest bedzie teraz obowiazujaca nazwa, wiec nie bedzie nieznanym obiektem, jak to pierwotnie napisalem... coz... upal.
Ostatnio zmieniony 27 lip 2006, o 20:39 przez pajaczek, łącznie zmieniany 1 raz.

szymel
-
-
Posty:212
Rejestracja:16 sty 2005, o 16:42
Lokalizacja:Włocławek

Postautor: szymel » 27 lip 2006, o 20:18

...
Lepszym wyjsciem jest przeczytanie warningow, i zinterpretowanie, czy to co nam mowia moze skutkowac faktyczne powaznym bledem, czy tylko niegroznym ostrzezeniem.
Lepszym :?: A może pora zmienić kompilator na 2-kę.Ma dużo lepszy preprocesor i można zdefiniować rejestr pod wieloma nazwami. Pytanie tylko, po co :?:

Piotrek

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 27 lip 2006, o 20:37

A może pora zmienić kompilator na 2-kę.Ma dużo lepszy preprocesor i można zdefiniować rejestr pod wieloma nazwami.
No jak widac, tutaj tez mozna (o ile pogodzic sie z warningami).
Pytanie tylko, po co :?:
Sa rzeczy na niebie i ziemi, o ktorych sie fizjologom nie snilo :|

stan24
-
-
Posty:60
Rejestracja:16 lut 2004, o 10:19
Lokalizacja:Łódź

Postautor: stan24 » 28 lip 2006, o 15:42

...
Lepszym :?: A może pora zmienić kompilator na 2-kę.Ma dużo lepszy preprocesor i można zdefiniować rejestr pod wieloma nazwami. Pytanie tylko, po co :?:

Piotrek
W tym przypadku rozwiazaniem najlepszym i dajacym wiecej mozliwosci niz stosowanie nowych kompilatorow bedzie zapoznanie sie z podrecznikiem do nauki jezyka programowania. :)

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 28 lip 2006, o 18:33

A masz jakiś konkretnie na myśli (tytuł)?

stan24
-
-
Posty:60
Rejestracja:16 lut 2004, o 10:19
Lokalizacja:Łódź

Postautor: stan24 » 29 lip 2006, o 01:07

Mysle, ze wlasciwa lektura do rozwiazania Twoich problemow z uP bedzie:
"C programming for microcontrollers", J. Pardue

zajrzyj rowniez: http://www.nongnu.org/avr-libc/

Podrecznikow do nauki jest b. duzo. Ja preferuje dwoch autorow: Lippmana i Stroustrupa.

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 29 lip 2006, o 04:16

A gdzie modę zdobyć tą książkę. Tytuł jest bardzo inteesujący. Możesz mi podać link?

stan24
-
-
Posty:60
Rejestracja:16 lut 2004, o 10:19
Lokalizacja:Łódź

Postautor: stan24 » 29 lip 2006, o 08:08

Ja mam zakupiona przez biblioteke. Nie wiem gdzie zostala zakupiona.
Tu znajdziesz pierwsze rozdzialy:
http://www.smileymicros.com/QuickStartG ... f2704195e4

No i warto jeszcze zapoznac sie z artykulem:
http://www.atmel.com/dyn/resources/Prod ... r_3_04.pdf

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 29 lip 2006, o 08:35

A możesz mi powiedzieć jak kupić książk po angielsku.
Nigdy nie miałem okazji kupoać takich wydań i nawet nie wiem gdzie się udać.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 29 lip 2006, o 09:13

hmm... Do ksiegarni ?? Najlepiej naukowej, albo przy jakiejs uczelni. Nie maja na polce, zapytaj.

Popatrz tez w ksiegarniach internetowych.

stan24
-
-
Posty:60
Rejestracja:16 lut 2004, o 10:19
Lokalizacja:Łódź

Postautor: stan24 » 29 lip 2006, o 09:49

Najlepiej spytaj bezposrednio u bibliotekarzy uczelnianych. Nie pamietam gdzie moja bilioteka sie zaopatruje (wiem tylko ze we Wroclawiu).

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 17 gości