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


von Dirk (Gast)


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

von ttt (Gast)


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.

von Dirk (Gast)


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

von Dirk (Gast)


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

von Baku (Gast)


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

von Dirk (Gast)


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

von Wolfram (Gast)


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.

von Werner B. (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.