Software zur AVR Programmierung unter Linux
Auf mikrocontroller.net findet sich eine schicke Anleitung, wie man Eclipse dazu verwenden kann, um für Atmel AVR Prozessoren zu entwickeln. Ergänzend hab ich als CentOS- und damit RedHat-Nutzer noch die Info gebraucht, wie man die GNU Toolchain baut und installiert, denn es scheint dafür zumindest für CentOS5 keine Paketquellen zu geben. Und diese Info findet sich hier.
Ich musste übrigens wirklich die ganze Toolchain und mpfr selber aus den Quellen kompilieren und was neueres als den GCC 4.1.2 ging auch nicht, das im Repo vorhandene gmp-Paket ist für alles andere schon zu alt.
SystemC unter Linux mit GCC 4.X
Anscheinend liest niemand meinen Foreneintrag auf inf-swt.de, denn ich bekomme ständig komische Anfragen, wie ich die Software unter Linux zum Laufen bekommen hätte und man sagt mir, das sei unglaublich schwer. Komisch, ich hab die Modellierungssoftware jetzt sogar auf den Linux Workstations im Labor laufen, die ja nicht mal mir gehören, also muß es wohl an mir liegen.
Da Peter das Forum sowieso irgendwann einstampfen will, werde ich den Eintrag hier nochmal für die Nachwelt und Öffentlichkeit wiederholen. Ich hab mir das auch nur aus der Googlesuche zusammengestrickt. Das Fedora-Forum u.ä. haben das eigentlich auch alles schon geklärt.
Stressiges 5.
Dieses Semester kommt man leider nicht mehr zu viel, Weihnachten fällt diesmal auch
definitiv ins Wasser, an freie Feiertage ist jedenfalls nicht zu denken. Während Frau
Seehusen uns in zwei Fächern mit jeweils 2 Praktika (reguläre Aufgaben+Projektarbeit) beglückt, ist auch noch eine 12seitige Aufgabe in Modellierung
eingebetteter Systeme zu lösen. Von Kleinigkeiten wie Kryptologie und Übersetzerbau
will ich gar nicht erst anfangen...
Ich kann es nur nochmal betonen: Wer so viele Nebenfächer wie möglich in den ersten 3
Semestern abreißt, hat echtes Glück. Nur Schade, dass für uns damals noch nix angeboten
wurde, weil das nicht zu unserem regulären Studienplan gehört.
Falls sich wer wundert, dass es so wenig von mir zu hören gibt und auch die Uploads nachgelassen haben: Einige Aufgaben erledige ich momentan mit Marius & Co. in seinem SVN Repository, andere Sachen hab ich gerade nachgeholt hochzuladen. Fehlender Copyrightvermerk bedeutet PD, keine Zeit für Spielkram...
Eclipse + Checkstyle + Maven + OpenJPA = Shit
In diesem Semester könnte ich wirklich kotzen. Nur 2 von 5 Fächern haben einen (für mich) sinnvollen Inhalt. Schließlich ist Web-Programmierung, dieser aufgeblähte XML Wahnsinn und BWL nicht gerade das, wovon man träumt, wenn man anfängt Informatik zu studieren. Aber wenn einem in einem der "guten" Fächer, nämlich Softwarekonstruktion, die im Titel vorgeschriebene Kombination vorgesetzt wird, dann lässt sich das Erbrechen kaum noch vermeiden.
Erst sind die Maven Server so überlastet, dass man nicht mehr an seinem Scheiß Projekt arbeiten kann - ja genau Maven muß online sein, damit man damit arbeiten kann - und als wäre es nicht genug, dass Checkstyle einem die Taschen vollquatscht mit so irren Sachen wie
Hey du, diese 70 Zeichen lange Zeile ist über 80 Zeichen lang!und Eclipse viele Sachen, über die Checkstyle meckert, selbst einbaut, wie z. B. Zeilen die nur Whitespace enthalten.
Das "beste" ist die (fehlende) Zusammenarbeit von Maven und OpenJPA. Schon durch die Doku von JPA durchzusteigen, die kaum mehr enthält als XML für die Konfiguration, ist absolut nervtötend. Aber es gibt Fehlermeldungen die rauben einem auch das letzte Stück Verstand, das man noch zu besitzen glaubte.
Was bitteschön, soll man mit diesem Bullshit hier anfangen?
openjpa.Runtime - The configuration property named "openjpa.Id" was not recognized and will be ignored, although the name closely matches a valid property called "openjpa.Id".Google findet diesen Fehler zuhauf, aber eine Lösung hat dazu keiner.
Mein Fazit zu Eclipse mit diesen super Plugins: Shit Shit Shit Shit Shit Shit Shit Shit Shit Shit Shit Shit Shit Shit Shit Shit...
Edit:
Die Lösung zumindest des letzten oben genannten Problems war übrigens ein Fehler in
der Datei src/main/resources/META-INF/persistence.xml.
Maven vergisst außerdem immer wieder mal gern, dass die Datei existiert. Da hilft
dann das Einfügen von Whitespace und erneutes abspeichern. Von einer anderen Gruppe
hab ich gehört, dass es auch daran liegen kann, dass sich die Datei nicht an der
richtigen Stelle befindet.
BSD in der FH
Von wegen schmerzfreies Netzwerken: Der
NetworkManager macht einem im WPA
gesicherten WLAN der Fachhochschule mal so ordentlich einen Strich durch die Rechnung. Einloggen unmöglich,
weil er sich anscheinend selbst im Weg steht. Was solls, man muß ihn ja nicht benutzen. Oder doch?
In dem von mir benutzen Xubuntu ist er leider so tief in die Eingeweide eingebaut, dass es
nicht ganz ohne Aufwand ist, auf was funktionierendes wie Wicd
umzusteigen. Und außerdem nervt es mich sowieso, dass der Intel-Grafiktreiber das System ständig einfrieren
lässt. Mit einer vernünftigen Hardware-Dokumentation hätte man auch einen besseren Treiber bauen können, aber
die Linux Fritzen interessieren sich ja bekanntermaßen nur für die Lizenz ihres Quellcodes und nicht so sehr
für Qualität.
Dabei bin ich extra auf diese Distro umgestiegen (mit Umweg über Zenwalk), weil ich wegen des Studiums keine Zeit dafür opfern wollte am System zu basteln, so wie es bei dem von mir vorher benutzten Arch wegen des Rolling Release fast ständig der Fall war. Sonst ist Arch für mich fast ideal gewesen. Naja, ein Linux blieb es natürlich trotzdem...
Aber es gibt ja Alternativen. *BSD zum Beispiel. Für mich verknüpfen diese das, was ich an Arch mochte, nämlich das grundlegend einfach gehaltene System, mit einer angenehmeren Release-Politik und einem schicken Unix-Kern, zu dem es den Quellcode ohne Aufwand noch dazu gibt. Ich bin nämlich wirklich nicht der Versionitis verfallen und außerdem interessiere ich mich primär für hardwarenahe und Betriebssystem-Programmierung. Klingt wie das Licht am Ende des Tunnels.
Natürlich gibt es einen Haken. Der Konfigurationsaufwand ist bedeutend höher, da es diese ganzen
"tollen" Linux Tools nicht gibt. Auch die Auswahl an Software ist eingeschränkt, zumindest wenn man
nur Pakete benutzt.
Aber wenn es erstmal läuft, dann kann man sich entspannt zurücklehnen. Und ohne etwas Anstrengung kann man den
Erfolg ja auch nicht genießen, richtig?
Meine erste Wahl war jedenfalls OpenBSD. Denn ich mag den Anspruch der Entwickler
um Theo, wirklich verstehen zu wollen wie Hardware funktioniert und dafür zu sorgen, dass diese auch wirklich
vernünftig läuft. Keine Treiber sind besser als schlechte Treiber. Das System war leicht zu installieren und zu
erweitern, für meinen Geschmack. Allerdings hab ich das WLAN nicht zum laufen bekommen, und ich hab es wirklich
versucht. Das ist wahrscheinlich mehr meiner Dummheit zuzurechnen als OpenBSD, aber ich hab auch keine Zeit mich
von sowas aufhalten zu lassen. Also hab ich eben zu FreeBSD gegriffen. Das kannte ich
sowieso schon, hatte es allerdings aufgegeben, weil es mir zu viel Aufwand war mich um ein Stable System zu kümmern,
das mit dem Rolling Release von Arch vergleichbar ist. Aber man muß ja nicht Stable nutzen, Release ist für mich
ausreichend. Enormer Vorteil: eine super Dokumentation, insbesondere für
die
Konfiguration des WLAN. Nachteil, auch gegenüber OpenBSD: Man muß viel selber kompilieren, teilweise die
distfiles für die Ports per Hand aus dem Netz laden, schon wegen irgendwelcher bescheuerter Lizenzbestimmungen von
Sun und Intel. Das kann einem schon richtig auf den Keks gehen.
Das gilt im übrigen auch für Software, die uns in diesem Semester vorgeschrieben wird. Zu nennen sind da erst einmal
Eclipse als IDE für Softwarekonstruktion und der
XML Copy Editor für Informationssysteme. Auch das
Java Developer Kit gehört implizit dazu. Eclipse + Java zu bauen, das dauert schon mal nen ganzen Arbeitstag.
Aber in der Zeit hab ich nicht nur faul rumgesessen und make bei der Arbeit zugesehen, nein, ich hab beim Bauen
des XML Editors auch noch mehrere Fehler gefunden und gleich
zwei
Patches geschrieben.
Es ist offensichtlich, dass diese Software nur für Windows und Linux entwickelt wird. Aber jetzt sollte sie auch auf
den beiden von mir getesteten *BSD laufen. Schön nicht?
War also doch eine ganz produktive Woche...
Content Dump
Ich hab grad eben mal so einiges von dem Zeug aus dem aktuellen 3.Semester hochgeladen.
Da in Rechnernetze 1 das Praktikum erst begonnen hat, ist da natürlich noch nichts vorhanden und in Softwaretechnik werde ich wohl bis zum Ende des Semesters warten und dann das gesamte Archiv online stellen.
Wichtig ist dort dann auch zu wissen, dass die .jude Dateien mit dem UML Editor JUDE in Version 5.5.2 geöffnet werden müssen.
Dieses proprietäre Java Programm (in der Community Version Freeware) hat meines Wissens auch in verschiedenen Subversionen Kompatibilitätsprobleme. Falls ihr das Programm nicht mehr finden solltet: Der sehr eigentümliche Name ändert sich momentan in astah.
Im Fach Betriebsysteme 1 werde ich wohl keine weiteren lauffähigen/compilierbaren Programme hochladen können, da wir an einem bereits fertigen in Java geschriebenen Betriebssystem- & Hardware-Simulator (SimOS) arbeiten, für das ich nicht das Urheberrecht besitze weil es der FH gehört, die es wiederum nicht unter eine freie Lizenz gestellt hat. Ist wohl als VS - Nur für Dienstgebrauch eingestuft. Aber Patches sind wohl trotzdem machbar. :P
MSDNAA Lizenz für VS2008 besorgen
Wie ich bereits schrieb, macht es durchaus Sinn, sich in den Semesterferien schon mal mit C# auseinander zu setzen. Da die meisten meiner Kommilitonen allerdings Microsoft Windows DAUs Anwender sind, und sich wohl auch nicht mit Mono beschäftigen wollen (denn nur Bezahlsoftware ist gute Software!!!11elf), werden sie sich entweder das MS Visual Studio 2008 kaufen, oder eine Microsoft Developer Network Academic Alliance Lizenz dafür holen müssen. Das Teil ist ja im nächsten Semester zu Benutzung vorgeschrieben, leider.
Um bei dem MSDN Consumer Lock In Mist mitmachen zu können, muß man einen Antrag bei Herrn Borchert stellen. Der sitzt in Zimmer 18-1.03. Dann bekommt man irgendwann zwei Mails, die Benutzernamen und Passwort für einen Account bei E-Academy enthalten. Das ganze Prozedere lässt sich auch auf der FH-Webseite unter Studierende->Serices->Software nachlesen. Vor allem die EULA durchlesen, die muß man nämlich schriftlich bestätigen (also nicht einfach auf WEITER klicken).
Besonders interessant ist natürlich auch der letzte Abschnitt:
Wenn sie auf ein Produkt klicken, bekommen Sie die Seriennummern zu sehen. Drucken Sie sich die Nummer aus oder schreiben Sie sie ab! Der Knopf "Software downloaden" lädt noch nicht das eigentliche Produkt herunter. Sie bekommen ein Ladeprogramm (z. B. Windows XP retail.exe), dass den Download startet und die verschlüsselten Produkte vom Download-Server auspackt. ... Es empfiehlt sich, die ISO-Images auf den Laborrechnern unter Z:\ zwischenzuspeichern.
Schön, oder? Naja, wenn man sowieso MS Software runterläd, wird man sich wohl nicht daran stören, dass man eine EXE bekommt, die das Downloaden für einen übernimmt (das also eigentlich nur auf Windows geht). Zu dumm nur, dass ich kein Brennprogramm für Windows hab. Und die ganzen dummen Neros, die überall mit beiliegen können bestimmt keine DVDs brennen. Aber ist ja auch nicht so schlimm, Linux kann NTFS lesen. Was mich stört ist eigentlich nur dieser typische, systembeschränkte Vorgang. Wine oder Mono probier ich für den Versuch am besten gar nicht aus, denn soweit ich das Schriftstück verstanden habe, darf man nur einmal was runterladen. Keine Ahnung was passiert, wenn das nicht ganz klappt...
Was die Zukunft so bringt
Bei der Abnahme der heute fälligen Praktikumsaufgabe habe ich mich ein wenig mit Herrn Hamer unterhalten. Ja ja, Klausur ist 20.01. um 10:00 Uhr im Hörsaal und ab dem 26.01. muß die letzte Aufgabe abgegeben werden. Aber es ging nicht nur darum. Ich hab ein paar Fragen nach dem nächsten Semester gestellt und mir wurde nicht nur mitgeteilt, dass C++ komplett wegfallen wird, sondern die Fixierung auf das Microsoft Visual Studio, dass aus Gründen des Consumer LockIn für die FH-Studenten kostenlos angeboten wird, soweit gehen wird, dass wir auch grafisch programmieren. Unter Umständen jedenfalls. Beim zusammenklicken von Oberflächen lernt man natürlich nicht gerade viel und es kann sein, dass der Code dadurch zu anderen Entwicklungsumgebungen inkompatibel wird.
Hätte, könnte, würde...
Es steht noch nichts fest. Ich hab jedenfalls viel Wirbel um die Plattformunabhängigkeit gemacht und hoffe zumindest Mono ist als Stichwort hängengeblieben. Hauptsächlich soll das Prinzip der Objektorientierung verstanden werden und man wird höchstwahrscheinlich ASP.NET (.Net Webanwendungen) nicht verlassen, wenn man überhaupt dahin kommt. Traurig das so sagen zu müssen, aber mit etwas Glück kann Monodevelop all das, was wir in dem Fach benötigen. Immerhin ist auch dort ein GUI Designer integriert und die Sprache ist bis zu einem gewissen Grad C# kompatibel. Schade, dass es dazu Glück brauchen wird.
Apropos: Gerade vor Weihnachten habe ich das Buch Mono, .NET goes Linux in der Auflage von 2007 beim Terrashop für gerade mal knappe 10 Euro gesehen. Vielleicht lohnt sich der Kauf für einige ja noch, die auch nicht gerade gern jeden Mist von Microsoft mitmachen. Immerhin gibts Mono auch für Windows, es ist freie Software und es beherrscht diverse Sprachen. Das wäre allemal besser als sich auf einen Anbieter einschränken zu lassen.
Und sonst so?
Tja sonst ist 2009 wieder mal ein Superwahljahr. Das bedeutet nicht, dass es ein super Wahljahr ist, oder ein Superwahl-Jahr. Weit davon entfernt! Denn es heißt schlechthin, dass dieses Jahr absolut nichts passieren wird, außer dass Änschie vom schwarzen Friedhofsblock und Frank-Walter von der Umfallerpartei mit Anhang quer durch Deutschland tingeln um Versprechungen zu tätigen, die sie nicht gedenken zu halten. (Sie beim Wort zu nehmen wäre auch unfair, sagt Münte.) Aber inhaltlich wird alles blockiert und auf nach die Wahl verschoben, mal wieder. Wen dieser Anblick im Fernsehen oder (mögen alle Götter und ihre Inkarnationen das verhindern) sogar live frustet, für den empfehle ich dieses Jahr die Titel "Quark" von Die Ärzte und "Fasching in Bonn" von Dritte Wahl als Soundtrack. Erweiterungen werden sich definitiv noch bei euch anfinden.
Persönlich suche ich für diese Seite einen Hoster. Gibt ja leider nicht mehr viele, den Blog werd ich dann verschrotten. Und in den Ferien wollte ich mal ein wpa_supplicant Howto für unsere FH schreiben. Die Beschreibungen im Rechenzentrum sind ja erbärmlich und mit Ubuntu 7.10 so aktuell wie der Kartoffelsalat vom vorletzten Heiligabend.
Atmel Programmierung unter Linux
Dieser Eintag fällt wohl mal wieder in die Meckerkategorie. Ich werd trotzdem keine dafür eröffnen! :P
Es ist so ziemlich klar, dass die Fachhochschule Lübeck das Prinzip von Open Access nicht so richtig verstanden hat. Man bedient sich zwar offensichtlich gern bei den frei zugänglichen Angeboten und Inhalten anderer (ich erinnere nur mal an Hades), aber selber schränkt man seine Studenten gern ein und Hochschulfremde schauen komplett in die Röhre. Oder kommt man ohne Account an Dokumentation, die nicht gerade Werbung in eigener Sache ist? Ich hab da bisher nix gefunden. Diese Entwicklung, die offensichtlich auch auf die Studenten abfärbt, hab ich ja schon früher bemängelt.
Ein weiteres Beispiel für das künstlich durch die FH-Verantwortlichen verursachte Technologie-Lock-in, über das ich hier auch schon schrieb, ist nun dieses AVR Studio der Firma Atmel. Während es in einer älteren Version noch auf Linux läuft, aber nicht für den von uns zu verwendenden ATmega-Prozessor taugt (außerdem muß man sich dafür auch wieder zwangsregistrieren), ist die für uns vorgeschriebene Version nur für dieses Fensterprogramm aus Redmond zu haben. Überraschung! :( Aussage von Prof. Kamsties dazu: "Das sollte doch kein Problem sein..."
Doch, ist es! Das ist genauso dämlich wie conio-Bibliotheken zu benutzen um ANSI-C zu lehren oder C# + Visual Studio für objektorientierte Programmierung. Wer sowas macht, dem fehlt einfach Umsicht. Ich kann daher nur hoffen, dass letzteres zumindest Mono kompatibel bleibt. Ansonsten kann ich mir für diesen lahmen Klickbunti-Müll gleich einen neuen Rechner kaufen. Dank prophezeiter Deflation wird ja demnächst wohl sowieso alles billiger, oder so...
Zurück zum Thema: Es gibt nicht nur Linuxtaugliche, sondern sogar freie Tools für die Programmierung und vor allem Simulation von Atmel Prozessoren, sagt zumindest die Wikipedia. Das alle dort genannten Tools auch für den ATmega taugen, wage ich zu bezweifeln. Außerdem sind einige dieser Teile nur für ausgewählte Linux-Distributionen zu haben. cdk-avr-binutils zum Beispiel ist nur für RedHat-basierte Distributionen geeignet, zu denen ihrer Meinung nach auch Suse zählt (offenbar bringt man da was mit dem Red Hat Package Manager rpm durcheinander). Versionen im Debian format oder .tgz (BSD-, Slackware- oder Zenwalk-Version?) haben den Status experimentell, sind also noch nicht einmal alpha. Komischer Weise ist es in Arch Linux aber schon drin... Aber da fehlt auch wieder die Simulation. Dafür soll jedoch kontrollerlab in die Bresche springen. Dies scheint ein Plugin für KDevelop zu sein und wer das schon mal installiert hatte, der weiß, was da alles dran hängt. Also root-Partition vergrößern...
Hier noch ein paar weitere Links, aus denen ich bisher noch nicht ganz schlau geworden bin:
- http://www.bdmicro.com/devtools/#programmers
- http://www.captain.at/electronic-linux-atmel-avr-simulator-gui-vmlab.php
- http://www.amctools.com/vmlab.htm
- http://www.nongnu.org/simulavr/
Update
Das VMLab unter Linux mit Wine zum laufen zu kriegen ist, nützt relativ wenig. Wie ich diese Woche feststellen musste, ist Assemblercode nicht von einem Assembler zum anderen Portabel, zumindest da wir mit tollen includes arbeiten, die nur das blöde Studio kann. Ganz großes Tennis! Wenn sich jemand da zu äußern könnte, der sich damit auskennt...StrukTeX
Da bin ich wieder und ich hab mich mit StrukTeX befasst.
Gleich zu Beginn kann ich sagen: "Juhu, es funktioniert!", und das gar nicht mal schlecht. Wie stellt man es also an?
Also, StrukTeX liegt bereits jeder TeXLive-Distribution bei. Solltet ihr was älteres benutzen, dann könnt ihr natürlich updaten ;) oder ihr ladet euch das Paket vom CTAN runter. Dort gibt es auch die super Dokumentation des Paketes, auch auf deutsch, von der FH-Aachen. Auf den Seiten 8-20 ist so das Wesentlichste erklärt, fast schon zu viel für unseren Bedarf.
Als Anwendungsbeispiel hab ich mal mein Programm für den nächsten Praktikumstermin hergenommen. Hier ist die Quelldatei und so sieht das Resultat aus. Ich denk mal, ich werde das auch so abgeben. :)
Gegenüber den Freeware Tools, die wir sonst benutzen sollen, ist auf jeden Fall das hübschere Layout als Vorteil zu nennen, zentrale Anpassung der Schriftgröße, Umlaute, mehrseitige Dokumente, man kann das Programm fast 1:1 abtippen, Exports ins PDF-Format... na ich hör hier mal lieber auf. Wer sich trotzdem lieber durchklickt oder wem LaTeX zu kompliziert bleibt, ist wohl wirklich ein hoffnungsloser Fall. ;)
EDIT:
Also Herr Hamer hat etwas wegen der leeren Verzweigungen rumgemeckert und dass nach Anweisungen gleich ein horizontaler Strich kommt und so nicht alle Zweige in gleicher Höhe enden. Naja, ich konnte ihn aber besänftigen und davon überzeugen, dass ein leeres Feld, bzw. die dargestellte Null nichts anderes darstellt, als würde ich /*leer*/ hinein schreiben und leere Anweisungen nunmal keine Auswirkungen auf den Programmablauf haben, dass das somit also egal ist.
Was soll ich sagen: Er hat 's gekauft! :)
