Watches w AVR Studio



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "pytajnik" <nicniewiem_at_nospam_op.pl>
Subject: Watches w AVR Studio
Date: Tue, 25 Mar 2003 00:08:20 +0100


Mam program:
int main(void)
{
unsigned char i;

for(i=0;i<10;i++)
{
asm("nop");
}
}

Dlaczego w AVR Studio (v3.55) nie mogę podejrzeć w Watches bieżącej wartości
ziennej i?
Dostaję tylko komunikat "Not in scope".
Co za badziewne narzędzie.



========
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

Poprzedni Następny
Wiadomość
Spis treści
From: "pytajnik" <nicniewiem_at_nospam_op.pl>
Subject: Re: Watches w AVR Studio
Date: Sat, 5 Apr 2003 00:25:23 +0200


"Michał Lankosz" <nie_at_nospam_lubie.spamu> wrote in message
news:b5vpjv$c5i$1_at_nospam_nemesis.news.tpi.pl...
int main(void)
{
unsigned char i;

for(i=0;i<10;i++)
{
asm("nop");
}
}

Wcale nie badziewne. Kompilator zapewne zoptymalizował kod i niepotrzebna
stała się zmienna 'i' w pętli.
Zamień linijkę na
asm volatile ("NOP"::);
lub zmień parametr optymalizacji kodu (plik makefile) na -O0 (Olga zero),
bo
prawdopodobnie jest jeden z: -Os, -O1 -O2 -O3
w linijce
#compiler flags
CPFLAGS = -g -O3 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)

Instrukcja "nop" się wykonuje, więc zmienna "i" nie jest chyba niepotrzebna.
Mimo wszystko nie widzę jej. Upieram się, że coś tu jest badziewne i w
dodatku bardzo wkurzające. Pewnie kompilator.:-) Badałem podobny problem dla
51-ki i tam wszystko gra (Keil+dScope-51). Stopień mojej irytacji osiąga max
i za chwilę cisnę te całe AVR-y...



========
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

Poprzedni Następny
Wiadomość
Spis treści
From: "Jerzy Szczesiul" <jerzy.szczesiul_at_nospam_ep.com.pl>
Subject: Re: Watches w AVR Studio
Date: Sat, 5 Apr 2003 10:27:42 +0200


Czesc

Użytkownik "pytajnik" <nicniewiem_at_nospam_op.pl> napisał w wiadomości
news:b6l0ns$qbv$1_at_nospam_nemesis.news.tpi.pl...

Instrukcja "nop" się wykonuje, więc zmienna "i" nie jest chyba
niepotrzebna.
Mimo wszystko nie widzę jej. Upieram się, że coś tu jest badziewne i w
dodatku bardzo wkurzające. Pewnie kompilator.:-) Badałem podobny problem
dla
51-ki i tam wszystko gra (Keil+dScope-51). Stopień mojej irytacji osiąga
max
i za chwilę cisnę te całe AVR-y...

No to czemu wojujesz z free toolsami zamiast sobie
kupic jakis prof - dla avr jest tego od metra ?
Szkoda kasy to prosze nie marudzic ;-)))

Watches obejmuja w Studio tylko sekcje data.
Zmienna i kompilator lokuje gdzies w wolnym rejestrze
( a to wcale nie jest badziewne tylko wrecz odwrotnie )
i watches jej nie widza. Wlacz podglad rejestrow i zobacz
ktory sie zmienia w petli.
Przy tym to jest fakt, ze _nie ma_ na dzien dzisiejszy
dobrego konwertera z formatu elf na coff, a juz
w ogole na extended coff Studia 4. Wiec symulacja
raz Ci zadziala a innym razem ( przewaznie ) nie :-(

--
Pozdrowienia
Jurek Szczesiul


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

Poprzedni Następny
Wiadomość
Spis treści
From: "pytajnik" <nicniewiem_at_nospam_op.pl>
Subject: Re: Watches w AVR Studio
Date: Sun, 6 Apr 2003 17:44:17 +0200


"Jerzy Szczesiul" <jerzy.szczesiul_at_nospam_ep.com.pl> wrote in message
news:b6m4mb$3ga$1_at_nospam_nemesis.news.tpi.pl...

No to czemu wojujesz z free toolsami zamiast sobie
kupic jakis prof - dla avr jest tego od metra ?
Szkoda kasy to prosze nie marudzic ;-)))

