mikrocontroller.net

Forum: Compiler & IDEs Anfängerfrage in C


Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum...
da ich jetzt in C einsteigen muß/möchte, habe ich auch prompt das erste
Problem:
Was muss ich im Make-File eintragen um einen Attiny2313 zu compilieren
?

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutze MFile und dessen Menüs, da geht das ganze Spiel wesentlich
einfacher, als "zu Fuß"...

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutze das Tool MFile, dort kannst du den gew. Prozessor einstellen und
bekommst ein fertiges Makefile erzeugt.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guter Tipp.
Einziges Problem:
Da gibt es keinen Attiny 2313.
Hab ich vielleicht ne alte Version ?
Laut AVRlibc sollte der 2313 unterstützt werden.

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, der fehlt bei mir tatsächlich auch!

Möglicherweise "nur" im Menü vergessen worden.
Editiere das Makefile mit Deinem Lieblingeditor und suche nach "MCU
=" und trage dort

MCU = attiny2313

ein. Ich bin mir allerdings nicht sicher, ob das wirklich funktioniert,
weil ich nicht sagen kann, weshalb der Tiny2313 nicht in MFile
auftaucht. Falls das Kompilat funktioniert, solltest Du Jörg Wunsch mal
darauf hinweisen, aber vielleicht liest er es ja selber mit ;-)

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es funktioniert nicht. Das war schon mein erster Versuch.
Die Compiler-Ausgabe sagt folgendes:

#elif defined (_AVR_ATtiny2313_)
#  include <avr/iotn2313.h>

...also müsste es ihn geben.

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
attiny2313 sollte aber laut "avr-gcc --target-help" unterstützt
werden:

Known MCU names:
  avr1 avr2 avr3 avr4 avr5 at90s1200 attiny10 attiny11 attiny12
attiny15
  attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26
  at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534
at86rf401
  atmega603 atmega103 at43usb320 at43usb355 at76c711 atmega48 atmega8
  atmega83 atmega85 atmega88 atmega8515 atmega8535 attiny13 attiny2313
  atmega16 atmega161 atmega162 atmega163 atmega168 atmega169 atmega32
  atmega323 atmega64 atmega128 at90can128 at94k
  no emulation specific options.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das gibts ja nicht...
der kann nur mit Kleinschreibung ?
ATTiny2313 muß attiny2313 heißen.

Kan man die Groß-Klein-Unterscheidnug im Compiler abstellen ?
PortD ist nicht gleich PORTD

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grmpf NEIN, das kann man NICHT abstellen!

C ist nunmal Case-Sensitive. Make ebenfalls...

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, bin halt Anfänger.
Mit [WinAVR] Programm wird doch der Code in den Prozessor geschrieben.
Das geht bei mir nicht.

Folgende Ausgabe:
> "make.exe" program
avrdude -p attiny2313 -P com1     -c stk500    -U flash:w:main.hex
avrdude: stk500_getsync(): not in sync: resp=0x00
make.exe: *** [program] Error 1

> Process Exit Code: 2
Das STK500 hängt am Com1
Und das steht im Makefile:
AVRDUDE_PROGRAMMER = stk500
AVRDUDE_PORT = com1
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, aber diese_ Fehlermeldung bedeutet was _vollkommen anderes.

Hast Du denn ein STK500, das Du als Programmiergerät benutzt?

Die von Dir gepostete Fehlermeldung

   avrdude: stk500_getsync(): not in sync: resp=0x00

besagt nämlich, daß avrdude (die Flash-Programmiersoftware) sich nicht
mit dem Programmiergerät unterhalten kann.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, habbich.

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...und hast wahrscheinlich schön fleissig, wie AVRStudio das möchte, die
Firmware updated?
Dann kannste das erst mal vergessen...

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na, ist ja prima.
Braucht noch jemand ein wenig benutztes STK500 ?
...das kann doch nicht sein oder ?

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, Atmel hat vor einigen Monaten wohl ein neues Protokoll
verabschiedet. Durch das Update kennt das STK500 das alte nicht mehr.
Es gibt schon ein paar Hacks, um avrdude wieder mit dem STK500 reden zu
löassen, aber das ist wohl alles (AFAIK) noch nicht released. Such
einfach mal danach...

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...tausend Dank...
werd ich mal ausprobieren.

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aktuelles Beta für AVRDUDE:

http://savannah.nongnu.org/download/avrdude/avrdud...

Eric Weddington wollte auch noch ein Windows-Binary dafür machen.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wäre toll...

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.