Autor |
AVRs unter Linux programmieren |
|
|
|
|
BID = 454255
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
Hallo Liebe Forenmitglieder,
Da ich nun fast vollständig auf Linux umgestiegen bin, musste ich zwanghaft eine Alternative für das gute alte AVR-Studio finden.
Hier nun eine kleine Liste mit guten Tools für Linux rund um AVRs:
- Programmer: avrdude (unterstützt so ziemlich alle Programmer, auch die Lowcost-Varianten für den Parallelport)
- Compiler: avr-gcc und binutils bietet die Möglichkeit, C und C++ (eingeschränkt!) für AVR zu kompilieren und Assembler zu assemblieren und zu linken. Ist die gleiche Sammlung an Tools, die WinAVR bietet fürs AVR-Studio)
- IDE: kontrollerlab (bzw. KontrollerLab) ist eine komplette Entwicklungsumgebung für KDE, enthält umfangreichen Editor (mit Syntaxhighlighting und automatischer Einrückung), Serielles Terminal, Projektdateienanzeige, eingebaute Funktion zum kompilieren und übertragen des Programmes via avrdude.
-> http://www.cadmaniac.org/projectMai.....erlab
Ja, das sind die Programme, die ich aktuell verwende. Dazu auch die entsprechenden anderen binutils wie avr-objdump etc zum disassemblieren und untersuchen des Kodes.
----
Ich wollte das einfach mal auflisten, die Tools laufen zwar auch auf Windows (zumindestens avrdude und binutils für avr-gcc) aber ich denke mal, für jemanden, der auf Linux umsteigt kann das eine Hilfe sein, wenn er sieht, dass man auch komplett unter Linux AVRs programmieren kann. Für eingefleischte Linuxuser, die es hier ja auch gibt, ist das nicht Neues.
P.S. Wenn jemandem noch andere Tools einfallen, die unter Linux lauffähig sind, dann einfach hier posten.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 30 Aug 2007 16:59 ] |
|
BID = 460136
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
|
Also zur Programmentwicklung benutze ich "kate", und zum Flashen der Chips hatte ich bisher "Ponyprog" benutzt, u.a. weil ich einen SI-Prog-Adapter habe. Da ich aber meinen RS232 über USB emulieren muss ist das Dingen sehr langsam (mit verifizieren dauern 1kB an einen Mega8 ca 20 Minuten).
Weil mich das langsam nervt habe ich mir heute nen ISP-Adapter für den Parport zusammengefrickelt, und benutzte nun "avrdude" mit dem Frontend "AVR8_Burn-O-Mat". Funktioniert natürlich tadellos und so schnell wie früher der SI-Prog mit echtem RS232-Port. Außerdem muss man den Chip nicht ausbauen.
Ich weiß nicht, ob nur ich diesem Missverständnis aufgesessen bin, aber ich war bisher der Meinung, dass man im ISP-Modus die Fuses nicht brennen kann. Das ist natürlich falsch!
Außerdem habe ich mir vor kurzem die Teile besorgt, um den "USBprog" nachzubauen, dann geht es noch ein bissel schneller und vielfältiger.
Ach ja, assembliert wird mit "avra".
_________________
Es irrt der Mensch solang er strebt |
|
BID = 460386
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
'Nabend,
Habe jetzt mal avra getestet und bin positivst überrascht: bis jetzt ist alles sehr kompatibel. Bequem aus der Shell zu bedienen sowieso.
(wie AVRASM32.exe vom Studio)
Was mich etwas erstaunt, ist, dass die Makros LOW() und HIGH() fehlen. Aber das kann man umschreiben (oder hat wer 'ne Ahnung, wie die hier implementiert sind? Habe nichts gefunden.)
_________________
|
BID = 460402
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
Also ich bastel hier grad an nem Programm wo das high() und low() (vielleicht liegt es an der Großschreibung) ca 20 mal vorkommt. Bei mir funktioniert es tadellos.
_________________
Es irrt der Mensch solang er strebt
|
BID = 460404
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
hmm
Ok, ich habe bereits einige Varianten durch, man kennts ja vom Assenmbler des avr-gcc. Der hat diese Makros als lo8() und hi8().
Ich versuche es abe nochmals.
btw: aktuell in nano
Edit: OK, kleingeschrieben klappt es.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 27 Sep 2007 23:51 ]
|
BID = 461431
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Moin,
vielleicht noch einen Tipp für jene, die mit Linux neu angefangen haben:
Wer Daten aus dem Terminal (z.b. die Ausgabe) zu einem Mikrokontroller umleiten will (um sie beispielsweise auf einem LCD darstellen zu können oder was auch immer), der kann das so tun:
* Definition der Schnittstelle:
export uc=/dev/ttyUSB0
(Beispiel für USB->RS232-Wandler)
* Ausgabe des Dateiinhaltes von datei:
cat datei > $uc
* Ausgabe einer Zeichenkette:
echo "Hallo" > $uc
* Ausgabe von ping-Daten an den µC:
ping ip > $uc
---
Ich bin hier den Umweg über eine Varialbe $uc gegangen, da das einfacher ist. Export legt sie aber nur für die Session fest!
Ich habe das nur kurz gemacht, um Konsolendaten auf ein Display zu bekommen.
Wer die Schnittstellenparameter ändern will, der tue das mit stty (sofern vorhanden). Baudrate etc. verstellen geht nur mit Root-Rechten. Weiterhin müssen Schreiberechte am tty-Device für den Benutzer existieren.
_________________
|
BID = 464792
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Hallo,
Mich erreichte eben eine PM, in der nach einem Simulator gefragt wurde.
Mein KontrollerLab bietet zwar die Möglichkeit, das Programm zu Debuggen, aber so richtig funktioniert das nicht.
Aber es scheint Simulatoren für Linux zu geben, ich besitze jedoch keinen. Zumal der von Atmel eigentlich unschlagbar gut ist. Schade dass es den nicht auch für Linux gibt .
_________________
|
BID = 464865
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
Es gibt den "simulavr", allerdings spuckt der mir bisher nur Fehlermeldungen aus...
_________________
Es irrt der Mensch solang er strebt
|
BID = 464866
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Ja, habe auch mitbekommen, dass wohl die meisten Simulatoren ziemlich verbuggt sind.
Der vom AStudio ist wirklich unschalgbar. Kommt aber nicht mehr infrage.
_________________
|
BID = 466524
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Update:
Also, AVR-Assembler avra funktioniert tadellos, leider klappt da was mit kontrollerlab nicht:
Brauchte eine kleine schnelle Routine, die ich in Assembler schreiben wollte und dann später dazu linken wollte; das war mit AVR-Studio kein Problem. Da konnte man die Assemblerdatei (*.S/*.asm) auch im Projekt bearbeiten und aus dem C-Kode aufrufen.
Kontrollerlab kann es nicht wirklich, es erscheinen seltsame Fehlermeldungen. Ich werde mal abwarten, wann die neueste Version rauskommt, vorerst muss ich dass also manuell machen bzw. nen Shellscript verwenden.
---
_________________
|
BID = 497560
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Moin,
Update:
kontrollerlab und Assemblerdateien funktionieren doch.
Verwende aber mittlerweile Makefiles für meine Projekte, ist angenehmer.
_________________
|
BID = 556634
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Ich wollte nur mal hinzufügen, dass ich den Editor 'Geany' für Linux sehr empfehlenswert finde.
Und wer seine hex files bisher mit 'Megaload' rüber geschickt hat findet mit 'pygaload' eine gute Alternative.
mfg Fritz
[ Diese Nachricht wurde geändert von: ffeichtinger am 16 Okt 2008 13:16 ]
|