Mecrisp-Across
Matthias Koch schrieb neulich: "Es wird Zeit, einen neuen experimentellen Zweig von Mecrisp anzukündigen." Sein Mecrisp-Across ist ein sehr stark optimierender und dennoch interaktiver Crosscompiler für die ganz kleinen MSP430 ! Außer den alten Bekannten sind auch ganz neue Optimierungen mit an Bord.
Der Compiler gibt HEX-Images für den Zielchip aus, darin wird gar kein Forth-Kern benötigt, der gesamte Speicherplatz steht für die eigenen Entwicklungen zur Verfügung. Wer mag, kann die Algorithmen dennoch direkt interaktiv testen ...
... denn die internen Datenstrukturen des Crosscompilers lassen sich im Host ausführen. Echtzeitfähig ist der interaktive Modus nicht, doch wer mag, kann die Portzugriffe aus der interaktiven Emulation via Bit-Bang-JTAG in einen echten MSP430F2012 umleiten. Mehr geht in so einem kleinen Ziel-Microcontroller einfach nicht.
Die Optimierungen an Bord sind:
* Konstantenfaltung
* Registerallokator für Daten- und Returnstack, beherrscht verschiedene Adressierungsmodi
* Beliebig wählbarer kanonischer Zustand
* Registerallokation über Kontrollstrukturen hinweg, ohne kanonischen Rückfall
* Konstantenfaltung in bedingte Sprünge hinein, Umwandlung in unbedingte Sprünge und Dead-Code-Elimination
* Call-Trace ausgehend von den Interruptvektoren, um herauszufinden, welche Definitionen verwendet werden, wie das Smartlinking in Freepascal
* Definitionen, die nur einmal verwendet werden, werden automatisch inline eingefügt und mit dem lokalen Registersatz überoptimiert
* Verfolgung der Registerbenutzung, um maßgeschneiderte Interrupt-Rahmen zu generieren
Die meisten Beispiele, die beiliegen, sind für das MSP430G2553-Launchpad gedacht, verwenden aber die Speicherkarte eines MSP430F2012. Ja, es ist gemogelt, aber die Chips sind binär aufwärtskompatibel und ein Terminal ist einfach superpraktisch zum Testen. Es liegt aber auch ein erstes Beispiel für einen echten MSP430F2012 bei.
Im Moment läuft Mecrisp-Across auf Mecrisp-Stellaris-Linux 2.2.8 oder mit JTAG-Portumleitungen auf einem Tiva Connected Launchpad mit dem TM4C1294 und benötigt etwa 80 kb Platz für Puffer im RAM.
Matthias: "Na, Überraschung gelungen ? Mutige Tester willkommen !
Sommerliche Grüße und vielen lieben Dank an Dirk Brühl für hundertzwanzig MSP430F2012."
Der Compiler gibt HEX-Images für den Zielchip aus, darin wird gar kein Forth-Kern benötigt, der gesamte Speicherplatz steht für die eigenen Entwicklungen zur Verfügung. Wer mag, kann die Algorithmen dennoch direkt interaktiv testen ...
... denn die internen Datenstrukturen des Crosscompilers lassen sich im Host ausführen. Echtzeitfähig ist der interaktive Modus nicht, doch wer mag, kann die Portzugriffe aus der interaktiven Emulation via Bit-Bang-JTAG in einen echten MSP430F2012 umleiten. Mehr geht in so einem kleinen Ziel-Microcontroller einfach nicht.
Die Optimierungen an Bord sind:
* Konstantenfaltung
* Registerallokator für Daten- und Returnstack, beherrscht verschiedene Adressierungsmodi
* Beliebig wählbarer kanonischer Zustand
* Registerallokation über Kontrollstrukturen hinweg, ohne kanonischen Rückfall
* Konstantenfaltung in bedingte Sprünge hinein, Umwandlung in unbedingte Sprünge und Dead-Code-Elimination
* Call-Trace ausgehend von den Interruptvektoren, um herauszufinden, welche Definitionen verwendet werden, wie das Smartlinking in Freepascal
* Definitionen, die nur einmal verwendet werden, werden automatisch inline eingefügt und mit dem lokalen Registersatz überoptimiert
* Verfolgung der Registerbenutzung, um maßgeschneiderte Interrupt-Rahmen zu generieren
Die meisten Beispiele, die beiliegen, sind für das MSP430G2553-Launchpad gedacht, verwenden aber die Speicherkarte eines MSP430F2012. Ja, es ist gemogelt, aber die Chips sind binär aufwärtskompatibel und ein Terminal ist einfach superpraktisch zum Testen. Es liegt aber auch ein erstes Beispiel für einen echten MSP430F2012 bei.
Im Moment läuft Mecrisp-Across auf Mecrisp-Stellaris-Linux 2.2.8 oder mit JTAG-Portumleitungen auf einem Tiva Connected Launchpad mit dem TM4C1294 und benötigt etwa 80 kb Platz für Puffer im RAM.
Matthias: "Na, Überraschung gelungen ? Mutige Tester willkommen !
Sommerliche Grüße und vielen lieben Dank an Dirk Brühl für hundertzwanzig MSP430F2012."