Forum: Compiler & IDEs ATmega Assembler-programmierung unter Ubuntu?


von Tom (Gast)


Lesenswert?

Hallo an die Linux bzw. Ubuntu Nutzer.
Ich habe bis jetzt immer mit Atmel-Studio 6.2 unter Windows meine 
Projekte in Assembler programmiert. (Ich sage es auch gleich vorweg, ich 
kann kein C und meine privaten kleinen Projekte funktionieren auch mit 
Assembler!)
Jetzt bin ich dabei, vollständig ohne Windows zu behalten, auf Ubuntu 
umzusteigen. Hier habe ich aber das Problem, das es halt kein 
Atmel-Studio für Linux gibt.

Was ich bis jetzt herausgefunden habe:
Es gibt für die Assembler Freunde unter Linux den AVRA, der soviel ich 
weiß, den eingegebenen Programmtext aus einem beliebigen Editor heraus, 
in eine "hex" Datei in Atmels Assembler konformer Form erstellt. Dann 
gibt es den AVRDUDE der diese hex Datei über den Programmer in den z.B. 
ATmega "brennt".

ABER... wenn ich einen "normalen" Editor verwende, dann bekomme ich 
nicht in diesem Editor gleich angezeigt, ob mein Programmtext richtig 
ist oder nicht und wo sich der Fehler befindet. Das erfahre ich 
wahrscheinlich erst dann, wenn ich den AVRA über das Terminal in Gang 
setze. Weil mir Atmel Studio aber gerade mit der Fehleranzeige einen 
sehr großen Vorteil bietet und das auch der Hauptgrund ist, warum ich 
ein solch umfangreiches Programm wie das Atmal Studio für "nur" 
Assembler nutze, finde ich das Ganze mit AVRA und AVRDUDE über 
Ellenlange Terminal Befehle doch recht umständlich.

Nach Suche im Netz konnte ich leider kein Programm finden, womit man die 
Atmel´s in Assembler programmieren kann, welches wenigstens ähnliche 
Fehlererkennungen o.ä. wie im Atmel Studio zur Verfügung stellt.

Jetzt aber zu meinen eigentlichen Fragen:

1. Kennt jemand ein Programm womit man die Atmel´s unter Ubuntu ähnlich 
wie im Atmel Studio unter einer grafischen Oberfläche programmieren 
kann? Wo einem z.B. zumindest ein Fehler im Programmcode schon mal 
angezeigt wird...???

2. Zum anderen gibt es unter Ubuntu WINE. Damit soll es ja möglich sein, 
Windows Programme laufen zu lassen. Aber halt nicht jedes... und ich 
könnte mir gut vorstellen, das Atmel Studio darunter zählt. Oder hat 
jemand schon mal das Atmel Studio unter Wine zum laufen gebracht und 
könnte mir bitte sagen wie man das machen muss?

Bin für alle Infos sehr dankbar, was das Programmieren der Atmel´s unter 
Ubuntu besser und einfacher gestaltet, als immer über das Terminal 
Ellenlange Befehle eingeben (bzw. wiederholen) zu müssen.
Gruß Tom.

: Verschoben durch Admin
von Tom (Gast)


Lesenswert?

Hmmm

Bin mir nicht sicher ob ich meine Frage in die richtige Forumsliste 
gestellt habe. Eventuell wäre es doch besser unter einer anderen Liste 
besser platziert... Sorry.
Gruß Tom.

von Thomas (kosmos)


Lesenswert?

dieses Problem habe ich auch, nutze aber einen Raspberry und da ist es 
noch schwieriger da kein x86 Prozessor zum Einsatz kommt. Wie ist das 
bei dir.

Glaub da gabs noch ein Programm AVR-Simu für Linux.

von Oliver S. (oliverso)


Lesenswert?

Tom schrieb:
> Jetzt bin ich dabei, vollständig ohne Windows zu behalten, auf Ubuntu
> umzusteigen. Hier habe ich aber das Problem, das es halt kein
> Atmel-Studio für Linux gibt.

Kompromißlose Konsequenz ist halt nicht immer pragmatisch. Eine 
pragmatische Lösung wäre, Windows in einer VM unter Linux laufen zu 
lassen, und da drin dann dein geliebtes Atmel-Studio.

Alternativ wäre ein Umstieg auf den gcc-Assembler nötig. Die kommt 
allerdings nicht als Ein-Click-Rundum-Sorglos-IDE-Paket. Da musst du 
etwas umlernen, dich dazu mit der Kommandozeile und mit makefiles 
auseinandersetzten, und einiges zu der toolchain lernen. Editoren, die 
dir dann die Fehler im Quelltext anziegen, gibt's dafür dann in jeder 
gewünschten Version. Auch die brauchen Einarbeitung.

Alles in allem ganz normaler Linux-Alltag. Du wolltest es ja so.

Oliver

von Programmierer (Gast)


Lesenswert?

Tom schrieb:
> Bin für alle Infos sehr dankbar, was das Programmieren der Atmel´s unter
> Ubuntu besser und einfacher gestaltet, als immer über das Terminal
> Ellenlange Befehle eingeben (bzw. wiederholen) zu müssen.

