Anfänger braucht Hilfe bei WinAVR

Gast #310117
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
Gast #310119
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
Gast #310120
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
Gast #310121
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
Gast #310122
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
Gast #310123
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.
Gast #310124
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren