Palanqin: Mein aktuelles Projekt

  • Hier eine kleine Vorschau auf mein aktuelles Projekt: »Palanqin«, ein ARM Cortex-M0 Emulator für DOS.


    Noch nicht ganz fertig, aber scheint soweit schonmal zu laufen. Den Quelltext gibt es in den nächsten Tagen dann.


    https://www.youtube.com/watch?v=mFWXZAtCla8

  • Kannst Du mal noch 3 Worte dazu schreiben, wofür genau man das benutzt ?



    Da sind ja schon die Namen rätselhaft - "Palanquin" und "Mecrisp Stellaris" - triggern zumindest bei mir nicht so sonderlich viel an.


    Oder ist es eher ein Demo, daß das sowas machbar ist ?


    ( Es scheint ja nicht ganz einfach zu sein, insbesondere Software, die mal alle Register des ARM benutzt, wird da wohl ziemlich schwierig, oder ? )

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Hintergrund des Projektes ist Die Forth-Implementierung Mecrisp Stellaris meines guten Freundes Dr. Matthias Koch. Mecrisp Stellaris ist ein besonders interessantes Forth, da es nicht wie andere Forths einfach gefädelten Code (threaded code/byte code) erzeugt, sondern Forth in nativen Maschinencode kompiliert und dabei in vieler Hinsicht auch optimiert. Der optimierende Kompiler läuft auf dem Mikrocontroller selber, was bei den beschränkten Resourcen ziemlich sportlich ist.


    Matthias hat mich vor ein paar Monaten mal gefragt, ob es irgendwie möglich wäre, sein Forth irgendwie zu verwenden, um damit die Peripherie seines Atari PCs zu erkunden. Dabei sind wir auf die Idee gekommen, dass ich einen Emulator schreibe, da die Portierung seiner Forths wesentlich komplexer wäre. Dieser Emulator ist Palanqin. Er emuliert zur Zeit meines Wissens nach alle Befehle des ARMv6-M-Befehlssatzes (verwendet auf ARM Cortex M0), aber noch keine Interruptbehandlung oder Peripherie. Die Kommunikation nach außen geschieht noch mit Spezialbefehlen, soll aber langfristig durch emulierte Peripherie ersetzt werden. Auch soll es zukünftig möglich sein, PC-Interrupts auf ARM-Interrupts zu übersetzen und mit nativem Code zu interagieren. Aber all das wird noch kommen.


    Der emulierte ARMv6-M-Befehlssatz ist im Wesentlichen der ARM-Thumb-Befehlssatz ohne Thumb2. Es kann nicht in den ARM-Modus umgeschaltet werden. Dieser Befehlssatz wird auf vielen beliebten Mikrocontrollern z.B. denen mit Cortex-M0-Kern eingesetzt.


    Sicher kann man auch weitere Programme emulieren. Jemand ein paar gute Ideen?

  • Was sind denn die Voraussetzungen ? Keine Grafik ? Max. 48 KByte Speicher ? Externe Anbindung über I2C ?

    Das wird dann schwierig.


    Was evtl. interessant wäre, insbesondere, wenn man am Atari damit unterwegs sein will, daß man das Teil als eine Art CoProzessor benutzt. So ein bißchen wie bei der Amiga Xena Variante, nur daß man den "Mikrocode" nicht als FPGA Umprogrammierung hat, sondern als ARM Instruktionen, die man wahlweise in den/die Chip/s hochlädt.

    Gerade was Multiplikationen und igendwelche Sortier oder Grafikunterstützungen angeht, könnte das evtl. sogar heut' noch extrem interessant sein. Der Nachteil ist, daß am Atari kein rechter Hobbymarkt mehr existiert, also die Aufmerksamkeit sich in Grenzen halten wird.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Was sind denn die Voraussetzungen ? Keine Grafik ? Max. 48 KByte Speicher ? Externe Anbindung über I2C ?

    Das wird dann schwierig.


    Was evtl. interessant wäre, insbesondere, wenn man am Atari damit unterwegs sein will, daß man das Teil als eine Art CoProzessor benutzt. So ein bißchen wie bei der Amiga Xena Variante, nur daß man den "Mikrocode" nicht als FPGA Umprogrammierung hat, sondern als ARM Instruktionen, die man wahlweise in den/die Chip/s hochlädt.

    Gerade was Multiplikationen und igendwelche Sortier oder Grafikunterstützungen angeht, könnte das evtl. sogar heut' noch extrem interessant sein. Der Nachteil ist, daß am Atari kein rechter Hobbymarkt mehr existiert, also die Aufmerksamkeit sich in Grenzen halten wird.

    Falscher Thread?