Normalerweise gibt man die Befehle ein mal in eine "Makefile" Datei ein 
und kann dann über einen einzelnen "make" Befehl alles übersetzen. Die 
meisten IDEs wie Eclipse oder Qt Creator können das auch auf 
Knopfdruck/Schnelltaste. Da der Assembler ja schnell ist, ist die 
fehlende Code Analyse nicht so schlimm; einfach schnell auf Ctrl+B 
tippen und du siehst sofort die Fehler.

von Programmierer (Gast)


Lesenswert?

Oliver S. schrieb:
> Alles in allem ganz normaler Linux-Alltag. Du wolltest es ja so.

Dass es für Atmel-AVR keine Linux-IDE gibt liegt aber nicht an Linux an 
sich. Die Programmierung in C, C++, Java usw. geht auch unter Linux sehr 
komfortabel. Aber für so etwas exotisches wie AVR Assembler hat sich 
noch keiner die Mühe gemacht.

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Hallo Tom,

befinde mich eigentlich in der gleichen Situation, benutze als Editor 
Geany, habe daneben ein Editorfenster, wo assemblieren/brennen abläuft.
Der Assembler zeigt zu jeder Fehlermeldung eine Zeilennummer, die man 
bei längeren Quelltexten mit Strg-L aufsuchen lassen kann. Man könnte 
den Assembler auch unter "Erstellen" als eigenes Tool einzubinden, dann 
würde geany eventuell selbst in die Zeile mit dem Fehler springen, dazu 
war ich aber bisher zu faul.
Als Assembler nutze ich den freien "Alfred Arnold AS":
http://john.ccac.rwth-aachen.de:8000/as/
welcher etwas mehr Komfort bietet, als der original ATMEL Assembler oder 
der freie avrasm.
Falls mal ein logischer Fehler im Programm gesucht werden muss, nutze 
ich diesen Simulator:
Beitrag "AVR Simulator mit grafischer Benutzeroberfläche für Linux"

von Tom (Gast)


Lesenswert?

Oliver S. schrieb:
>
> Kompromißlose Konsequenz ist halt nicht immer pragmatisch.

Wenn, dann richtig! Sonnst gibt man zu schnell auf, wenn es früher oder 
später halt doch komplizierter wird. Das Gute an der Sache sind ja auch 
die vielen guten Programme die man auch unter Windows kennt. Wie 
z.B.VLC, Gimp, Audacity, und viele viele andere. Da ist die Umstellung 
zumindest was die benötigten "normalen" Programme angeht dann doch nicht 
so groß. Halt für die ganz speziellen Programme muss man sich halt etwas 
neues suchen.

> Eine
> pragmatische Lösung wäre, Windows in einer VM unter Linux laufen zu
> lassen, und da drin dann dein geliebtes Atmel-Studio.
>

Von einer Virtuellen Umgebung habe ich in meinem "Ubuntu Buch" auch 
schon gelesen. Da gibt es auch genug Erklärung zur Installation und 
Umgang damit. Ist wahrscheinlich auch für den Anfang das Beste was ich 
machen kann.

> Alternativ wäre ein Umstieg auf den gcc-Assembler nötig. Die kommt
> allerdings nicht als Ein-Click-Rundum-Sorglos-IDE-Paket. Da musst du
> etwas umlernen, dich dazu mit der Kommandozeile und mit makefiles
> auseinandersetzten, und einiges zu der toolchain lernen. Editoren, die
> dir dann die Fehler im Quelltext anziegen, gibt's dafür dann in jeder
> gewünschten Version. Auch die brauchen Einarbeitung.
>

Ich danke dir für die zusammengefasste Beschreibung, die mir zeigt, das 
es viel Arbeit bedarf sich da rein zu versetzen. Aber das gehört halt 
auch mit dazu. Bei neuen Dingen muss man sich halt immer erst einmal 
ausführlich damit befassen. Hinterher wenn man es verstanden hat, kann 
man es und es ist dann auch nicht mehr so kompliziert. Werde mir das 
Ganze auf jeden fall mal ansehen.

> Alles in allem ganz normaler Linux-Alltag. Du wolltest es ja so.
>
> Oliver

Tja. Bei meinen ersten "Gehversuchen" mit Ubuntu bzw. Linux, habe ich 
schon mehr wie einmal feststellen müssen, das man für jedes noch so 
kleine Problem immer viel Zeit und Geduld benötigt, bis man es gelöst 
hat. Und manchmal bedarf es auch mehrerer Ansätze... Linux ist halt 
anders, hat aber auch seine guten Seiten! Und wenn es erst mal läuft wie 
man es haben möchte, hat man auch wieder genug Zeit für andere Dinge.
Gruß Tom

von Tom (Gast)


Lesenswert?

Programmierer schrieb:

> Die meisten IDEs wie Eclipse oder Qt Creator können das auch auf
> Knopfdruck/Schnelltaste.

