Forum: Compiler & IDEs Makefile???


von Richard (Gast)


Lesenswert?

Hy

JA ich habe mir die Anleitung vonAVR-GCc durchgelesen...

HAbe aber etwas nicht so richtig verstanden und hoffe das mir jemand 
helfen kann.

Wen ich eine C Datei schreibe wie z.B.:
1
#include <utils/delay.h>
2
#include <avr/io.h>
3
#include <stdint.h>
4
 
5
int main(void)
6
{
7
DDRD = 0xff;
8
9
PORTD = 0 0x03;
10
11
while(1)
12
{
13
}
14
return 0;

das ganze schreibe ich im WIN AVR (Programmers Notepad)

so und jetzt möchte ich das in einen ATTiny2313 übertragen
mein µc ist auf dem ATMEL Evaluations- Board Version 2.0 von Pollin.
Ich möchte ihn über die serielle Schnitstelle COM 1 programieren

Wie mus da meine Makefile aussehen?
Wie gehe ich dan weiter vor wenn ich das Programm dan in den µC laden 
will?
Geht das direkt im Programmers Notepad oder brauche ich da wider eine 
andere Software wie z.B.: pony prog oder ähnliches??

ICh weis das das Anfängerfragen sind aber irgend wann muss man ja 
anfangen...,*gg**


danke im Voraus Richard R.

von Stefan B. (stefan) Benutzerseite


Angehängte Dateien:

Lesenswert?

Das passende Makefile erstellst du am besten mit dem MFILE Tool aus dem 
WinAVR-Paket. Ein Beispiel ist im Anhang. Dieses Beispiel setzt voraus, 
dass deine Sourcecodedatei main.c heisst.

Durch das Compilieren und Linken wird aus der Sourcecodedatei main.c bei 
erfolgreicher Übersetzung eine Objektdatei main.elf und eine Datei 
main.hex. In deinem Beispiel fehlt u.a. noch die abschliessende }, d.h. 
die Übersetzung scheitert erstmal.

Die Datei main.hex ist zur Übertragung in das Flash-ROM des µC gedacht. 
Die Übertragung kannst du mit PonyProg und mit AVRDUDE (aus dem 
WinAVR-Paket) machen.

Im obigen Makefile ist die Voreinstellung für AVRDUDE bereits drin. 
Innerhalb von Programmers Notepad kannst du nach dem Übersetzen (make 
all) direkt üvertragen (make program). Voraussetzung ist die korrekte 
Installation von AVRDUDE, d.h. die Installation von giveio.sys laut 
AVRDUDE Anleitung mit dem Batchfile install_giveio.bat.

Alternativ kannst du mit PonyProg ausserhalb von Programmers Notepad 
übertragen.

Mehr Infos zum - nicht immer unproblematischen - Pollinboard findest du 
u.a. hier:
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=12567&highlight=pollinboard
http://f3.webmart.de/f.cfm?id=1663923&t=2737001&pg=1&a=1&r=threadview&;

von Richard (Gast)


Lesenswert?

Hy

danke für das Makefile und di infos

An der stelle mus ich mal loswerden wie toll das Forum und seine 
Toturials sind.

Noch ne Frage:
Kan ich das Gleiche Makefile für andere AVR am pollin Board verwenden 
wen ich die Zeile

MCU = attiny2313

in Beispielweise

MCU = atmega8 oder 32 etc  ändere

Lg Richard


von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ja das geht. Achte auf die richtige Schreibweise bzw. schau in MFILE 
nach, wie es dort geschrieben wird.

von Richard (Gast)


Lesenswert?

HY Ich hab noch ne frage

wo bekomme ich den AVRDUDE und wie stelle ich den richtig ein??

Bin schon am verzweifeln i versuche schon seit 2 Wochen meinen 
ATTiny2313 am Pollin Board zu programieren und ich schaff das nicht.

Also nochmal von anfang an:

Ich habe das obrige Programm (mit } zum Schluss) im Programmese Notepad 
erstellt. Und das Makefile von Srefan in den gleichen Ordner kopiert.
und dan bin ich auf Tools--> Make All und der macht nichts. zumindest 
nur das.

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 4.1.2 (WinAVR 20070525)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


Compiling C: main.c
avr-gcc -c -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=1000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -Wundef -MMD -MP 
-MF .dep/main.o.d main.c -o main.o
main.c:1:25: warning: utils/delay.h: No such file or directory
main.c: In function 'main':
main.c:9: error: expected ';' before numeric constant
main.c:15:2: warning: no newline at end of file
make.exe: *** [main.o] Error 1

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



Ich hab keine ahnung was der von mir will gg
Wie gesagt ich bin kompleter AVR Neuling und habe mir auch das Toturial 
Durchgelesen aber das kan mir meine Frage auch nicht beantworten.

Vl weis ja jemand was ich für einen Fehler mache...

Lg Richard

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Richard wrote:
> wo bekomme ich den AVRDUDE und wie stelle ich den richtig ein??
Wird bei WinAVR mitgeliefert, ist also "schon da". Einstellungen siehe 
makefile-Vorlage (WinAVR/sample, mfile). Für das Pollin-Board ist meines 
Wissen Programmer-Type ponyser einzustellen.

> main.c:9: error: expected ';' before numeric constant
Falls das die Zeile PORTD = 0 0x03; aus dem Code oben ist. Die ist 
syntaktisch falsch. Entweder PORTD = 0; oder PORTD = 0x03;

> main.c:15:2: warning: no newline at end of file
"Nur" eine Warnung, einfach das ergänzen was fehlt, also eine Leerzeile 
am Ende einfügen.

gcc Fehlermeldungen sind manchmal etwas spärlich aber in dem Fall steht 
eigentlich alles da - vielleicht Englischkentnisse etwas auffrischen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> main.c:1:25: warning: utils/delay.h: No such file or directory

util/delay.h (ohne ,s')

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.