mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe -> AVR Studio 4


Autor: Joe F. (joe1234)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joe F. (joe1234)
Datum:

Bewertung
0 lesenswert
nicht 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?

Build started 7.1.2011 at 16:41:25
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
In file included from ../avr_compiler.h:132,
                 from ../main.c:3:
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"
../main.c: In function '__vector_20':
../main.c:400: warning: unused variable 'To_est'
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
c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega7\libc.a(log.o): In function `log':
(.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)
c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega7\libc.a(log.o): In function `log':
(.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)
c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega7\libc.a(inverse.o): In function `inverse':
(.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)
c:/programme/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega7\libc.a(modf.o): In function `modff':
(.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)
make: *** [benzindirekteinspritzung.elf] Error 1
Build failed with 1 errors and 2 warnings...


Gruß Joe

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gib deiner Variable doch eine Location :-)
Setze sie (wenn möglich) vorübergehend zu static, dann ist sie zu sehen

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch mal einen Rebuild.

Autor: Joe F. (joe1234)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Skript Kiddy schrieb:
> Versuch mal einen Rebuild.

Was heisst "Rebuild"? Welche Taste/Einstellung ist das?

Autor: Joe F. (joe1234)
Datum:

Bewertung
0 lesenswert
nicht 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:
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

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> 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:int8_t vektor[gr];

Ist das dein Ernst?

Autor: Joe F. (joe1234)
Datum:

Bewertung
0 lesenswert
nicht 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.
int16_t gr = 0;
gr = USART....;
int8_t vektor[gr];
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
int8_t vektor[150];
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.