Kann man mit QT Creator, Assembler für Atmel MC generieren?
Das wäre ja perfekt. Denn mit QT habe ich schon mal was gemacht. Da 
kenne ich mich zumindest ein bisschen aus.
Gruß Tom

von Jack V. (jackv)


Lesenswert?

Tom schrieb:
> Bei meinen ersten "Gehversuchen" mit Ubuntu bzw. Linux, habe ich
> schon mehr wie einmal feststellen müssen, das man für jedes noch so
> kleine Problem immer viel Zeit und Geduld benötigt, bis man es gelöst
> hat. Und manchmal bedarf es auch mehrerer Ansätze.

Nach nunmehr über zwanzig Jahren Linux kann ich dir aber Mut machen: das 
geht recht bald erheblich besser. Sobald die Grundlagen erstmal da sind, 
und man die Zusammenhänge erfasst hat, gehen die meisten Sachen locker 
von der Hand. Ubuntu macht’s einem da zwar etwas schwerer, aber 
letztlich kann man auch damit klarkommen.

Sorry für OT.

von Tom (Gast)


Lesenswert?

Ingo W. schrieb:
> Hallo Tom,
>
> befinde mich eigentlich in der gleichen Situation,

Danke dir Ingo W. für die tolle Erklärung wie du das Problem löst. So 
wie es aussieht, gibt es halt doch wirklich kein schönes anderes GUI 
Programm. Werde mir auf jedenfalls den "Alfred Arnold AS" ansehen. Mal 
sehen was der so mehr bietet.
Unter DOS und Windows hat man ja früher (oder auch heute noch möglich) 
sogenannte BAT Dateien erstellen können, die bestimmte Abläufe 
beinhalteten und gesteuert haben. Denke so etwas ähnliches sind die 
Make-Files auch, oder liege ich da falsch?
Naja das sind alles noch viele offene Fragen wo ich Schritt für Schritt 
in nächster Zeit eine Antwort dafür finden muss. Aber zum Glück habe ich 
die Zeit dafür, was ja auch heutzutage nicht so oft vorkommt.

Danke und Gruß Tom

von W. Zeh Noob (Gast)


Lesenswert?

> Halt für die ganz speziellen Programme muss man sich halt etwas
> neues suchen.
"ganz Speziell" und neuzeitig ist ja nur die Klientel, die unbedingt 
ausschliesslich per Maus&Fenster programmieren will.
(Cross-)Assembler hat man schon vor der DOS/PC Ära praktiziert, auch auf 
Unix.

Eine heute noch gültige und nicht minder veraltete Antwort auf 1. heisst 
EMACS
Man meint es sei bloss ein Editor...

> Tja. Bei meinen ersten "Gehversuchen" mit Ubuntu bzw. Linux, habe ich
> schon mehr wie einmal feststellen müssen, das man für jedes noch so
> kleine Problem immer viel Zeit und Geduld benötigt, bis man es gelöst
> hat.

Ja, immerhin ist es dann auch gelöst.
Meine über div. WinXy Varianten sich erstreckenden Erfahrungsperioden 
brachten leider allzuoft nichtmal Lösungen hervor, auch nicht unter 
zuhilfenahme von WinXy-Kennern.
Geduld wird dabei nichtmal als Währung akzeptiert...


> als immer über das Terminal Ellenlange Befehle eingeben (bzw. wiederholen) zu 
müssen.
In den seit nunmer 30++J unter unix gängigen Kommandozeilenumgebungen 
können mit wenigen Tastendrücke sämtliche Befehlsketten aus der 
Vergangenheit exakt identisch beliebig oft wieder abgerufen und ggfs. 
nacheditiert werden. (out of the Box Feature bei allen nicht nur 
Ubuntus) Sogar über Neustarts hinweg.

