AVR unter Linux programmieren

O

Oliver Brill

Guest
Hallo zusammen.

Ich würde gerne einen AVR unter Linux programmieren.
Leider habe ich keine Ahnung davon, wie ich dies machen soll.

Ich habe vor längerer Zeit einmal einen AVR unter Windows mit einem
kleinen Testprogramm programmiert.
Damals wurde das AVR-ASM Programm (AVR-Studio) verwendet zum
Programmieren. Um das Programm zum AVR zu übertragen kam PonyProg nebst
einem selbstgebauten LPT Programmieradapter zum Einsatz.

Nun interessiert es mich, ob es ein ähnlich gutes Programm für
AVR-Programmierung unter Linux gibt.
Am besten ebenfalls mit einer guten Online Hilfe, Simulator, etc. Dazu
wird dann noch ein Programm benötigt, um den AVR zu programmieren.

Dazu gibt es noch zu sagen, dass es gerne AVR-ASM sein darf, als
Programmiersprache.
Eine willkommene Alternative dazu wäre AVR-C.

Wichtig wäre mir eine komfortable Entwicklungumgebung dafür.
Textdateien mit Editor schreiben, und dann dem puren GCC zu arbeiten, ist
etwas umständlich/unkomfortabel, und ich muss dazu sagen, mir ist es noch
nicht gelungen, AVR-Code mit GCC zu erzeugen.

Vielleicht kann man das AVR-Studio auch mit Wine verwenden? Hat da jemand
Erfahrungen?

Aber vielleicht kann mir ja jemand ein gutes Programm zum AVR
Programmieren unter Linux empfehlen. (AVR-ASM oder C)

Für Tipps, was es sonst noch dabei zu beachten gilt, wäre ich ebenfalls
dankbar.

--
PAN News-Client
..
..
Reply at: oliver_at_technikweb_dot_com
 
Oliver Brill wrote:

Hallo zusammen.
[...]

Dazu gibt es noch zu sagen, dass es gerne AVR-ASM sein darf, als
Programmiersprache.
Eine willkommene Alternative dazu wäre AVR-C.
AVR-C kenne ich nicht, aber AVR-GCC ist bereits erfunden...
Mit asl hast du einen eigenen Assembler, der auch noch einige andere Chips
unterstützt. Google mal nach Alfred arnold asl.

Wichtig wäre mir eine komfortable Entwicklungumgebung dafür.
Textdateien mit Editor schreiben, und dann dem puren GCC zu arbeiten, ist
etwas umständlich/unkomfortabel, und ich muss dazu sagen, mir ist es noch
nicht gelungen, AVR-Code mit GCC zu erzeugen.
Ich arbeite mit emacs, ein makefile reicht eigentlich immer.Komfortabel ist
das auch, er hat aber keine Hilfefunktion für den avr.)
Für Tipps, was es sonst noch dabei zu beachten gilt, wäre ich ebenfalls
dankbar.

hth

Robert
 
Oliver Brill schrieb:
Ich habe vor längerer Zeit einmal einen AVR unter Windows mit einem
kleinen Testprogramm programmiert.
Damals wurde das AVR-ASM Programm (AVR-Studio) verwendet zum
Programmieren. Um das Programm zum AVR zu übertragen kam PonyProg nebst
einem selbstgebauten LPT Programmieradapter zum Einsatz.
Zum reinen Programmieren des Chips gibt es z.B. avrdude. Ist aber
Kommandozeile.

Nun interessiert es mich, ob es ein ähnlich gutes Programm für
AVR-Programmierung unter Linux gibt.
Am besten ebenfalls mit einer guten Online Hilfe, Simulator, etc. Dazu
wird dann noch ein Programm benötigt, um den AVR zu programmieren.
gdb + simulavr mit $GUIFÜRGDB
avrdude

Wichtig wäre mir eine komfortable Entwicklungumgebung dafür.
Textdateien mit Editor schreiben, und dann dem puren GCC zu arbeiten, ist
etwas umständlich/unkomfortabel, und ich muss dazu sagen, mir ist es noch
nicht gelungen, AVR-Code mit GCC zu erzeugen.
Mit deinem normalen GCC unter Linux wird das auch nicht gehen. Du mußt
den GCC mit dem AVR als Target übersetzen. Wie das geht steht z.B. hier:
http://www.nongnu.org/avr-libc/user-manual/install_tools.html

Aber vielleicht kann mir ja jemand ein gutes Programm zum AVR
Programmieren unter Linux empfehlen. (AVR-ASM oder C)
Als Asembler könntest du den GNU as aus den binutils (siehe oberen Link
zur Installation) oder den as von Alfred Arnold (www.alfsembler.de)
verwenden.

Für Tipps, was es sonst noch dabei zu beachten gilt, wäre ich ebenfalls
dankbar.
Wenns den unbedingt eine IDE sein muß könntest du z.B. auf Eclipse oder
KDevelop zurückgreifen. Da dürften sich die avr Tools auch integrieren
lassen.

Mir persönlich reicht aber ein guter Editor und make.

--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
Hallo Oliver

Ich benutze für meine ATmega64er ein SuSE mit:

http://savannah.nongnu.org/download/avr-libc/released/
avr-binutils-2.14-1.i386.rpm
avr-gcc-3.3.1-1.i386.rpm
avr-libc-1.0-1.i386.rpm

http://savannah.nongnu.org/projects/uisp/
uisp-20030618-1.i386.rpm

Und Verbunden mit:
http://rumil.de/hardware/avrisp.html

Das c Programm entsprechend der Anleitung "avr-libc-user-manual.pdf" erstellen.


Die Befehle heissen:
avr-gcc -g -mmcu=atmega64 -c flashled.c && avr-gcc -g -mmcu=atmega64 -o
flashled.elf flashled.o && avr-objcopy -j .text -j .data -O ihex flashled.elf
flashled.hex

Zum Löschen:
uisp -dlpt=/dev/parport0 --erase -dprog=stk200

Zum Beschreiben:
uisp -dlpt=/dev/parport0 --upload if=flashled.hex -dprog=stk200 -v=3 --hash=32



Achtung da ist noch eine böse Falle:
Ab Werk ist der 64er reduziert auf einen Atmega103, dieses Einstellungsbit muss
pro Chip nur ein einziges mal beim ISP gelöst werden:

uisp -dlpt=/dev/parport0 --wr_fuse_e=0xff --wr_fuse_l=0xef --wr_fuse_h=0x99
--upload if=flashled.hex -dprog=stk200 -v=3 --hash=32

=M103C fuse - Extended Fuse Byte(EFB): M103C(Bit1) 1 ATmega103 compatibility
mode 0 (programmed) --> 1 (unprogrammed) = 0xff (Watchdog off!)

Die Fuses nur 1x während dem Programmieren setzen, sie werden nicht gelöscht !



Eine IDE und Debugger lohnt sich kaum, ein Editor mit Syntax-highlighting
(=farbig) reicht mir. Wenn es aber IDE sein muss, würde ich mir den KDevelop mal
ansehen.


Hoffe das hilft dir.
Ich möchte eine Webseite dazu machen, aber ich kann die benötigte Zeit nirgens
abzweigen :-(

Gruss
Philip
 
Hallo!

Sowas! Ich habe genau das gleiche Problem!

Oliver Brill wrote:
Damals wurde das AVR-ASM Programm (AVR-Studio) verwendet zum
Programmieren. Um das Programm zum AVR zu übertragen kam PonyProg nebst
einem selbstgebauten LPT Programmieradapter zum Einsatz.
Seit gestern versuche ich auch gerade, einen dieser
einfachst-Parallelport-Programmer (den von der C'T:
http://rumil.de/hardware/avrisp.html) unter Linux zu verwenden.

Obwohl ich heute nicht lange recherchieren konnte, fiel mir auf, dass
die AVR-Programmer-Tools, die mir meine Distribution (Debian Sid) von
Haus aus zur Verfügung stellt, offenbar nur die RS-232-Hardwarevorsätze
bedienen können.

Oder habe ich da etwas übersehen?
(Mein APT zeigt mir avrp, avrprog und uisp)

Eine Möglichkeit wäre, in der Tat, Ponyprog, welches im Quellcode für
Linux vorliegt. Die RPM's möchte ich mir bei Debian nicht antun.
Allerdings ist bei diesem Programm äußerst dürftig dokumentiert, welche
Bibliotheken zum Compilieren vorhanden sein müssen. Daher suche ich
eigentlich noch nach einem Tool, das einen besseren Eindruck macht.

Kann jemand einen Linux-AVR-Programmer für das o.g. Parallelport-Dongle
empfehlen?

(Müssen keine Binärpakete sein, hauptsache gut dokumentiert)


Vielen Dank,
Ulrich Lukas
 
Oliver Brill <oliver-brill-nospam@t-online.de> wrote:

Vielleicht kann man das AVR-Studio auch mit Wine verwenden? Hat da
jemand Erfahrungen?
Scheitert schon am Installer. MFC läßt grüßen.

VMLAB läuft (ganz brauchbar) unter Wine, allerdings kostet das Geld.
Zusammen mit GCC unter Unix läßt es sich ohnehin nicht selbständig als
,,IDE'' benutzen, sonder nur als Simulator (dafür aber ein recht
guter), compiliert wird extern. Aber IDEs für Unix gibt es wie Sand
am Meer, manche zählen ja schon den vi dazu :), vim und Emacs gehören
auf jeden Fall in diese Klasse (wenn Du da nicht zustimmst, dann
kennst Du sie vermutlich nur nicht richtig), dann noch xwpe sowie all
die schon genannten Verdächtigen.

Ich möchte jedenfalls mein FreeBSD für die AVR-Softwareentwicklung
nicht mal ansatzweise gegen Winzigweich eintauschen, AVR Studio hin,
AVR Studio her.
--
J"org Wunsch Unix support engineer
joerg_wunsch@interface-systems.de http://www.interface-systems.de/~j/
 
Am Sat, 07 Aug 2004 00:14:32 +0200 schrieb Philip:

Hi.


Danke für die Links.
http://savannah.nongnu.org/download/avr-libc/released/
avr-binutils-2.14-1.i386.rpm
avr-gcc-3.3.1-1.i386.rpm
avr-libc-1.0-1.i386.rpm

Dieser Link führt lieder ins Leere.

http://savannah.nongnu.org/projects/uisp/
uisp-20030618-1.i386.rpm

Und Verbunden mit:
http://rumil.de/hardware/avrisp.html
Genau diesen Programmieradapter habe ich mir auch aufgebaut.

Das c Programm entsprechend der Anleitung "avr-libc-user-manual.pdf" erstelle


Die Befehle heissen:
avr-gcc -g -mmcu=atmega64 -c flashled.c && avr-gcc -g -mmcu=atmega64 -o
flashled.elf flashled.o && avr-objcopy -j .text -j .data -O ihex flashled.elf
flashled.hex

Zum Löschen:
uisp -dlpt=/dev/parport0 --erase -dprog=stk200

Zum Beschreiben:
uisp -dlpt=/dev/parport0 --upload if=flashled.hex -dprog=stk200 -v=3
--hash=32

Danke, habs mir gleich mal notiert ;)



Eine IDE und Debugger lohnt sich kaum, ein Editor mit Syntax-highlighting
(=farbig) reicht mir. Wenn es aber IDE sein muss, würde ich mir den KDevelop
ansehen.
Naja, der VIM bzw der EMACS ist ganz gut.
Ist halt nur kein Debugger bzw Simulator und keine Online Help für AVR
dabei. Da nehm ich dann halt externe Programme für.


Hoffe das hilft dir.
Ich möchte eine Webseite dazu machen, aber ich kann die benötigte Zeit
nirgens abzweigen :-(
Na vielleicht schaffst des doch noch irgendwann mal.

mfg Oliver

--
PAN News-Client
..
..
Reply at: oliver_at_technikweb_dot_com
 
Am Fri, 06 Aug 2004 20:17:18 +0200 schrieb Matthias Weißer:

Hallo.

Zum reinen Programmieren des Chips gibt es z.B. avrdude. Ist aber
Kommandozeile.
Naja ist ja auch nicht weiter tragisch ;)

Nun interessiert es mich, ob es ein ähnlich gutes Programm für
AVR-Programmierung unter Linux gibt.
Am besten ebenfalls mit einer guten Online Hilfe, Simulator, etc. Dazu
wird dann noch ein Programm benötigt, um den AVR zu programmieren.

gdb + simulavr mit $GUIFÜRGDB
avrdude
Ok, das wäre ne gute Möglichkeit.
Sind dann halt mehrere Programme, anstatt eins was alles kann.
Aber auch nicht weiter tragisch.


Mit deinem normalen GCC unter Linux wird das auch nicht gehen. Du mußt
den GCC mit dem AVR als Target übersetzen. Wie das geht steht z.B. hier:
http://www.nongnu.org/avr-libc/user-manual/install_tools.html



