Hilfe -> AVR Studio 4

OP #2005379
Lesenswert?
• ▲
▼
Hallo Leute,

ich habe, wie die Überschrift schon sagt, Probleme mit dem AVR Studio 4.
Erstmal meine Soft-/Hardware:
- XPLAIN Board mit XMEGA128A1 und SDRAM
- JTAGICE mkII
- AVR Studio 4

Wenn ich nun einen C-Code im AVR Studio schreibe und dann debugge, gibt 
es im AVR Studio unter View -> Watch ein Fenster, in den ich meine 
globalen Variablen mit der Maus hineinziehen kann und somit die Adresse 
und den Wert sehen kann. Das ist natürlich sehr hilfreich!
Wenn ich nun eine Variable, die nicht global definiert ist, hineinziehe, 
steht als Angabe "not in Location". Ich kann also weder die Adresse noch 
den Wert der Variablen sehen. Das ist natürlich schlecht!
Meine Frage ist nun, ob es mit dem JTAGICE mkII doch möglich wäre, eine 
nicht globale Variable mit Adresse und Wert während dem Debuggen zu 
sehen? Oder gibt es vielleicht dafür schon was im AVR Studio und kenne 
es nicht!?!

Gruß Joe
OP #2005456
Lesenswert?
• ▲
▼
Ok, habe die Antwort gefunden. -Os abschalten!
Leider bekomme ich dann beim Compelieren einen Fehler, aber nicht im 
Code! Ich poste den mal. Kann mir da einer helfen?
1
Build started 7.1.2011 at 16:41:25
2
avr-gcc  -mmcu=atxmega128a1 -Wall -gdwarf-2 -std=gnu99   -DF_CPU=32000000UL -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d  -c  ../main.c
3
In file included from ../avr_compiler.h:132,
4
                 from ../main.c:3:
5
c:/programme/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
6
../main.c: In function '__vector_20':
7
../main.c:400: warning: unused variable 'To_est'
8
avr-gcc -mmcu=atxmega128a1 -Wl,-Map=benzindirekteinspritzung.map main.o usart.o usart_driver.o clksys_driver.o ebi_driver.o dma_driver.o adc_driver.o     -o benzindirekteinspritzung.elf
9
c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega7\libc.a(log.o): In function `log':
10
(.text.avr-libc.fplib+0x46): relocation truncated to fit: R_AVR_13_PCREL against symbol `__addsf3' defined in .text section in c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avrxmega7\libgcc.a(_addsub_sf.o)
11
c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega7\libc.a(log.o): In function `log':
12
(.text.avr-libc.fplib+0x4e): relocation truncated to fit: R_AVR_13_PCREL against symbol `__addsf3' defined in .text section in c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avrxmega7\libgcc.a(_addsub_sf.o)
13
c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega7\libc.a(inverse.o): In function `inverse':
14
(.text.avr-libc.fplib+0xc): relocation truncated to fit: R_AVR_13_PCREL against symbol `__divsf3' defined in .text section in c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avrxmega7\libgcc.a(_div_sf.o)
15
c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega7\libc.a(modf.o): In function `modff':
16
(.text.avr-libc.fplib+0x3e): relocation truncated to fit: R_AVR_13_PCREL against symbol `__subsf3' defined in .text section in c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avrxmega7\libgcc.a(_addsub_sf.o)
17
make: *** [benzindirekteinspritzung.elf] Error 1
18
Build failed with 1 errors and 2 warnings...

Gruß Joe
OP #2005517
Lesenswert?
• ▲
▼
Skript Kiddy schrieb:
> Versuch mal einen Rebuild.

Habe "Rebuild all" ausgeführt. Der Fehler kommt trotzdem.
Die Idee mit static ist nicht schlecht. :)
Danke!

Noch eine Frage: Ich habe einen Vektor welcher seine Größe ich 
Abhängigkeit von Benutzereingabe die Größe verändert. (Entweder 150 oder 
512).
Hier bei habe ich eine das so ausgeführt:
1
int8_t vektor[gr];
Dieser Vektor wird nicht angezeigt! static geht natürlich auch nicht. 
Statt gr kann ich natürlich eine feste Zahl nehmen, dann wird der Vektor 
angezeigt. Warum geht das nicht mit gr??

Gruß Joe
OP #2005702
Lesenswert?
• ▲
▼
Mmh, sehe ich jetzt den Wald vor lauter Bäumen nicht...

gr wird mit USART abgefragt, dabei kann gr entweder den Wert 150 oder 
512 annehmen. Mithilfe von gr erzeuge ich dann einen Vektor mit Größe 
gr.
1
int16_t gr = 0;
2
gr = USART....;
3
int8_t vektor[gr];
4
for(int i=0; i<gr; i++){ vektor[i] = 0;}
Wenn ich nun den Vektor in mein Watchfenster schiebe, sehe ich diesen 
nicht.

Wenn ich dasselbe nur ohne gr mache, also
1
int8_t vektor[150];
2
for(int i=0; i<150; i++){ vektor[i] = 0;}
dann sehe ich den Vektor in meinem Watchfenster.

Meine Frage war nun einfach, warum wird das ohne gr angezeigt?
Nach der Abfrage von USART hat doch mein gr auch die Größe, wenn man nur 
Fall 1 betrachtet, 150. Somit muss doch der Vektor die feste Größe 150 
haben. Oder?

Gruß Joe

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.