Ich hab noch kein Maus&Fenster-System gesehen, dass ohne aufwändige 
Vorbereitung mir dieselbe Maus+Click-Sequenz von Gestern nochmals 
abspielt.
Auf meinen Wunsch, bei WinXy-systeme mich nach Maus-km zu entlöhnen, 
ging noch kein AG ein :-(

Die automatische Ergänzung (suchstichwort: "tab-completion") in den 
unixischen Kommandozeilenumgebungen erspart und erleichtert einem mit 
wenigen Drücke der Tab-Taste bereits auch das erstmalige erstellen von 
langen Befehle und Befehlsketten.
Ich tippe nie so viele Buchstaben ein, wie letztlich auf meinen 
Kommandozeilen zu sehen sind.
--> lerne das wenige richtige zum Umgang mit der Kommandozeile und Du 
wirst sie vergöttern!
("wenige" habe ich hervorgehoben weil ich selbst derart lernfaul bin, 
dass ich äusserst selten Lust habe offensichtliche Mausbedienschritte zu 
wiederholen)

von c-hater (Gast)


Lesenswert?

Tom schrieb:

> Jetzt bin ich dabei, vollständig ohne Windows zu behalten, auf Ubuntu
> umzusteigen.

Genau das ist völliger Schwachsinn. Ich benutze seit 25 Jahren Windows 
und Linux und konnte in der ganzen Zeit keine Probleme feststellen.

Eher im Gegenteil: seitdem es brauchbare Virtualisierung gibt, ist es 
einfacher als je zuvor, beide Systeme parallel zu benutzen.

von Programmierer (Gast)


Lesenswert?

Tom schrieb:
> Kann man mit QT Creator, Assembler für Atmel MC generieren?

Du kannst das prinzipiell mit allen Programmiersprachen benutzen, indem 
du ein Makefile schreibst und da den richtigen Compiler oder eben 
Assembler aufrufst. Man hat halt nur nicht unbedingt Syntax 
Highlighting. Mit C und C++ zeigt es übrigens direkt beim Tippen schon 
Fehler an, das ist enorm praktisch, insbesondere in der Version die bei 
Ubuntu 20.0 dabei ist, weiß grad nicht welche.

Tom schrieb:
> Unter DOS und Windows hat man ja früher (oder auch heute noch möglich)
> sogenannte BAT Dateien erstellen können,

Unter Unix/Linux nennt sich das Shell-Script, das geht da schon länger 
als es DOS überhaupt gibt und ist auch mächtiger (Windows hat mit der 
PowerShell aber aufgeholt). Ein Makefile ist gewissermaßen eine Sammlung 
kurzer Shell Scripte, die mittels eines Regelwerks abgearbeitet werden 
um immer nur die Dateien zu verarbeiten, die geändert wurden. Sieht am 
Anfang etwas kryptisch aus aber ist leicht zu erlernen.

von Programmierer (Gast)


Lesenswert?

c-hater schrieb:
> Tom schrieb:
>
>> Jetzt bin ich dabei, vollständig ohne Windows zu behalten, auf Ubuntu
>> umzusteigen.
>
> Genau das ist völliger Schwachsinn

Je nachdem was man braucht kann man durchaus mit Linux alleine gut 
zurecht kommen. Das muss man nicht so pauschal sehen.

von Frank K. (fchk)


Lesenswert?

Tom schrieb:
> Hallo an die Linux bzw. Ubuntu Nutzer.
> Ich habe bis jetzt immer mit Atmel-Studio 6.2 unter Windows meine
> Projekte in Assembler programmiert. (Ich sage es auch gleich vorweg, ich
> kann kein C und meine privaten kleinen Projekte funktionieren auch mit
> Assembler!)
> Jetzt bin ich dabei, vollständig ohne Windows zu behalten, auf Ubuntu
> umzusteigen. Hier habe ich aber das Problem, das es halt kein
> Atmel-Studio für Linux gibt.

Atmel ist tot, es lebe Microchip.

Microchip hat ja Atmel gekauft, und zwar genau wegen den Atmel ARMs. 
AVR32 ist tot, AVR8 ist Beiwerk und wird halt solange produziert, wie es 
Geld bringt.

Atmel Studio und die Atmel Tools sind End Of Life und werden nicht mehr 
weiterentwickelt. Stattdessen baut man Support für AVR und ARM ins 
MPLABX ein. Das ist zwar noch weit davon entfernt, komplett zu sein, 
aber der Anfang ist gemacht, und beim XC8 ist jetzt auch ein AVR 
Assembler und Compiler dabei.

MPLABX und die Compiler gibts für Windows, Linux und MacOS.

Das wäre so das nächstliegendste, was es so gibt.

Und wenn Du Dir das schon anschaust, kannst Du auch gleich mal PIC24 und 
dsPIC33 anschauen. Die sind von der Architektur recht nah am AVR dran, 
aber 16 Bit, schneller, haben bessere Peripherie etc.

fchk

von AVRler (Gast)


Lesenswert?

"Atmel Studio und die Atmel Tools sind End Of Life und werden nicht mehr
weiterentwickelt."

Ist das bereits offiziell?

von Frank K. (fchk)


Lesenswert?

AVRler schrieb:
> "Atmel Studio und die Atmel Tools sind End Of Life und werden nicht mehr
> weiterentwickelt."
>
> Ist das bereits offiziell?

Nein, dazu ist der Atmel-Support im MPLABX noch zu lückenhaft. Außerdem 
sind die gerade dabei, die Compiler auf 64 Bit umzustellen.

Aber andererseits: Denk doch mal nach, warum Microchip recht viel Geld 
investiert, um AVR und ARM Support in den XC8 und XC32 Compilern 
nachzurüsten und warum sie neue ICDs und PICKITs mit mehr Pins 
herausbringen, wo ein wesentliches Feature ist, dass sie mit den 2 Pins 
mehr auch ISP, (T/U/-)PDI, SWD und JTAG fahren können. Und der EDBG-Chip 
im Atmel-ICE ist ein AVR32, und ich weiß nicht, wo sie den noch fertigen 
lassen. Atmel war ja zuletzt fabless.

Und die Lizenzvereinbarung für die Visual STudio Shell wird sicher auch 
nicht ewig laufen.

Die Uhr tickt, das ist sicher.

fchk

PS: Der Controller im ICD4 ist ein Atmel SAM E irgendwas. So viel mal 
dazu.

von AVRler (Gast)


Lesenswert?

@ Frank

Dachte mir schon, dass das nur eine Bauchmeinung ist.

von zitter_ned_aso (Gast)


Lesenswert?

Hier hat jemand geschrieben, dass er avrasm mit der Mplab IDE nutzen 
kann:

Beitrag "MPLAB X IDE v5.40"

(avrasm2 kann man auch für Linux runterladen)

Keine Ahnung wie er das hingekriegt hat.

von Uwe S. (de0508)


Lesenswert?

Hallo Tom,

auch LunaAVR, läuft unter Linux und WinOS, kann man über die IDE als 
Macroassembler verwenden.

https://avr.myluna.de/

Man hat nur etwas andere Voreinstellungen, wie andere Compiler.

Siehe z.B.
https://avr.myluna.de/doku.php?id=de:asm-registerdefines
https://avr.myluna.de/doku.php?id=de:asm-commands
https://avr.myluna.de/doku.php?id=de:asm-pp

Berichte bitte mal, wenn Du den Einstig gefunden hast.

: Bearbeitet durch User
von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Tom schrieb:
> 1. Kennt jemand ein Programm womit man die Atmel´s unter Ubuntu ähnlich
> wie im Atmel Studio unter einer grafischen Oberfläche programmieren
> kann? Wo einem z.B. zumindest ein Fehler im Programmcode schon mal
> angezeigt wird...???

Wenn du dich mit dem Vim-Editor anfreunden kannst (aber nicht jeder kann
das ;-)): Dessen QuickFix-Feature ist ungefähr das, wonach du suchst.
Mit dem GNU-Assembler funktioniert das direkt. Ob es auch mit AVRA geht,
hängt vom Format der Fehlermeldungen ab. Man kann das aber ggf. leicht
anpassen.

Idealerweise sollte das Projekt per Makefile gebaut werden, so dass man
direkt Vims make-Kommando verwenden kann. Da die QickFix-Kommandos z.T.
etwas umständlich zu tippen sind, sollte man dafür passend zum eigenen
Arbeitsablauf Hotkeys definieren. Und wenn man schon dabei ist, kann man
sich auch gleich noch Hotkeys fürs Flashen und andere Dinge definieren.

: Bearbeitet durch Moderator
von Tom (Gast)


Lesenswert?

Uwe S. schrieb:
> auch LunaAVR, läuft unter Linux und WinOS, kann man über die IDE als
> Macroassembler verwenden.
>
> Man hat nur etwas andere Voreinstellungen, wie andere Compiler.
>
> Berichte bitte mal, wenn Du den Einstig gefunden hast.

Hallo Uwe S.
Dein Vorschlag LunaAVR zu nutzen, ist erst mal total klasse! Nachdem ich 
mir das Ganze erst mal grob angesehen hatte, war ich eigentlich davon 
überzeugt, ja genau das isses! Dann habe ich mich damit in den letzen 
Tagen intensiver damit beschäftigt und muss nun leider mitteilen, das 
ein ganz wichtiger Punkt nicht funktioniert.

Das LunaAVR ist ja eigentlich ein Programm um unter der 
Programmiersprache "Luna" für Atmel´s MC zu programmieren. Assembler ist 
zwar möglich, aber ist halt nicht die Hauptsprache des LunaAVR. 
Assembler geht nur zwischen den Anweisungen "Asm" bis "endAsm". Der 
Assembler Code der hier reingeschrieben wird, wird auch compiliert und 
funktioniert auch (wenn er korrekt war!). Jetzt kommt aber das große 
"ABER". Alles was innerhalb der Anweisung "Asm" und "endAsm" steht, wird 
aber nicht auf Richtigkeit geprüft! Ich kann hier irgendeinen Quatsch 
rein schreiben, der mit Assemblersprache überhaupt nichts zu tun hat, 
und LunaAVR "sagt" - "Check OK". Lediglich die Farbe, in der Befehle, 
Werte usw. angezeigt werden, ändert sich bei Fehleingaben und währe ein 
Indiz dafür, wenn etwas nicht passt. Bei einem kleinen Projekt wäre das 
noch hinzunehmen, aber bei größeren hilft das nicht weiter.

Es ist wirklich schade! So ein tolles Programm, wass für Assembler 
vollkommen ausreichend wäre! Und die tollen Tools die da mit eingebaut 
sind, die immer eine gute Hilfe wären! Auch meinen AVRMKII Programmer 
hat es sofort erkannt!
Aber leider durch die fehlende Assembler-Code-Prüfung nicht wirklich für 
die Programmierung in reiner Assemblersprache verwendbar. Sehr sehr 
schade!
Gruß Tom

von Oliver S. (oliverso)


Lesenswert?

Yalu X. schrieb:
> Wenn du dich mit dem Vim-Editor anfreunden kannst (aber nicht jeder kann
> das

Nach wem Motto: wenn schon Linux, dann hardcore..

Da aber so gut wie jeder anständige Editor das kann, gibt es zum Glück 
Alternativen.

Und sei es Eclipse ;)

Oliver

von Tom (Gast)


Lesenswert?