Problem polega na tym, że większość swoich prac robię na '51. Nie specjalnie
opłaca mi się kupowac prof dla avra, bo nawet nie wiem, czy mi się zwróci. A
skoro jest "popularny" kompilator, to czemu z niego nie korzystać? Ale
faktycznie popularny=badziewny i ci co go za wszelką cenę bronią są
śmieszni.




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

Poprzedni Następny
Wiadomość
Spis treści
From: "pytajnik" <nicniewiem_at_nospam_op.pl>
Subject: Re: Watches w AVR Studio
Date: Sat, 5 Apr 2003 00:26:01 +0200


"drozdu" <lbajger_at_nospam_wp.pl> wrote in message
news:b5up7j$s2f$1_at_nospam_atlantis.news.tpi.pl...
Dlaczego w AVR Studio (v3.55) nie mogę podejrzeć w Watches bieżącej
wartości
ziennej i?
Dostaję tylko komunikat "Not in scope".
Co za badziewne narzędzie.

poczytaj sobie na avrfreaks (www.avrfreaks.net), musisz przekonwerterowac
format elf na coff
z ktorym radzi sobie avrstudio. szukaj elfcoff.

Do d... z takimi narzędziami.



========
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

Poprzedni Następny
Wiadomość
Spis treści
From: "pytajnik" <nicniewiem_at_nospam_op.pl>
Subject: Re: Watches w AVR Studio
Date: Sat, 5 Apr 2003 00:48:49 +0200


"Michał Lankosz" <nie_at_nospam_lubie.spamu> wrote in message
news:b5vpjv$c5i$1_at_nospam_nemesis.news.tpi.pl...
Wcale nie badziewne. Kompilator zapewne zoptymalizował kod i niepotrzebna
stała się zmienna 'i' w pętli.

Jeszcze jedną rzecz wykryłem. Dlaczego nie chce mi się skompilować program?


#include <io.h>

int main( void )
{

DDRB=0xff;
TCCR1A=0x83;
TCCR1B=0x5;

..........

OCR1AL=0x04;
OCR1AH=0;

...........
}

nie działa też zapis, kompilator olewa rejestry OCR1A

outp(0x04,OCR1AL);
outp(0,OCR1AH);




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

Poprzedni Następny
Wiadomość
Spis treści
From: "Jerzy Szczesiul" <jerzy.szczesiul_at_nospam_ep.com.pl>
Subject: Re: Watches w AVR Studio
Date: Sat, 5 Apr 2003 10:32:17 +0200


Użytkownik "pytajnik" <nicniewiem_at_nospam_op.pl> napisał w wiadomości
news:b6l22d$su7$1_at_nospam_nemesis.news.tpi.pl...

Jeszcze jedną rzecz wykryłem. Dlaczego nie chce mi się skompilować
program?

TCCR1A=0x83;
TCCR1B=0x5;
OCR1AL=0x04;
OCR1AH=0;
nie działa też zapis, kompilator olewa rejestry OCR1A

No to cos pokopales po prostu.
Kompiluje sie bez zadnego problemu :

TCCR1A=0x83;
88: 83 e8 ldi r24, 0x83 ; 131
8a: 8f bd out 0x2f, r24 ; 47
TCCR1B=0x5;
8c: 85 e0 ldi r24, 0x05 ; 5
8e: 8e bd out 0x2e, r24 ; 46


OCR1AL=0x04;
90: 84 e0 ldi r24, 0x04 ; 4
92: 8a bd out 0x2a, r24 ; 42
OCR1AH=0;
94: 1b bc out 0x2b, r1 ; 43

--
Pozdrowienia
Jurek Szczesiul


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

Poprzedni Następny
Wiadomość
Spis treści
From: "pytajnik" <nicniewiem_at_nospam_op.pl>
Subject: Re: Watches w AVR Studio
Date: Sun, 6 Apr 2003 17:53:16 +0200


"Jerzy Szczesiul" <jerzy.szczesiul_at_nospam_ep.com.pl> wrote in message
news:b6m4mc$3ga$2_at_nospam_nemesis.news.tpi.pl...
Użytkownik "pytajnik" <nicniewiem_at_nospam_op.pl> napisał w wiadomości
news:b6l22d$su7$1_at_nospam_nemesis.news.tpi.pl...

Jeszcze jedną rzecz wykryłem. Dlaczego nie chce mi się skompilować
program?

TCCR1A=0x83;
TCCR1B=0x5;
OCR1AL=0x04;
OCR1AH=0;
nie działa też zapis, kompilator olewa rejestry OCR1A

