Um die Firmware zu kompilieren, geht man laut der – angesichts der Komplexität des Vorgangs erschreckend knappen – Anleitung nach <source-dir>/src/README folgendermaßen vor:
Die Punkte 1 und 2 sind bei vorhandener Hardware natürlich überflüssig, und Nr. 6 sollte jeder selber hinkriegen, wir brauchen uns also erst einmal nur um 3 bis 5 zu kümmern.1) program the PIC (cic/supercic/supercic-key.asm)
2) build and program the bootloader.
3) build the firmware and copy it to the memory card
4) build the snes menu and copy it to the memory card
5) build and compress the FPGA configuration and copy it to the memory card
6) insert memory card, power on; the bootloader should begin flashing the
firmware and boot it

Aber der Reihe nach. Punkt 3, das Bauen der Datei firmware.img, setzt eine installierte Toolchain voraus, die den ARM Cortex M3 unterstützt. Laut README muss man sich diese erst selber kompilieren. Mein GCC 5.4.0 verschluckte sich erst mal an den binutils, der Hinweis im README konnte da aber Abhilfe schaffen. Hierzu öffnet man das Makefile in einem Texteditor und ändert Zeile 117 wie folgt:
Vorher:
Code: Alles auswählen
--with-gnu-as --with-gnu-ld
Code: Alles auswählen
--with-gnu-as --with-gnu-ld --disable-werror
Aber ab jetzt hat doch endlich alles funktioniert, oder? ........ Weit gefehlt.

Nach ellenlangem Gerödel brach der Build-Prozess mit kryptischen Hinweisen auf Fehler in gtype-desc.c ab. Google war mal wieder mein Freund, und nachdem ich die GCC-Quellen entsprechend gepatcht hatte, war zumindest dieses Problem ebenfalls aus der Welt geschafft.
Aber jetzt ... MUSS doch die Drachin besiegt und der Prinz endlich gerettet sein, nicht? ...... NICHT? ............ Nö.

Nach ewigem Vorkompilieren und vielen, vielen, fettgedruckten Warnings beschloss der Compiler den Totalstreik: Segmentation fault, please file a bug report und bla.
Das darf doch nicht wahr sein. Ist es aber. Ich wollte aufgeben. Hab ich aber nicht. Sondern ein paar ältere GCCs installiert und mit dem Befehl
Code: Alles auswählen
sudo make CC=gcc-4.7
Und der klappte auch. HAAALLELUJA! HAAAAAALLE....*scratch*
So. Das war's dann. Da ich weiß, dass ikari keinen nicht-funktionierenden Code schreibt, war klar: Hier ist das Ende der Fahnenstange.somebullshit not defined in line blablabla error wirwerdenallesterben und bla
Oder ...?
*nochmal in den src ordner geguckt*
*komisches README.GCC-ARM-NONE_EABI-49 entdeckt*
*les les hm aha schnall oje neiiiiiin*
Die entsetzlichen menschlichen löwigen Dramen, die sich heute, hier und jetzt abspielten, werden wir an dieser Stelle nicht rekapitulieren. Stattdessen verweisen wir darauf, was nahelag – nämlich die Anwendungsverwaltung aufzurufen (schließlich sind wir hier nicht unter Ubuntu, also würde auch das PPA nicht funktionieren – O RLY, unter Mint funktioniert es nicht) und die drei Pakete namens Binutils-arm-none-eabi, Gcc-arm-none-eabi und Libnewlib-arm-none-eabi zu installieren.
Und nach einem erneuten Anlauf hab ich auf einmal wie durch Zauberhand eine frische firmware.img – ich fass es kaum.

Ob sie funktioniert ... ich weiß es nicht. Das ist mir im Moment auch egal, da ich die FPGA-Files eh erst morgen werde erstellen können. Aber, liebe Linux-Mint-User, diese Erkenntnis (s. o.) ist für euch. <3
Und ikari, deine READMEs gehören dringend überarbeitet ... echt jetzt

To be continued ...