Frank K. schrieb:
> aber der Anfang ist gemacht, und beim XC8 ist jetzt auch ein AVR
> Assembler und Compiler dabei.
>
> MPLABX und die Compiler gibts für Windows, Linux und MacOS.
>
> Das wäre so das nächstliegendste, was es so gibt.
>
> Und wenn Du Dir das schon anschaust, kannst Du auch gleich mal PIC24 und
> dsPIC33 anschauen. Die sind von der Architektur recht nah am AVR dran,
> aber 16 Bit, schneller, haben bessere Peripherie etc.

Hallo Frank K.
Vor ca. 2 Jahren hatte ich mir mal MPLAB IDE auf Windows installiert, 
einen PIC Programmer "PICKIT3" organisiert und mit PIC24 schon mal was 
gemacht.
Die 16-Bit PIC´s haben schon bessere Performance, aber die MPLAB IDE 
konnte mich nicht so richtig überzeugen. Da war Atmel Studio einfacher 
im Aufbau und Bedienung und die Performance der Atmel´s reichen für 
meine Projekte vollkommen aus.

Aber ich habe gestern MPLAB X 5.40 und die XC8 2.20 auf Ubuntu 
installiert. Hatte auch den AVR Support von Microchip angeschrieben und 
gefragt, ob mit dieser Kombination die Programmierung der AVR unter 
Assembler möglich ist. Die Antwort war sinngemäß "Ich sehe keine 
Probleme, mit MPLAB X 5.40 und XC8 2.20 einen AVR in Assembler zu 
programmieren."
Ich habe dann gestern Abend noch einen kurzen Test mit MPLAB X gemacht. 
Allerdings mit negativem Erfolg! Ich konnte zwar einen AVR auswählen, 
aber wo ich auf die Assembler-Sprache auswählen kann, da habe ich leider 
nichts finden können.
Wenn das jemand liest und weiß, wie das geht, dann schreibe bitte hier 
die Lösung rein.

Danke und Gruß Tom

von Ingo L. (corrtexx)


Lesenswert?

Tom schrieb:
> Tja. Bei meinen ersten "Gehversuchen" mit Ubuntu bzw. Linux, habe ich
> schon mehr wie einmal feststellen müssen, das man für jedes noch so
> kleine Problem immer viel Zeit und Geduld benötigt, bis man es gelöst
> hat. Und manchmal bedarf es auch mehrerer Ansätze... Linux ist halt
> anders, hat aber auch seine guten Seiten!
So ist es. Lebe damit oder steige wieder zurück auf Windows. Ich sehe 
das so: Der PC ist mein Werkzeug, es muss für meine Aufgaben seine 
zwecke erfüllen und out-of-the-Box funktionieren. Beide Betriebssysteme 
haben ihre Vor- und Nachteile. Wenn du die Symbiose beider 
Betriebssysteme parallel nutzt, hast du die ultimative Kombo. Die 
Begründung, Linux sei so mächtig wegen der Shell gilt seit der Windows 
Powershell nicht mehr, die kann genauso viel.

von Thomas R. (analogfreak)


Lesenswert?

So würde ich es machen:
- AVRASM2.EXE unter wine zum Laufen bringen (nicht Atmel Studio)
- mit Makefile arbeiten: assemblieren, AVRdude, etc.
- genehmen und mächtigen Editor einsetzen, z.B. EMACS. Der kann an die 
Fehlerstellen springen und Syntax-Highlighting geht auch

=> braucht keine Kommandozeile

von Tom (Gast)


Lesenswert?

Oliver S. schrieb:
> Yalu X. schrieb:

> Nach wem Motto: wenn schon Linux, dann hardcore..
>
> Da aber so gut wie jeder anständige Editor das kann, gibt es zum Glück
> Alternativen.
>
> Und sei es Eclipse ;)
>
> Oliver

Danke an dich und auch an alle die mir Tips zu verschiedenen Editoren 
gegeben haben.
Egal ob das Eclipse, Vim oder Emacs sind. Ich habe mir Emacs und Vim 
ebenfalls schon genauer angesehen. Da benötige ich ja erst einmal 
mindestens ein halbes Jahr, um die Bedienung und den Umgang damit zu 
erlernen. Ganz davon abzusehen, wie lange es dann noch dauern würde, 
bevor ich fähig wäre aus diesen Editoren eine halbwegs funktionierende 
Software zum Assembler Programmieren hinzubekommen. So viel Aufwand für 
ein bisschen Assembler und speziell für ein paar private Projekte möchte 
ich dann doch nicht betreiben. Ich möchte auch gerne noch andere Dinge 
erledigen, als den ganzen Tag vor der Kiste zu sitzen... :-)
Ich versuche es jetzt halt wie geschrieben mit MPLAB X. Wenn das nicht 
geht, dann muss es halt doch einfach nur AVRA und AVRDUDE über Terminal 
sein. Dann ist es halt so...

Vielen Dank an alle die sich hier sehr freundlich und hilfsbereit 
beteiligt haben. Ich beende jetzt aber diesen Thread.

von Jack V. (jackv)


