Forum: Compiler & IDEs AVR-GCC und Studio 4.07 - C-Struct's


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin Raffelsieper (Gast)


Lesenswert?

Hallo zusammen!

Weiss jemand, wie man dem Studio beibringen kann, eine Struktur im
Watch-Window darzustellen?

so hab ich die Struktur definiert:

typedef struct { u08  status; u08  except; } st_otto;
volatile st_otto otto;

Studio zeigt aber nur an, dass es eine Struktur ist, das sieht dann wie
folgt aus:

otto    {...}



Muss ich denn noch irgendeine Debug-info generieren lassen?? Angeblich
soll das Studio so was anzeigen könne, wenn man einen käuflich zu
erwebenden Compiler verewendet



Gruß Martin

von Joerg Wunsch (Gast)


Lesenswert?

Upgrade auf aktuelles WinAVR und AS4.08.

von Jörg (Gast)


Lesenswert?

Ich wollte einen Atmega 128 u Board 500+501 mit C Programmierten mit Avr
4.07.
Hast Du vieleicht eine genaue Vorgehensweise ? Das ich schnell zum
Erfolg komme. Auch wie es mit der verbindung ist vom C Compiler und Avr
mit dem make file. extcoff usw wie man am besten damit hantiert um ein
Erfolg zu sehen.
MFG Jörg

von Jörg (Gast)


Lesenswert?

Hast Du eine genaue Vorgehensweise wie man ein Atmega 128 u Board
500+501 mit C schnell erfolgreich Programmiert ?
Als Werkzeug habe ich die selbe Softwar wie Du.
Ich versteh nur nicht mit dem extcoff mit dem make file erzeugen usw.
Wenn es geht in Deutsch.
Mfg Jörg

von Martin Raffelsieper (Gast)


Lesenswert?

hallo Jörg,

ich arbeitete lediglich mit einer BATCH-datei, die immer alles
compiliert,linkt etc.

Diese sähe etwa wie folgt aus, wenn man zwei Quelldateien PC.C und
MAIN.C hätte (hier ist allerdings ein 64er Prozessor verwendet) :



echo *** Compiliere main.c:   (*.c nach *.o)
avr-gcc -g -Wall -O2 -mmcu=atmega64 -c -o ..\O\main.o main.c
if errorlevel 1 goto :ende

echo *** Compiliere pc.c:   (*.c nach *.o)
avr-gcc -g -Wall -O2 -mmcu=atmega64 -c -o ..\O\pc.o pc.c
if errorlevel 1 goto :ende


echo *** Linke alles Zusammen  (*.o  nach   *.elf *.map)
avr-gcc ..\O\main.o ..\O\pc.o -Wl,-Map=..\M\reader.map, -o
..\M\reader.elf --cref -mmcu=atmega64

if errorlevel 1 goto :fehler

echo *** erzeuge COFF File   (*.elf  nach   *.cof) für das AVR Studio -
das COFF File liegt im Quellverzeichnis
avr-objcopy --debugging -O coff-avr --change-section-address
.data-0x800000 --change-section-address .bss-0x800000
--change-section-address .noinit-0x800000 --change-section-address
.eeprom-0x810000 ..\M\reader.elf reader.cof
if errorlevel 1 goto :fehler


echo *** erzeuge HEX File   (*.elf  nach   *.hex)
avr-objcopy  -O ihex -R .eeprom ..\M\reader.elf ..\M\reader.hex
if errorlevel 1 goto :fehler


:ok
echo #########################
echo #### Durchgelaufen ######
echo #########################

goto :ende

:fehler
echo ###################################
echo #####  leider nicht geklappt ######
echo ###################################



:ende





dazu ist es nötig, dass folgende Verzeichnisstruktur vorliegt:

C:\......\S   C-Quellen, dort liegt auch die beschriebene
BATCH-Datei
auch das coff-File für das Studio landet hier
C:\......\O   Obj-Verzeicnis, dorthin wird compiliert
C:\......\M   Hirher wird das Hex-File für den Flasher gelegt

Gruß Martin

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]
  • [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.