mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger braucht Hilfe bei WinAVR


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen...

Zunächst einmal möchte ich sagen, dass ich mit ATMEL Prozessoren noch
nie etwas zu tun hatte.
Habnun als "Startprojekt" den Webserver von Holger Buss erfolgreich
ans laufen gebracht.
Allerdings nur mit den zur Verfügung gestellten Hex-Files.

Nun möchte ich gern selber mal so ein Hex-File erstellen.
Dazu hab ich mir WinAVR heruntergeladen und installiert.
Dann habe ich z.B. die IP-Adresse in einem File geändert.

Wie erstelle ich nun ein Hex-File ?

Hab mir schon mal den Artikel zum Thema "AVR-GCC-Tutorial"
durchgelesen, komme damit aber nicht klar.

Gibt es eine "Schritt für Schritt" Anleitung ? (Sozusagen WinAVR für
Dummies)
Makefile etc. ist alles vorhanden, möchte nur ein brennfertiges
Hex-File erstellen.

Danke

Dirk

Autor: ttt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steht im AVR-GCC-Tutorial unter Exkurs Makefile. Wenn du das Makefile
schon fertig hast musst du nur im Editor unter Tools -> Make All
anklicken.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hab ich auch gemacht...

Hab das Makefile im Programer Notepad geöffnet und dann im Menü Tool
Make All angeklickt.
zuerst kamen ganz viele Meldungen, dann ganz viele Warnings und zum
Schluss stand da
....
D:/Elektronik/WinAVR/avr/include/avr/interrupt.h:97:1: warning: this is
the location of the previous definition
In file included from main.h:100,
                 from uart.c:8:
D:/Elektronik/WinAVR/avr/include/avr/delay.h:36:2: warning: #warning
"This file has been moved to <util/delay.h>."
uart.c: In function `UART_Init':
uart.c:35: warning: passing arg 1 of `fdevopen' from incompatible
pointer type
uart.c:35: error: too many arguments to function `fdevopen'
make.exe: *** [uart.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:03

Wo ist nun mein Makefile ?

Dirk

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage nach dem Makefile hat sich erübrigt, hab erfahren, das wird
bei Errors nicht gechrieben.

Nun stellt sich die Frage, warum bekomm ich ne Fehlermeldung ???

Kann mit der Meldung nicht viel anfangen, hab (wie oben bereits
geschrieben) noch überhaupt keine Erfahrung mit C und WinAVR...

Dirk

Autor: Baku (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will ja nicht nörgeln und auch nicht demotivieren...
Aber wäre es nicht sinnvoller, zunächst mal mit etwas ganz einfachem zu
beginnen, z.B. eine LED blinken zu lassen, bevor man sich an einen
Webserver wagt?
Der Klavieranfänger spielt üblicherweise auch zunächst eine C-Dur
Tonleiter, bevor er sich an Toccata und Fuge in d-Moll wagt, weil er
sonst nämlich sehr schnell demotiviert aufgibt.

Die 'blinkende LED' ist das 'hello world' der Mikrocontroller. Wenn
das geht, dann weiss man, wie die Werkzeuge funktionieren und kann sich
daran machen, etwas zu bauen.

Nur meine 2 Pesos...
Baku

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Baku...

Grundsätzlich gebe ich Dir ja recht.
Habe den Webserver auch nur aus Interesse nachgebaut.
Hat ja auch auf Anhieb funktioniert und läuft eigentlich zu meiner
vollsten Zufriedenheit.
Wollte das ganze ja auch zunächst nur "nachbauen" und nicht selbst
entwickeln.
Hex-Files und alles stehen dafür ja auch zur Verfügung, also eigentlich
nichts "grossartiges".

Naja, nun musste ich halt in einem File die IP-Adresse ändern, und ein
neues Hex-File erstellen lassen.
Und dabei taucht nun das oben geschilderte Problem auf.

Mit C werde ich mich nach und nach mal auseinandersetzen.
(wenn man mit Arbeit, Frau und 2 Kindern sowie einigen Hobbies
überhaupt mal Zeit dazu findet ggg)

Dirk

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach der Fehlermeldung würde ich sagen das Programm benutzt noch die
avrlibc 1.2 in dem WinAvr Package ist aber die avrlibc 1.4 drin. Da hat
sich einiges geaendert, besonders bei fdevopen (steht ja auch in der
Fehlermeldung)

Entweder nimmst du eine aeltere Version von Winavr oder du fuchst dich
in C ein, z.B. wie oben schon angemerkt mit LED blinken lassen.

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass Dich nitcht verwirren.

> D:/Elektronik/WinAVR/avr/include/avr/interrupt.h:97:1: warning: this
is
> the location of the previous definition
> In file included from main.h:100,
>                  from uart.c:8:
> D:/Elektronik/WinAVR/avr/include/avr/delay.h:36:2: warning: #warning
> "This file has been moved to <util/delay.h>."
Öffne main.h mit dem editor und ändere
 #include <delay.h>   in   #include <util/delay.h>

> uart.c: In function `UART_Init':
> uart.c:35: warning: passing arg 1 of `fdevopen' from incompatible
> pointer type
> uart.c:35: error: too many arguments to function `fdevopen'
Öffnet uart.c und füge als erste zeile ein
#define __STDIO_FDEVOPEN_COMPAT_12

Dann versuche es noch einmal.

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.