Lesenswert?

Ingo L. schrieb:
> Die
> Begründung, Linux sei so mächtig wegen der Shell gilt seit der Windows
> Powershell nicht mehr, die kann genauso viel.

Genauso viel wie was? Soweit ich informiert bin, reicht sie vom 
Funktionsumfang her nicht mal an die Bash heran, um von den gehobeneren 
Shells mal gar nicht zu reden. Und von den Möglichkeiten auf OS-Ebene? 
Dann such’ mal unter Win das /dev-Verzeichnis, um da mal eben was direkt 
in ein Gerät zu pipen. Es ist ein anderes System, die Userinterfaces 
sind nur ’n kleiner Teil der Unterschiede.

Hat im Übrigen auch nix mit „Mächtigkeit“ zu tun. Allerdings schon mit 
„Macht“, nämlich der des Users über das System. Das ist bei Win nicht 
gegeben, auch, wenn sie nun mit der PowerShell einen ernsthaften Schritt 
in Richtung Usability gemacht haben. Mehr Kontrolle über Systeminterna, 
oder gar vollständige Transparenz, gibt’s auch damit nicht.

Sorry für OT.

von zitter_ned_aso (Gast)


Lesenswert?

Tom schrieb:
> Die Antwort war sinngemäß "Ich sehe keine
> Probleme, mit MPLAB X 5.40 und XC8 2.20 einen AVR in Assembler zu
> programmieren."

Ja, aber welche Assembler-Syntax meinen sie da? Darum geht es doch. So 
wie ich es verstehe, wollen hier viele die gleiche Assemblersyntax 
benutzen, die in den Datenblättern steht.

von zitter_ned_aso (Gast)


Lesenswert?

Thomas R. schrieb:
> - AVRASM2.EXE unter wine zum Laufen bringen

arvasm2  für Linux war in einer Vorversion von XC8 dabei.

Man muss da nichts emulieren. Es gibt davon eine 32-Bit Linuxversion.

 Einfach ensprechende XC8-Version (ich glaube XC8 2.10) laden, entpacken 
und in einem Unterordnder findet man das Programm.

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Tom schrieb:

> Aber ich habe gestern MPLAB X 5.40 und die XC8 2.20 auf Ubuntu
> installiert. Hatte auch den AVR Support von Microchip angeschrieben und
> gefragt, ob mit dieser Kombination die Programmierung der AVR unter
> Assembler möglich ist. Die Antwort war sinngemäß "Ich sehe keine
> Probleme, mit MPLAB X 5.40 und XC8 2.20 einen AVR in Assembler zu
> programmieren."

So, der Trick ist:

1. Du installierst den XC8 Version 2.1. In der 2.2 ist der avrasm nicht 
mehr dabei. Du kannst verschiedene Versionen des XC8 parallel 
installiert haben, die stören sich nicht.

2. Du geht im MPLABX unter Tools/Options (ganz unten)
2.1 Du klickst auf Embedded in der Symbolleiste und darunter dann auf 
Build Tools.
2.2 Unter der Liste der Compiler klickst Du auf "Add..."
Das Base Directory muss auf /opt/microchip/xc8/v2.10/avr/bin stehen, im 
Feld unten musst Du (GANZ WICHTIG!!!) avrasm2 auswählen.
dann ok drücken.

Dann wieder ok.

SO, jetzt kannst Du ein neues "Standalone Project" anlegen, Deinen 8-Bit 
AVR angeben, und unter Compiler kannst Du dann avrasm2 auswählen.

Dann sollte das alles gehen.

fchk

von Oliver S. (oliverso)


Lesenswert?

zitter_ned_aso schrieb:
> Ja, aber welche Assembler-Syntax meinen sie da? Darum geht es doch. So
> wie ich es verstehe, wollen hier viele die gleiche Assemblersyntax
> benutzen, die in den Datenblättern steht.

Wer die paar Fünfzeiler aus den Datenblättern nicht an die gcc-as-Syntax 
ngepasst bekommt, bekommt eh kein richtiges Assemblerprogramm zusammmen. 
Da brauchts dann den ganzen Aufwand nicht.

Oliver

von zitter_ned_aso (Gast)


Lesenswert?

Oliver S. schrieb:
> Wer die paar Fünfzeiler aus den Datenblättern nicht an die gcc-as-Syntax
> ngepasst bekommt

So kann man es natürlich auch sehen.

Ich meine aber was anderes: Wie kann ein Hersteller für die Datenblätter 
eine Syntax verwenden, aber für die angebotene IDE - wieder was anderes? 
Das ist doch einfach nur krank.

Oder legt man einem Mercedes die Bedienungsanleitung vom BMW bei?

von Oliver S. (oliverso)


Lesenswert?

Die Datenblätter verwenden die Syntax vom Atmel-Assembler, der auch im 
Atmel Studio steckt. Das passt schon.

Oliver

von zitter_ned_aso (Gast)


Lesenswert?

Frank K. schrieb:
> So, der Trick ist:

Danke für die Anleitung.

Ich konnte jetzt zumindest was erfolgreich kompilieren :)

