Forum: Mikrocontroller und Digitale Elektronik AVR und Linux


von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Hallo erstmal ...

... ich weiß ja nicht ob sie's schon wußten, aber...

... ich bastel hier (seit Ewigkeiten) an einem Beschreibungstext (Buch) 
welches auch eine Begleit-CD haben soll.

Diese CD soll alle Bestandteile haben, einen Anfänger an die Hand zu 
nehmen, damit er die ERSTEN Schritte auch hinbekommt, damit die erste 
LED blinkt ohne dass er mit dem PC, dem Windows oder dem Linux kämpft. 
Deswegen wird auf dieser CD dann ein Linux-Livesystem vorhanden sein, 
die rein im Textmode booten wird (aber auch ein X-Server starten kann).

Ziel ist es, dass sich der Anfänger seinen eigenen Programmer basteln 
kann (PonySer) mittels dem er sich dann ein USB-Asp oder einen USBTINY 
Programmer flasht.

Es soll auf diesem System NICHTS (absolut NICHTS) einzustellen sein, 
einschalten und "losprogrammieren" (okay ich weiß, das ist nicht so 
wirklich die Sache der Profis, aber didaktisch weil es schnell zu 
eigenen Erfolgen kommt nicht wirklich schlecht).


Zu diesem Zweck wird dieses Linxu-Live System ein zentrales Programm 
enthalten, mittels dem ein C-Text editierbar ist, der Flasher auswählbar 
ist (PonySer, USBTINY und USBASP), und bei dem er zwischen 3 
verschiedenen Link-Modi wählen kann. Außerdem ist ein serieller Monitor 
vorhanden.

Er soll also das System starten, einen Programmtext eingeben und mit 
einem Klick das Programm compilieren und mit einem anderen Klick das 
Programm in den Controller bekommen.

Das Programm setzt ein lauffähig installiertes AVR-GCC (mit AVRDUDE) 
vorraus (welches logischerweise im Livesystem bereits vorhanden ist).

Lange Rede kurzer Sinn: Es wäre nett, wenn jemand hier mein Programm 
testen würde ob das auch wirklich mit jeder Linuxdistribution in der 
Konsole läuft.

Das Programm setzt auf die uralte Turbo-Vision (Free Vision) von Borland 
auf (smile und bei meiner Benutzung kamen sehr alte "Gefühle" auf).

Würd mich freuen, wenn das jemand testen könnte.

Für diejenigen, die erst einmal "nur" C lernen wollen, wird diese 
Distribution dann auch eine "Oberfläche" für den GCC enthaten, mittels 
der klassische Konsolenprogramme erstellbar sind.

Danke im Vorraus,

Ralph

Dateien im Anhang:

rside43     : Linux Binarie für AVR Controller (ATtiny2313  ATmega8  
ATmega168 / ATmega328)

gccide      : Obefläche, die den GCC aufruft

von Tester (Gast)


Lesenswert?

Ich kriege nur
Unerwarteter Fehler: Kann Datei "/home/gccide.conf" nicht schreiben ...
bzw.
Unerwarteter Fehler: Kann Datei "/etc/rside.conf" nicht schreiben ...

System: Arch Linux x64

Nichts für ungut, aber als super-user wollt ich es dann doch nicht 
testen...

Lg

von xvzf (Gast)


Lesenswert?

Hi,

Änder die Konfigurationspfade doch bitte auf 
~/.config/DeinProgramm/UndHierDieConfigs


LG,
Matthias

von Ralph S. (jjflash)


Lesenswert?

Okay, danke für den Test.... Auf meinem System hab ich das doch 
tatsächlich nur als SU ausgeführt ....

Smile, GENAU dafür ist das Forum da, vielen Dank !

von matrixstorm (Gast)


Lesenswert?

Ralph S. schrieb:
> Ziel ist es, dass sich der Anfänger seinen eigenen Programmer basteln
> kann (PonySer) mittels dem er sich dann ein USB-Asp oder einen USBTINY
> Programmer flasht.

Weil es so schoen passt: Ggf. sehe dir doch mal bitte 
http://matrixstorm.com/avr/tinyusbboard/#chickenoregg - Speziell Punkt 5 
an.

Soweit mir bekannt verfuegen neuere Computer eher selten ueber serielle 
oder parallele Schnitstellen.

MfG

von Mike J. (linuxmint_user)


