Mecrisp 2.0.0 ist da.
Viele Menschen haben Matthias Koch nach Mecrisp für die "großen" MSP430 gefragt, und auch das Interesse an der FRAM-Familie wurde ihm immer wieder mitgeteilt. Nachdem nun die ARM-Variante mit ihrer kunterbunten Funktionenvielfalt mittlerweile sogar in den STM32F030F4 mit nur 16 kb Flash passt, sollte das doch auch mit dem MSP430 möglich sein ! Jetzt ist es soweit: Mecrisp 2.0.0 ist fertig und bereit für einen gründlichen Test. Drei neue Chips werden unterstützt: MSP430FR4133, MSP430FR5969 und MSP430F5529. -- weiterlesen was Mattias dazu schreibt...
http://sourceforge.net/projects/mecrisp/files/?source=navbar
Das Mecrisp 2.0.0 hat viele große Änderungen: Das Stringsystem ist auf Adresse-Länge umgestellt, evaluate, buffer: sowie ganz viele vom ARM bekannten Helferlein sind an Bord und Multitasking hat Einzug gehalten !
Auch viele neue Beispiele sind hinzugekommen, darunter zwei Displaytreiber, um Mecrisp bei der Arbeit zuzuschauen.
Innendrin ist der Quelltext noch einmal gründlich in Hinblick auf bessere Portierbarkeit überarbeitet worden, jetzt sollte es keine Schwierigkeiten mehr bereiten, einen neuen Chip hinzuzufügen. Dabei ist der Mecrisp-Kern von 9 kb auf 11 kb gewachsen, doch für die, die große Projekte auf dem MSP430G2553 begonnen haben steht natürlich weiterhin Mecrisp 1.1.3 zur Verfügung.
Da jetzt der Funktionsumfang von Mecrisp und Mecrisp-Stellaris fast identisch geworden ist, lassen sich nun auch Programme zwischen ARM Cortex und MSP430 austauschen ! Wer mag, kann den Multitasker und den Blockeditor für beide Architekturen direkt vergleichen; bei den hardwarenahen Beispielen sind natürlich größere Unterschiede zu finden, da dabei die völlig verschiedenen Ports und der Wechsel zwischen 16 und 32 Bit stärker ins Gewicht fallen.
Wer von einem ANS-Standard-Forth kommt, wird sich jetzt auch in Mecrisp 2.0.0 gut zurechtfinden, wobei - genau wie bei Mecrisp-Stellaris - vier wichtige Unterschiede zu beachten sind.
a) Variablen sind initialisiert, wie Konstanten auch, und der Initialisierungswert wird jeweils beim Reset neu geladen. So sieht es aus:
42 variable antwort
b) Immediate gehört in die Definition. : nochmalif postpone if immediate ;
Dies gilt auch für die anderen Flags wie inline und compileonly .
c) Im Flash funktioniert create does> nicht, da sich die Standardaktion von create nicht überschreiben lässt. Stattdessen ist das klassische <builds does> zu verwenden.
d) Wer einen Pufferspeicher benötigt, muss statt der create-allot-Kombination buffer: verwenden - denn ein "Pufferspeicher" im Flash ist nicht so sonderlich nützlich :-)
Ein Wort der Warnung möchte ich noch mitgeben: Mecrisp 2.0.0 enthält sehr viele neue Änderungen, so dass jene, die die große Stabilität von Mecrisp 1.1.3 zu schätzen gelernt haben, das neue Paket als experimentell ansehen und noch Vorsicht walten lassen sollten.
Und einen Wunsch habe ich auch: Wer helfen mag, kleine Forth-Beispiele für die Fülle an neuer Peripherie der frisch unterstützten Chips zu schreiben, ist herzlich willkommen.
Viel Freude beim Ausprobieren !
Matthias
http://sourceforge.net/projects/mecrisp/files/?source=navbar
Das Mecrisp 2.0.0 hat viele große Änderungen: Das Stringsystem ist auf Adresse-Länge umgestellt, evaluate, buffer: sowie ganz viele vom ARM bekannten Helferlein sind an Bord und Multitasking hat Einzug gehalten !
Auch viele neue Beispiele sind hinzugekommen, darunter zwei Displaytreiber, um Mecrisp bei der Arbeit zuzuschauen.
Innendrin ist der Quelltext noch einmal gründlich in Hinblick auf bessere Portierbarkeit überarbeitet worden, jetzt sollte es keine Schwierigkeiten mehr bereiten, einen neuen Chip hinzuzufügen. Dabei ist der Mecrisp-Kern von 9 kb auf 11 kb gewachsen, doch für die, die große Projekte auf dem MSP430G2553 begonnen haben steht natürlich weiterhin Mecrisp 1.1.3 zur Verfügung.
Da jetzt der Funktionsumfang von Mecrisp und Mecrisp-Stellaris fast identisch geworden ist, lassen sich nun auch Programme zwischen ARM Cortex und MSP430 austauschen ! Wer mag, kann den Multitasker und den Blockeditor für beide Architekturen direkt vergleichen; bei den hardwarenahen Beispielen sind natürlich größere Unterschiede zu finden, da dabei die völlig verschiedenen Ports und der Wechsel zwischen 16 und 32 Bit stärker ins Gewicht fallen.
Wer von einem ANS-Standard-Forth kommt, wird sich jetzt auch in Mecrisp 2.0.0 gut zurechtfinden, wobei - genau wie bei Mecrisp-Stellaris - vier wichtige Unterschiede zu beachten sind.
a) Variablen sind initialisiert, wie Konstanten auch, und der Initialisierungswert wird jeweils beim Reset neu geladen. So sieht es aus:
42 variable antwort
b) Immediate gehört in die Definition. : nochmalif postpone if immediate ;
Dies gilt auch für die anderen Flags wie inline und compileonly .
c) Im Flash funktioniert create does> nicht, da sich die Standardaktion von create nicht überschreiben lässt. Stattdessen ist das klassische <builds does> zu verwenden.
d) Wer einen Pufferspeicher benötigt, muss statt der create-allot-Kombination buffer: verwenden - denn ein "Pufferspeicher" im Flash ist nicht so sonderlich nützlich :-)
Ein Wort der Warnung möchte ich noch mitgeben: Mecrisp 2.0.0 enthält sehr viele neue Änderungen, so dass jene, die die große Stabilität von Mecrisp 1.1.3 zu schätzen gelernt haben, das neue Paket als experimentell ansehen und noch Vorsicht walten lassen sollten.
Und einen Wunsch habe ich auch: Wer helfen mag, kleine Forth-Beispiele für die Fülle an neuer Peripherie der frisch unterstützten Chips zu schreiben, ist herzlich willkommen.
Viel Freude beim Ausprobieren !
Matthias