No to cos pokopales po prostu.

-))) Po prostu pokopałem. Wykryłem jeszcze jeden dowód badziewności
AVRGCC.
Pisałem program na 2313. W dokumentacji jak wół widnieją rejestry OCR1AH i
OCR1AL. W atmelowskim assemblerze ("ASM Assembler for Windows") instrukcje
ldi temp,0x00
out ocr1ah,temp

ldi temp,0x04
out ocr1al,temp
przechodzą bez bólu, ale porąbane GCC nie widzi rejestrów OCR1AL i OCR1AH
tylko OCR1L i OCR1H. 100 tysięcy razy sprawdzałem, czy nie popełniam błedu,
a tu taki kwiatek. BADZIEWIE brrrrrr.




========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.atcom.net.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Artur Lipowski <lal_at_nospam_pro.onet.pl>
Subject: Re: Watches w AVR Studio
Date: Mon, 7 Apr 2003 09:48:02 +0000 (UTC)


In article <b6rgfd$235$2_at_nospam_atlantis.news.tpi.pl>, pytajnik wrote:
-))) Po prostu pokopałem. Wykryłem jeszcze jeden dowód badziewności
AVRGCC.
Pisałem program na 2313. W dokumentacji jak wół widnieją rejestry OCR1AH i
OCR1AL. W atmelowskim assemblerze ("ASM Assembler for Windows") instrukcje
...
przechodzą bez bólu, ale porąbane GCC nie widzi rejestrów OCR1AL i OCR1AH
tylko OCR1L i OCR1H. 100 tysięcy razy sprawdzałem, czy nie popełniam błedu,
a tu taki kwiatek. BADZIEWIE brrrrrr.

Mieszanie z błotem kompilatora z 99.9% przypadków jest objawem własnych
problemów z pisaniem kodu (czytaj: nieumiejętności programowania).

Nie wiem co Ty używasz do kompilowania, ale w mojej wersji AVr-gcc są takie
definicje:
#define OCR1 _SFR_IO16(0x2A)
#define OCR1L _SFR_IO8(0x2A)
#define OCR1H _SFR_IO8(0x2B)
#define OCR1A _SFR_IO16(0x2A)
#define OCR1AL _SFR_IO8(0x2A)
#define OCR1AH _SFR_IO8(0x2B)
Jak widać dostęp to OCR1 jest na wszystkie możliwe sposoby.


Pozdrawiam,
--
Artur Lipowski
--
Wyslano przez news.atcom.net.pl
ATCOM S.A. http://www.atcom.pl/


========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news.task.gda.pl!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "drozdu" <lbajger_at_nospam_wp.pl>
Subject: Odp: Watches w AVR Studio
Date: Thu, 27 Mar 2003 13:03:12 +0100


Dlaczego w AVR Studio (v3.55) nie mogę podejrzeć w Watches bieżącej
wartości
ziennej i?
Dostaję tylko komunikat "Not in scope".
Co za badziewne narzędzie.

poczytaj sobie na avrfreaks (www.avrfreaks.net), musisz przekonwerterowac
format elf na coff
z ktorym radzi sobie avrstudio. szukaj elfcoff.

pozdr.
LB




========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.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: "Michał Lankosz" <nie_at_nospam_lubie.spamu>
Subject: Odp: Watches w AVR Studio
Date: Thu, 27 Mar 2003 22:14:33 +0100


int main(void)
{
unsigned char i;

for(i=0;i<10;i++)
{
asm("nop");
}
}

Dlaczego w AVR Studio (v3.55) nie mogę podejrzeć w Watches bieżącej
wartości
ziennej i?
Dostaję tylko komunikat "Not in scope".
Co za badziewne narzędzie.
Wcale nie badziewne. Kompilator zapewne zoptymalizował kod i niepotrzebna
stała się zmienna 'i' w pętli.
Zamień linijkę na
asm volatile ("NOP"::);
lub zmień parametr optymalizacji kodu (plik makefile) na -O0 (Olga zero), bo
prawdopodobnie jest jeden z: -Os, -O1 -O2 -O3
w linijce
#compiler flags
CPFLAGS = -g -O3 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)

Proponuję też podglądnąć kod asemblerowy po kompilacji...

pozdrawiam

--

Michał, SQ9FQQ http://sq9fqq.prv.pl/
GG:374157 http://free.ngo.pl/sp9zcj/
mike2001 (malpa) tlen.pl




========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news2.icm.edu.pl!news.pw.edu.pl!not-for-mai