Als Asembler könntest du den GNU as aus den binutils (siehe oberen Link
zur Installation) oder den as von Alfred Arnold (www.alfsembler.de)
verwenden.
jo der AS macht nen ganz guten Eindruck, was ich bis jetzt drüber gelesen
hab auf der Seite.

Wenns den unbedingt eine IDE sein muß könntest du z.B. auf Eclipse
oder KDevelop zurückgreifen. Da dürften sich die avr Tools auch
integrieren lassen.

Mir persönlich reicht aber ein guter Editor und make.
Welchen nimmst du? Kenne VIM und Emacs die sind schon ganz gut ;)


Gruss Oliver

--
PAN News-Client
..
..
Reply at: oliver_at_technikweb_dot_com
 
Oliver Brill schrieb:

Nun interessiert es mich, ob es ein ähnlich gutes Programm für
AVR-Programmierung unter Linux gibt.
Am besten ebenfalls mit einer guten Online Hilfe, Simulator, etc. Dazu
wird dann noch ein Programm benötigt, um den AVR zu programmieren.

gdb + simulavr mit $GUIFÜRGDB
avrdude

Ok, das wäre ne gute Möglichkeit.
Sind dann halt mehrere Programme, anstatt eins was alles kann.
Aber auch nicht weiter tragisch.
Lieber Spezialisten die ihre Aufgaben gut und zuverlässig erfüllen als
einen Allrounder der alles aber nichts richtig kann.

Wenns den unbedingt eine IDE sein muß könntest du z.B. auf Eclipse
oder KDevelop zurückgreifen. Da dürften sich die avr Tools auch
integrieren lassen.

Mir persönlich reicht aber ein guter Editor und make.

Welchen nimmst du? Kenne VIM und Emacs die sind schon ganz gut ;)
Üblicherweise programmiere ich unter Windows mit dem Ultraedit. Unter
Linux meist mit Kate.

VIM ist IMHO was für Konfig-Dateien aber nicht für längeres Arbeiten mit
Quelltexte. *duck*

(X)EMACS kann ich nicht bediehnen.

--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
Ulrich Lukas schrieb:

Kann jemand einen Linux-AVR-Programmer für das o.g. Parallelport-Dongle
empfehlen?
http://savannah.nongnu.org/projects/avrdude/ läuft bei mir mit
verschidensten Programmieradaptern (AVRisp, Paralleldongle, STK500) sehr
gut.

--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
Obwohl ich heute nicht lange recherchieren konnte, fiel mir auf, dass
die AVR-Programmer-Tools, die mir meine Distribution (Debian Sid) von
Haus aus zur Verfügung stellt, offenbar nur die RS-232-Hardwarevorsätze
bedienen können.

Oder habe ich da etwas übersehen?
(Mein APT zeigt mir avrp, avrprog und uisp)
Ja, uisp funktioniert mit dem 'einfachst'-Programmer. (mit -dprog=stk200)

Gruss
JF (der avra und uisp unter Debian Sid benutzt)
 
Hallo,

danke für die Antworten!


Werde die Programme gleich mal ausprobieren.


Gruß,
Ulrich
 
=?ISO-8859-15?Q?Matthias_Wei=DFer?= wrote:
Oliver Brill schrieb:
Ich habe vor längerer Zeit einmal einen AVR unter Windows mit einem
kleinen Testprogramm programmiert.
Damals wurde das AVR-ASM Programm (AVR-Studio) verwendet zum
Programmieren. Um das Programm zum AVR zu übertragen kam PonyProg nebst
einem selbstgebauten LPT Programmieradapter zum Einsatz.

Zum reinen Programmieren des Chips gibt es z.B. avrdude. Ist aber
Kommandozeile.
Wir haben ein Tool mit GUI geschrieben (AVRprog). Das unterstuetzt LPT
Ports (jedenfalls unter Linux), kann aber keine Fuses programmieren.

Aber vielleicht kann mir ja jemand ein gutes Programm zum AVR
Programmieren unter Linux empfehlen. (AVR-ASM oder C)

Als Asembler könntest du den GNU as aus den binutils (siehe oberen Link
zur Installation) oder den as von Alfred Arnold (www.alfsembler.de)
verwenden.
tavrasm ist auch einen Blick wert, da er (im Gegensatz zu GNU as)
weitgehend kompatibel zum Atmel Assembler ist.


Micha
--
"Our enemies are innovative and resourceful, and so are we [...]
They never stop thinking about new ways to harm our country and our
people
and neither do we."
George W. Bush
 

Welcome to EDABoard.com

Sponsor

Back
Top