Tja, wenn es funktioniert dann haben wir jetzt eine IDE, die auch unter 
Linux läuft.

PS: Die inc-Files waren beim XC8 nicht dabei oder?

von Frank K. (fchk)


Lesenswert?

zitter_ned_aso schrieb:

> PS: Die inc-Files waren beim XC8 nicht dabei oder?

doch, die sollten auch da irgenwo sein. Da gibts sogar avrasm2 
Verzeichnisse für.

fchk

von Tom (Gast)


Lesenswert?

Frank K. schrieb:
> SO, jetzt kannst Du ein neues "Standalone Project" anlegen, Deinen 8-Bit
> AVR angeben,...

Hallo Frank K.
DEINE HILFE IST GENAU DAS WAS BENÖTIGT WURDE!!! BESTEN DANK DAFÜR!!!
Du hast eine ganz tolle Step by Step Erklärung geschrieben. Ohne diese 
Erklärung wäre ich niemals darauf gekommen! Und wie du schon gesehen 
hast, gab es bereits einen anderen User der deine Hilfe auch erfolgreich 
umsetzen konnte....

zitter_ned_aso schrieb:
> Danke für die Anleitung.
>
> Ich konnte jetzt zumindest was erfolgreich kompilieren :)
>
> Tja, wenn es funktioniert dann haben wir jetzt eine IDE, die auch unter
> Linux läuft.
>
> PS: Die inc-Files waren beim XC8 nicht dabei oder?

Die inc-Files müssen aber auch mit dabei sein. Denn der z.B. .include 
"m32def.inc" Befehl hat funktioniert ohne weitere Installation.

Also ich kann somit nun auch bestätigen, das MPLABX 5.50 mit XC8 2.10 
für Assembler Programmierung unter Ubuntu 20.04 funktioniert! Auch 
befindet sich die Datei AVRASM2 im Verzeichnis 
/opt/microchip/xc8/v2.10/avr/bin und könnte somit ja auch bestimmt ohne 
MPLABX über das Terminal genutzt werden. Also eine AVRASM2 für Linux und 
User die gerne über das Terminal arbeiten.

Aber letztendlich ist das Programmieren eines AVR in Assembler über 
MPLABX, das selbe wie es bereits mit Atmel Studio war. Beides ist halt 
mit "Kanonenkugeln auf Spatzen geschossen". :-) Aber wenn es doch kein 
kleines einfaches komplettes Programm zum Assembler Programmieren 
gibt... OK halt per "make" File und Terminal. OK das wäre dann die 
Lösung, wenn man sich als W... User mit dem Terminal angefreundet hat...

ALso nochmals Besten Dank an Frank K. für die wirklich sehr gute Hilfe.
Gruß Tom

von Tom (Gast)


Lesenswert?

Bedanke mich bei allen die hier mitgeholfen haben und möchte auch noch 
eine kleine Info hinzutragen.

Aber erst einmal eine Korrektur:

Tom schrieb:
> Also ich kann somit nun auch bestätigen, das MPLABX 5.50 mit XC8 2.10
> für Assembler Programmierung unter Ubuntu 20.04 funktioniert!

Es ist natürlich die MPLABX Version 5.40 gemeint nicht 5.50!

Die zusätzliche Info ist über die möglichen AVR Programmer.
Der doch sehr beliebte AVRMKII wird leider vom MPLABX nicht unterstützt. 
Somit wahrscheinlich auch all die anderen Derivate nicht. Ich konnte nur 
den "ATMEL ICE" und den "JTAGICE3" in der Liste der möglichen zu 
aktivierenden Programmer für die AVR´s finden.
Ich habe nur noch den JTAGICE3 hier mit dem ich das Ganze ausprobieren 
konnte. Dieses funktioniert aber sehr gut und einfach. Ich habe 
keinerlei weitere Software mehr installieren müssen. Einfach den 
JTAGICE3 anstecken und unter den Properties des Projektes (erster Button 
im kleinen Fenster/Feld unten links) auswählen. Die 
Übertragungsgeschwindigkeit war automatisch auf 0,200 MHz gesetzt. Diese 
lässt sich aber auch durch Eingabe eines anderen Wertes wie z.B. 1.000 
auf 1 MHz o.a. ändern.
Ich gehe mal davon aus das dieses für den ATMELICE genauso einfach 
funktioniert.

Somit ist MPLABX 5.40 mit XC8 2.10 und Programmer JTAGICE3 eine 
vollständig funktionierende Programmierumgebung für AVR´s unter Ubuntu 
20.04 bzw Linux, wenn man die AVR´s auch in Assembler programmieren 
möchte.
Schönen Gruß an alle Mitwirkenden.

von Frank K. (fchk)


Lesenswert?

Und: PICKIT4 hat ARM und AVR-Support. Der ICD4 ist hardwaremäßig auch 
dazu in der Lage, aber hier ist Microchip noch nicht so weit, das dauert 
noch.

PICKIT3 hat nicht die geeignete Hardware und ist nur für PIC ICSP 
geeignet.

fchk

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.