Lesenswert?

Es gibt ganz billige USBasp Clone aus China, da lohnt sich das selber 
machen absolut nicht mehr.

von Ralph S. (jjflash)


Lesenswert?

Mike J. schrieb:
> Es gibt ganz billige USBasp Clone aus China, da lohnt sich das selber
> machen absolut nicht mehr.

Stimmt schon, aber erstens soll das ein "Bastlerscript" werden, was da 
heißt: alles selbst bauen. Zweitens spricht auch absolut nichts dagegen, 
einen USBasp oder USBtiny zu kaufen und den zu verwenden.

Um den Programmer geht es nicht, es geht darum, dass das gesamte 
"Equipment" einfach eingeschaltet werden soll und dann alles 
funktioniert.

Deshalb eben eine Live-CD (aus der dann ein LIVE USB-Stick generiert 
werden kann), bei der alles konfiguriert ist, damit der erste Code 
einfach eingegeben, compiliert und übertragen werden kann.

Eine serielle Schnittstelle benötigt es dann genau nur ein einziges mal. 
:-) eine serielle Schnittstelle besitzt fast noch jeder neue 
Desktop-Computer, nur die Notebooks haben keine.

Diejenigen die nirgendwo einen Computer auftreiben können der eine 
serielle Schnittstelle hat müssen tatsächlich einen Programmer kaufen 
...

Heute werde ich erst einmal das "Problem" mit der Ablage der 
Konfigurationsdateien beheben !

von Stephan B. (matrixstorm)


Lesenswert?

Ralph S. schrieb:
> Diejenigen die nirgendwo einen Computer auftreiben können der eine
> serielle Schnittstelle hat müssen tatsächlich einen Programmer kaufen

Schade ;-)

Ich habe gehofft, dass du auch diesen Tastaturprogrammer (welcher die 
NUM-Block LEDs als SPI missbraucht: 
http://matrixstorm.com/avr/tinyusbboard/bootloader/keyboardasp_v2.zip) 
unterstuetzt.

Mein Quellcode funktioniert fuer Linux (Framebuffer Terminal) als auch 
Windows - letzteres Betriebssystem sicherlich fuer dich uninterressant.

MfG

von stefanus (Gast)


Lesenswert?

Sorry, ich verstehe den Grundgedanken der Idee nicht.

Wenn ich einen funktionierenden Programmer habe, dann brauche ich nur 
noch ein Steckbrett, etwas Draht und die gewünschte Peripherie (z.B. 
eine LED+Vorwiderstand).

Welchen Vorteil bringt dein System?

Des weiteren rate ich Anfängern dringend davon ab, AvrUSB oder den 
UsbTiny zu verwendne.Beide Programmer sind mit der heißen Nadel 
gestrickt. Wenn sie mal nicht funktionieren, ist man als Anfänger 
hoffnungslos überfordert. Da sollte man lieber auf einen Programmer mit 
richtigen USB-UART.

Auch der Missbrauch eines Druckerports oder RS232 Ports ist keine gute 
Idee. Laptops haben diese Schnittstelle nicht mehr, und auch bei PC's 
sterben sie allmählich aus. Du willst sicher nicht von jedem zweiten 
Käufer enttäuschtes Feedback erhalten (Ich habe genau diese Erfahrung 
gemacht).

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Ich will überhaupt gar nichts verkaufen !!!!

Zum einen: Ich habe beide, USBasp und den USBtiny (und noch ein STK500 
und ein AVR MKII).

Lustigerweise verwende ich selbst den USBtiny am meisten und ich habe in 
3 Jahren noch keinen Ausfall vom USBtiny gehabt.

Das, was ich mache soll so sein, dass eben ÜBERHAUPT GAR NICHTS 
konfiguriert werden muss !

Den RS232 zu "vergewaltigen" (stimme ich dir zu) ist ewig out. 
Aaaaaaaaaber (und ich bekomme einige Mails) ein Anfänger hat dennoch oft 
gewaltige Probleme obwohl es im Internet ewig viele Anleitungen gibt 
(oder eben gerade deswegen).

Ein PonySer soll nur dafür herhalten, um eben ein USBtiny aufzubauen (um 
es dann nicht mehr zu verwenden... das ist für alle die - wie ich selbst 
- gedacht, die einfach nur gerne wirklich alles selbst aufgebaut haben). 
Besser wäre es, einen USBtinyisp fertig für 5 Euro zu kaufen.

Das... was ich machen mag ist:
Download einer ISO (vllt. auch Dateien), Dateien auf einen USB-Stick... 
eine Datei ausführen zum Bootfähigmachen des Sticks ... Bootreihenfolge 
im Bios ändern ... fertig !!!

Auf dem Live-System ist dann alles eingerichtet, damit man nach dem 
Muster:

-Beispieldatei laden
-compilieren aus IDE anwählen
-flashen anwählen

geht !!!

Eben genau damit man sich NICHT ums linken, nicht ums einrichten und 
nicht um die zahlreichen Parameter von AVR-GCC und AVRDUDE 
auseinandersetzen muss !!!

Vielleicht ist's ja n Mist ... dann hab ich das halt für umsonst gemacht 
(meine Auszubildende jedenfalls sind begeistert und denen, denen sie es 
bisher gegeben haben auch).

----------------------------------------------------

So, mal im Anhang die "verbesserten" Dateien, damit auch ein NichtROOT 
Benutzer das starten kann.

Damit dann allerdings USBtiny und USBasp auch als NichtROOT 
funktionieren , sind als su die beiden "rules - Dateien" nach 
/etc/udev/rules.d/ zu kopieren:

su
Password: xxxx

cp 10-usbasp.rules /etc/udev/rules.d/10-usbasp.rules
cp 10-usbtinyisp.rules /etc/udev/rules.d/10-usbtinyisp.rules

von Stephan B. (matrixstorm)


Lesenswert?

Ralph, schreibst du eigentlich das auch auf englisch?

Ich erhalte immer mal wieder Mails vorallem von auslaendischen 
Zeitgenossen.
Gerade dieser Sektor ist sehr Windows und Atmel Studio (oder gar 
Arduino) vorbelastet.
So ein schoenes Livessystem ggf. mit ein paar MB an freier RAMdisk kaeme 
da gelegen.

MfG

p.s.: Falls du noch Inet Mirrors fuer dein Image suchst - ich wuerde 
mich (matrixstorm.com) anbieten.
Mein Strato Vertrag hat kein Traffik limit - also von daher ;-)

