PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega32 mit Kdevelop programmieren



toetzel
02.10.2006, 16:41
Hallo,
ich bin ein absoluter Anfänger, mit der Idee einen Atmel Mega 32 mit C zu programmieren. Dazu habe ich mir Kdevelop und avrdude installiert (unter Suse 10). Nun möchte ich Kdevelop als Target den AVR Mega 32 mitgeben. Ich habe zwar viele unterschiedliche target Beschreibungen hier gesehen aber keine mit wirklicher Erklärung "howto mäßig", kann mir dazu jemand helfen? Mit avrdude geht es mir ähnlich, es gibt zwar n unterscheidliche Optionen aber ich habe auch hier keine "Optionsbeschreibung" bis auf avrdude -? gefunden. Bin um jede Starthilfe dankbar.

Danke und Gruß
Tötzel ] ](*,)

one
04.10.2006, 15:18
Tipp in ein Shell "man avrdude" ein ;)
one

ManniMammut
04.10.2006, 17:54
Was soll das mit KDevelop? Bringt IMHO keinen Vorteil. Nimm nen guten Editor wie Kate, mcedit etc. (oder vi :P ) und nen avr-gcc + makefile, ponyprog ->fertig.

Gruß, Manni

vajk
04.10.2006, 19:00
Öhm, Manni, poyprog für linux ? gibts das ?

edit: Jaaaa .. :-) .. aber :-( nicht als .deb für Debian :-(

izaseba
04.10.2006, 19:04
Öhm, Manni, poyprog für linux ? gibts das ?

Sicher doch, schau mal hier http://www.lancos.com/ppwin95.html
ziemlich weit unten...
wobei ich sagen muß, ich habe es nicht geschafft es zu kompilieren, hab mir auch nicht richtig Mühe gegeben... avrdude ist das a und o O:)

Gruß Sebastian

vajk
04.10.2006, 19:45
hmmm und was muß ich alles anstellen, wenn ich gcc-avr installeirt habe .. habs gerade probiert, der kennt nicht mal die einfachsten header-files ... ich nutze zwar linux .. aber für mich ist es ein grauss, wenn ich mich erstmal minuten,stunden,tagelang damit beschäftigen muß irgendwas, einzustellen, irgendwelche libs zu suchen .. bis ich dann anfangen kann, meinen code zu schreiben ...
.. gibts da erklärung fürs Daus ... in manchen Dingen bin ich einer :-) Gebs ja zu ...
.. winavr ist da einfach - installeiren und geht ... *.h einbinden und gut ...

LG
Vajk

izaseba
04.10.2006, 20:34
Hast Du versucht es selber zu kompilieren, oder wie ?

Ich hab mir jetzt mal angeguckt, woran es bei mir gescheitert ist, also der Kompiliervorgang brach ab mit folgendem Fehler:


lptinterf.cpp:37:22: error: v/vdebug.h: Datei oder Verzeichnis nicht gefunden
lpt_io_interf.cpp:36:22: error: v/vdebug.h: Datei oder Verzeichnis nicht gefunden


ein Blick in die lptinterf.cpp :


#include "v/vdebug.h"


sagt eigentlich aus, daß sich in aktuelem Ordner ein Ordner "v" mit dem header vdebug.h befinden müßte...

Es gibt da aber keinen "v" Ordner und auch kein vdebug.h Header.

Danach hab ich mir gedacht, daß mit Ponyprog mal gerne kann und hab die ganze Sache vergessen.

Gruß Sebastian

vajk
04.10.2006, 20:44
Siehst Du Sebastian, so geht es mir auch .. als .deb-Paket Software einspielen ist kein Problem, aber sobald es um selbst compilieren geht udn den unterscheidlichen Versionsständen von Kernel, lib und Co ..
.. ists mir zuwieder !!

Nein ich meinte, was ich einstellen muß, damit avr-gcc läuft und compilieren kann ... pfade etc ... oben beschreioben findet er eben keine header-dateien .. und sicher dann auch keine libs ...

LG
Vajk

izaseba
04.10.2006, 21:03
Hmm, komisch
Hast Du nach mit apt-get installiert ?
normal landet alles unter /usr/avr
Ist bei mir zumindest so, hab auch seit einer Ewigkeit wieder Debian drauf, nur weil nach dem Umstieg auf gcc 4.1.* mein Gentoo keine Lust mehr auf avr-gcc hatte :-(

Aber wie gesagt mit apt-get installiert und ohne was zu tun läuft alles gut.
Vielleich ein Problem mit Makefile ?
sonst gibt es noch die -I -L Schalter wo man die Pfade eingeben kann :-k

Gruß Sebastian

toetzel
04.10.2006, 21:07
@ one , der avrdude Tip war hilfreich, danke.

Ich wollte mit Kdevelop mir die manuelle Installation sparen. Diese habe ich in der Zwischenzeit "zu Fuß" gemacht.

Ich habe folgende Pakete aus dem Internet in ein vorher angelegtes Verzeichnis AVR geladen:

von http://www.gnu.org/software/binutils/ binutils-2.16.tar.gz

von ftp://mirrors.rcn.net/pub/sourceware/gcc/ gcc-4.1.1.tar.bz2

von http://savannah.nongnu.org/download/avr-libc/ avr-libc-1.4.4.tar.bz2

und von http://savannah.nongnu.org/download/uisp/ uisp-20050207.tar.gz

Entpacken des Archiv binutils-2.16.tar.gz und in das verzeichnis wechseln.

# ./configure –target=avr –program-prefix="avr-"
# make
# su
# make install
# exit
# cd /home/user/bin/AVR

Entpacke das Archiv gcc-4.1.1.tar.bz2 und wechsle in das Verzeichnis

# ./configure –target=avr –program-prefix="avr-" –enable-languages=c –disable-libssp
# su
# make
# make install

Entpacke das Archiv avr-libc-1.4.4.tar.bz2 und wechsle in das Verzeichnis

# ./configure –host=avr
# make
# su
# make install

Entpacke das Archiv uisp-20050207.tar.gz und wechsle in das Verzeichnis

# ./configure
# make
# su
# make install

Ich werde es denoch mal versuchen was Guimäßig hinzubekomen, bi eben Kind der 90er.. :-b

izaseba
04.10.2006, 21:14
Hallo,


Ich werde es denoch mal versuchen was Guimäßig hinzubekomen, bi eben Kind der 90er

Es gibt da was für Eclipse, such mal auf http://www.mikrocontroller.net
Vielleicht ist das was für Dich, aber mit Kdevelop..., na ja ich will dich nicht davon abhalten :-)

Gruß Sebastian

vajk
04.10.2006, 21:28
Wie muß denn ein Makefile aussehen, damit es tuuuttt ...

Ich hatte einfach das Make vom winavr genommen :-)

izaseba
04.10.2006, 21:42
Hallo vajk,

Ich hatte einfach das Make vom winavr genommen

Hmm, hab noch nie winavr Makefile gesehen 8-[

Schau mal hier (https://www.roboternetz.de/phpBB2/viewtopic.php?t=22458)
da habe ich ein Makefile gepostet.
Ich hoffe es klappt damit, sonst müssen wir mal weiter schauen, die Kompilerausgabe wäre dann vielleicht mal hilfreich.

Gruß Sebastian

vajk
05.10.2006, 09:41
Hallo!
Danke für Hilfe,Tipps und Makefile(link) .. werds gleich mal ausprobieren !
Anbei noch das Makefile von winavr ...
LG
Vajk

vajk
08.10.2006, 19:35
@izaseba
Also mit Deinem Makefile mal laufen lassen:
Trotz daß ich F_CPU im Make ergänzt habe, meldet meine Header einen error ... und Pfade zu den Inludes fehlen wohl ...



viaLinux$ make
set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=uart.lst uart.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > uart.d; \
[ -s uart.d ] || rm -f uart.d
In file included from uart.c:12:
basdef_h.h:6:2: error: #error F_CPU
set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=drehwurm.lst drehwurm.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > drehwurm.d; \
[ -s drehwurm.d ] || rm -f drehwurm.d
In file included from drehwurm.c:30:
basdef_h.h:6:2: error: #error F_CPU
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 4.1.0
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.

avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=drehwurm.lst drehwurm.c -o drehwurm.o
drehwurm.c:1:20: error: avr/io.h: Datei oder Verzeichnis nicht gefunden
drehwurm.c:2:24: error: avr/signal.h: Datei oder Verzeichnis nicht gefunden
drehwurm.c:3:27: error: avr/interrupt.h: Datei oder Verzeichnis nicht gefunden
drehwurm.c:5:23: error: avr/delay.h: Datei oder Verzeichnis nicht gefunden
drehwurm.c:6:26: error: avr/pgmspace.h: Datei oder Verzeichnis nicht gefunden


.....



Und nu ?

izaseba
08.10.2006, 20:50
was sagt denn
ls /usr/avr/include/
Hast Du die Bibliotheken überhaupt drauf ?

Gruß Sebastian

vajk
08.10.2006, 21:15
@izaseba
>Hast Du die Bibliotheken überhaupt drauf ?
öhm .. wo stehen die denn ? oder was für ein *.deb muß ich installieren ?
reicht gcc-avr nicht ?

izaseba
08.10.2006, 21:22
hmmm, ich weiß nicht wie weit es als Abhängigkeiten aufgelöst wird, aber man sollte haben :

gcc-avr
avr-libc
binutils-avr

Das sind alles *.deb Pakete.

Die Bibliotheken landen dann unter /usr/avr

ein
ls /usr/avr
solte diese ausgabe liefern :


sebastian@pegasus:~$ ls /usr/avr
bin include lib
sebastian@pegasus:~$


Wenn Das bei Dir nicht so ist, dann ist das schon kalter Kaffee :-( schau mal nach...

Gruß Sebastian

vajk
08.10.2006, 21:34
au spitze klasse danke .. also mal ein avr-get install avr-libc binutils-avr über 8 MB und somit in ca. 10 minuten sehen wir weiter - Danke

vajk
08.10.2006, 21:54
ahhh .. jetzt siehts schon besser aus .. bis auf paar fehlerchen, weil der compiler z.B. maunzt, daß :


#warning "This header file is obsolete. Use <avr/interrupt.h>."
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>."
.........

/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/delay.h:37,
from drehwurm.c:5:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/util/delay.h:136:3: warning: #warning "F_CPU not defined for <util/delay.h>"
drehwurm.c:24:2: warning: #warning MODULNUMMERKORREKTUR AKTIVIEREN
In file included from drehwurm.c:34:
drehwurm_h.h:17: warning: pointer targets in initialization differ in signedness
drehwurm_h.h:17: warning: pointer targets in initialization differ in signedness
drehwurm.c: In function 'avr_init':
drehwurm.c:290: error: 'for' loop initial declaration used outside C99 mode


jetzt fehlt nur noch eine IDE ...............

izaseba
08.10.2006, 22:20
Schön, daß es doch geklappt hat...

Die Fehler haben zum Teil mit der Umstellung auf avr-gcc>3.3 zu tun glaub ich

delay.h ist nun in util/delay.h und das mit F_CPU behebst Du indem Du in Deinem *.h #define F_CPU xxxxxxx schreibst irgendwie übernimmt er das aus dem Makefile nicht, vielleicht weißt da jemand warum, ich weiß es nicht...
und der Rest ??? :-s :-s k.A.

Viel Erfolg noch und gute Nacht.

Gruß Sebastian

vajk
08.10.2006, 22:38
Danke Sebi für Deine Hilfe !!!
Ja der Rest wird kein wirkliches Problem darstellen :-)
Schönen Wochenanfang,
Vajk

vajk
08.10.2006, 23:02
Juhu .. alles compiliert bekommen .. jetzt auch in die Heia ...

Gibt es eine nette IDE unter Linux, wo man die Konsolenausgabe auch gleich als Sprungmarkierung in den Quälcode bekommt ?

Ja, ich weiß, Kate und Konsole tuts auch :-) ....

Als nächstes mal den aktuellen Code nochmal überarbeit und mal probieren was der AVR dazu sagt :-)

LG
Vajk

vajk
09.10.2006, 09:53
So- streiche Juhu .. bekomme mein Projekt zwar compiliert, jedoch läuft es nicht auf dem mega32 !!!
Was mir auffällt ist, ich nutze auch Daten im PROGMEM - beim lauffähigen Compilat vom WinAvr, finde ich diese Daten am Anfang des Hexfiles .. unter Linux finden die sich viel weiter hinten ....