!
https://micromite.org und
https://pslabs.pl sind down !
Ich hab mir selbst zum Geburtstag einen Color Maximite II (Generation 2 Version 2) gegönnt.
https://www.rictech.nz/products/31/COLOUR-MAXIMITE-2 zum Shop sind es ca 18,000 Km Luft linie
(Mit online Tracking konnte ich verfolgen, dass das Teil mit 6 Flugzeugen pünktlich zum Geburtstag sein Ziel erreicht hat.)
Die komplette Firmware (inkl. HAL Treiber für USB, SDCARD, VGA, RAM, SOUND etc.) und das MMBasic selbst
ließ sich nur mit einer älteren ARM Tool Chain und FW Version mit STMCubeIDE erfolgreich kompilieren.
Aktuelle Toolchain und FW findet viele Fehler z.B. doppelt deklarierte Variablen in *.h und *.c Files.
Natürlich sollte man Speicher für struct's/var's nur in *.c Files belegen und kann dann in mehreren *.h Files mit "EXTERN" auf diesen
extern belegten Speicher verweisen.
Aber selbst wenn ich alle 400 Übeltäter die der Linker meldet gefunden und behoben hatte, macht die Firmware für die SD Card einen Fehler.
Load "myprog.bas" liest den Quellcode aber umbricht die einzelnen Zeilen nicht was dann in ein "line to long" Fehler enden muss.
Habe aber keine weitere Zeit in die Fehlersuche investiert
da das mit alten Tools erstellte FLASH Image problemlos auf dem tollen CMM2 läuft.
NO RISC NO FUN:
Natürlich ist ein eigenes OS ganz ohne MMBasic für diese schöne feine Maschine in der Mache !
Wen man für jedes Bit selbst verantwortlich ist (no HAL drivers pure ARM Assembler) dann ist das
Studium vom Schaltplan und sämtlicher Datenblätter der verbauten Komponenten keine Kür, sondern Pflicht.
Im Prinzip fängt man mit einer langen Sprungtabelle an die am Anfang nur auf Dummy Interrupt und Error Händler zeigt.
Nur der Reset Händler (POWER ON Vektor) wird mit der Adresse der eigen main(){} belegt und das Abenteuer kann beginnen.
Will man auf sein eigenen OS ohne zusätzlich PC programmieren benötigt man als Minimum einen DIY ARM Assembler
der auch das Instructionset TUMB I/II versteht und in Bytes umsetzt.
Ein echtes Einsteigerproblem stell der Speicher da. Normalerweise kümmert sich der Linker einer ARM Toolchain darum
das die verschiedenen Code/Data Section's genau an den Adressen landen, wo sie hingehören.
Die Cortex-7 Achitektur trennt Code und Daten von einander aber ein FLASH Loader lädt zunächst das erstellte Image
in das Flasch RAM die eigene main( ) muss dann vom Flash den/die R/W Bereiche selbst in den SRAM bereich verschieben.
Das wird aber nichts wenn man vergisst z.B. auch den Stackbereich im R/W RAM einzurichten.
Man muss es mögen sonnst ist es eine Qual (am Anfang).
Bin vorzeitig in Rente und habe Zeit für so einen Blödsinn im Alter
Happy coding
Joshy
Nachtrag:
Warum ich überhaupt auf dem Color Maximite II (gen. 2) gestoßen bin.
Ich saß an meinem 40 Jahre altem C64 (mit den original Kondensatoren)
und hatte via CAN Bus das Märklin MFX Protokoll bei seiner Arbeit beobachtet.
Dann habe ich mir aktuelle STM32 Mikrocontroller auf diversen China Börsen angeschaut
und ausgerechnet was mich alle Bauteile/Gehäuse/Platine in kleiner Stückzahl kosten würde
und da ich meinen alten aber treuen Augen den SMD Kram beim Löten nicht mehr antun möchte,
muss die eigene Platine auch vom PCB Hersteller noch bestückt werden.
Da die Mindeststückzahl 5 ist und nur ein grober Fehler im Layout reicht, um eine Menge Elektromüll zu produzieren
habe ich nach meinem Favoriten den STM32H743IIT6 mit 480MHz und 176 Pinnen (Unmenge an GPIOs) gegoogelt.
Da war schnell klar für den Preis ein komplettes "funktionierendes" Gerät ist unschlagbar.
So adoptierte ich einen New Zealand'er.

Und sie lebten glücklich bis ans Ende ihrer Tage (bla bla bla)