: Bearbeitet durch User
von Ralph S. (jjflash)


Lesenswert?

Das Live-System wird auf dem USB-Stick ein frugales System sein und von 
daher selbsttätig alles speichern (im Moment bin ich darüber 
eingeloggt... wenn auch unter LXDE).

Prinzipiell bin ich allerdings am überlegen, das X wegzulassen ... 
einfach damit es wirklich an jedem Uralt-Rechner funktioniert (getestet 
u.a. auf einem alten HP-5000 ThinClient mit 128 MB Ram und 256 MB Flash 
... allerdings schon beengt und ein X-System geht da nicht... :-) 
aaaaaber eben AVR-GCC ging gerade so. Das Live-System setzt auf Porteus 
Linux auf, welches wiederrum auf Slackware basiert).

von Stephan B. (matrixstorm)


Lesenswert?

Ralph S. schrieb:
> Prinzipiell bin ich allerdings am überlegen, das X wegzulassen ...
> einfach damit es wirklich an jedem Uralt-Rechner funktioniert

Viele Uraltrechner koennen aber nicht von USB booten.

MfG

von Ralph S. (jjflash)


Lesenswert?

Für diesen Fall dann von CD.. allerdings muss dann eben auf eine 
vorhandene Festplatte gespeichert werden.

Smile, hier muss man dann "definieren", was ein Uralt-Rechner ist. Die, 
die mir zur Verfügung stehen (der älteste ist von 2004) kann von USB 
booten.

Zumindest, wird man fertige HEX-Files von CD flashen können (wie o.g. 
eben ein USBtinyisp oder ein USBasp)... um das dann auch auf einem 
Notebook OHNE RS-232 verwenden zu können !

von Mike J. (linuxmint_user)


Lesenswert?

Ralph S. schrieb:
> Eben genau damit man sich NICHT ums linken, nicht ums einrichten und
> nicht um die zahlreichen Parameter von AVR-GCC und AVRDUDE
> auseinandersetzen muss !!!

Der Thomas Holland hat sowas ähnliches mal angeboten (Eclipse mit Gcc 
Toolchain Bündel), es müssen aber auch genügend Leute da sein die sowas 
wollen und einer der es dann up to date hält.
"The actual bundeling has to be done by someone else who would be 
willing to maintain the toolchain bundle."

http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_GCC_Toolchain#Toolchain_Bundles


... ich bekomme es nicht gebacken die aktuelle AVR-GCC-Toolchain zu 
kompilieren, immer irgend ein Fehler drin.
Weder die von Atmel direkt, noch die von hier: 
http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_GCC_Toolchain

Ich wär für so ein Eclipse wo der AVR-GCC schon drin ist ... also fix 
und fertig wie das AVR-Studio.

Ich muss immer die VirtualBox starten und dann das AVRStudio_6.2 öffnen, 
es wär toll wenn das direkt unter Linux geht und ich habe mich an 
Eclipse sehr gut gewöhnt.

von Konrad S. (maybee)


Lesenswert?

Mike J. schrieb:
> Ich muss immer die VirtualBox starten und dann das AVRStudio_6.2 öffnen,
> es wär toll wenn das direkt unter Linux geht und ich habe mich an
> Eclipse sehr gut gewöhnt.

Reicht dir die von Atmel bereitgestellte Toolchain nicht?
http://www.atmel.com/tools/atmelavrtoolchainforlinux.aspx

von Stephan B. (matrixstorm)


Lesenswert?

Mike J. schrieb:
> ... ich bekomme es nicht gebacken die aktuelle AVR-GCC-Toolchain zu
> kompilieren, immer irgend ein Fehler drin.

Kenn ich, hab das auch durch. (und dazu einen Thread verfasst: 
https://embdev.net/topic/332088#new)

Mittlerweile hab ich es hinbekommen ;-)

Wenn du step-by-step Begleitung moechtest - wir konnen dazu mal einen 
Teamspeak Termin vereinbaren.

MfG

: Bearbeitet durch User
von Christian K. (microkirsche)


Lesenswert?

Ralph S. schrieb:
> Das Live-System wird auf dem USB-Stick ein frugales System sein
> und von
> daher selbsttätig alles speichern (im Moment bin ich darüber
> eingeloggt... wenn auch unter LXDE).
>
> Prinzipiell bin ich allerdings am überlegen, das X wegzulassen ...
> einfach damit es wirklich an jedem Uralt-Rechner funktioniert (getestet
> u.a. auf einem alten HP-5000 ThinClient mit 128 MB Ram und 256 MB Flash
> ... allerdings schon beengt und ein X-System geht da nicht... :-)
> aaaaaber eben AVR-GCC ging gerade so. Das Live-System setzt auf Porteus
> Linux auf, welches wiederrum auf Slackware basiert).

Ralph, dein Engagement in Ehren!
Ich unterrichte Informationselektroniker und BGler (und andere). Die 
haben keine alten Rechner mehr!!! Die wollen alles mit ihren Laptops, 
Netbooks und zunehmend auch Tablets machen, mit USB. Ich finde, in dem 
Bereich wäre die Energie besser untergebracht.
Wir haben hier Windows-freie Klassenzimmer. Verwenden AVR-GCC, AVR-Dude, 
Burn-o-mat und Code::Blocks. Super Kombination und seit 8 Jahren bei uns 
bewährt (Aktuell Ubuntu 12.04LTS) und über ein Script wird alles 
installiert.
Als Programmer haben wir den Elektor-Programmer eingesetzt (den es 
leider nicht mehr gibt). Jetzt haben wir Diamex USB-ISP für 20,- Euro. 
Und den Elektor-easy (selbstgebaut mit AVR8), der läuft im gleichen 
Modus wie Diamex und kostet etwa 5,- Euro. (Die Windows-Leute 
verzweifeln leider an der Installation der Treiber.)
Vielleicht könntest du dich auf die Schiene einlassen...?

Grüße,
Kirsche

von Stephan B. (matrixstorm)


Lesenswert?

Christian Kirsch schrieb:
> Ich unterrichte Informationselektroniker und BGler (und andere). Die
> haben keine alten Rechner mehr!!! Die wollen alles mit ihren Laptops,
> Netbooks und zunehmend auch Tablets machen, mit USB. Ich finde, in dem
> Bereich wäre die Energie besser untergebracht.

Wie findest du dann die Idee von http://matrixstorm.com/avr/avrstick/ ?

MfG

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.