Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:4e4th:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projects:4e4th:start [2018-05-11 14:32] – [Quelltext Upload via Terminal] mkaprojects:4e4th:start [2022-03-06 22:22] (aktuell) – [Revisons-Geschichte] mka
Zeile 92: Zeile 92:
 (evtl. flow control noch per Menü deaktivieren) (evtl. flow control noch per Menü deaktivieren)
  
-Oder gleich [[http://www.forth-ev.de/wiki/doku.php/projects:e4thcom#download|e4thcom-0.3.3.tar.gz]] nehmen. Bedienung und Eigenschaften des e4thcom-Terminals wurden neulich im Forth Magazin "Vierte Dimansion", Heft 4/2013, besprochen - [[http://www.forth-ev.de/filemgmt/singlefile.php?lid=518|VD 2013-04 ]]+Oder gleich [[https://wiki.forth-ev.de/doku.php/projects:e4thcom|e4thcom]] nehmen. Bedienung und Eigenschaften des e4thcom-Terminals wurden neulich im Forth Magazin "Vierte Dimansion", Heft 4/2013, besprochen - [[https://wiki.forth-ev.de/doku.php/vd-archiv|VD 2013-04 ]]
  
  
Zeile 149: Zeile 149:
 //Alle Forthworte dort in den Beispielen sind GROSS geschrieben. Dem 4e4th ist egal ob du GROSSE oder kleine Buchstaben verwendest. Dieses Verhalten wird //case insensitiv// genannt.// //Alle Forthworte dort in den Beispielen sind GROSS geschrieben. Dem 4e4th ist egal ob du GROSSE oder kleine Buchstaben verwendest. Dieses Verhalten wird //case insensitiv// genannt.//
  
- +===== Kleines Glossar mit ersten Worten =====
-===== Dein Programm sichern ===== +
- +
- +
-Tippe einfach ''SAVE'' um dein Programm zu sichern. Es bleibt dann permanent im MSP430G2553 FLASH gespeichert. +
- +
-Mit Hilfe eines Programmers kann man das Flash auslesen, und das Image davon auf dem PC in eine Datei sichern.  +
- +
-Tippe ''WIPE'' um dein Programm wieder zu entfernen. Es kann auch entfernt werden, indem man die Taste S2 gedrückt hält und dann die Reset-Taste drückt. Dabei werden alle neuen Definitionen, also die eigenen Programme, gelöscht.   +
- +
-//Es gibt eine Besonderheit im Umgang mit dem FLASH in MSP430 MCUs: Das FLASH kann immer nur 1x beschrieben werden! Ist also nicht so komfortabel wie RAM oder FRAM. Praktisch gesehen bedeutet das Programmabstürze, wenn man es übersieht, das FLASH sauber zu löschen bevor man dort erneut speichert (compiliert). Oder anders ausgedrückt: Wenn ab IHERE kein $FF steht, kann man nichts dorthin speichern. Benutze WIPE um in frisches USER-FLASH zu erhalten. Das Forthsystem, der Kernel, bleibt erhalten, denn der Forth-Kernel im Flash ist geschützt - unkaputtbar :) +
-// +
- +
- +
-===== Wenn nichts mehr geht ===== +
- +
- +
-Dann hilft nur noch den Forthkern erneut zu brennen. Das Ur-Image deines Forth hast du ja noch.  +
- +
-In Windows braucht es dazu nichts weiter als den Programmer aufzurufen und die dort schon eingestellte Quelle erneut in den chip zu brennen. zB mit AUTOPROG beim FET-Pro430 Programmer. Es muss nichts umgesteckt werden.  +
- +
-Der Programmer benutzt den Port USB HID00xx als Verbindung zum LaunchPad, die über die gleiche USB Verbindung realisiert ist wie die serielle zum Terminal. Das Terminal kann einfach geöffnet bleiben.  +
- +
-Beende den Brennvorgang im FET-Pro430 mit einem Klick auf das dortige "Reset". Dann wird die MCU freigegeben und dein 4e4th bootet sofort.  +
-===== Forth Kern selbst erstellen ===== +
- +
-Wer den 4e4th-Forth-Kern bearbeiten will, kann das Projekt clonen. https://github.com/mikalus/4e4th05a +
- +
-Dort im Repository liegt das aktuelle Projekt. Die Beschreibungen (readme.430) wie man das Forth selbst herstellen kann, und der Quellcode (*.asm) um ein 4e4th05a.hex mit dem Naken Assembler zu machen, sind dabei.   +
-===== Glossar =====+
  
  Speicher  Speicher
Zeile 187: Zeile 158:
  
  Peripherie - Port1  Peripherie - Port1
-  CSETB       m adr --            set bits im byte an der Adresse mittels Bit-Maske  +  CSETB       m adr -- )        set bits im byte an der Adresse mittels Bit-Maske  
-  CCLRB       m adr --            clear bits im byte an der Adresse mittels Bit-Maske +  CCLRB       m adr -- )        clear bits im byte an der Adresse mittels Bit-Maske 
-  RED         -- m adr            red LED Bit-Maske und Port1 Adresse  +  RED         -- m adr )        red LED Bit-Maske und Port1 Adresse  
-  GREEN       -- m adr            green LED Bit-Maske und Port1 Adresse +  GREEN       -- m adr )        green LED Bit-Maske und Port1 Adresse 
-  S2?         -- f                test Schalter S2, true ist Schalter gedrückt +  S2?         -- f )            test Schalter S2, true ist Schalter gedrückt 
      
  
Zeile 212: Zeile 183:
 Hier einige Beispiele wie die LEDs damit ein und ausgeschaltet werden können. (Den Umgang mit Forth auf der Kommandozeile kennst du schon? Sonst mach erst einige grundlegende Übungen. http://www.forth.com/starting-forth/ online edition) Hier einige Beispiele wie die LEDs damit ein und ausgeschaltet werden können. (Den Umgang mit Forth auf der Kommandozeile kennst du schon? Sonst mach erst einige grundlegende Übungen. http://www.forth.com/starting-forth/ online edition)
  
-  RED CCLRB      --> rote LED geht aus.+  RED   CCLRB    --> rote LED geht aus.
   GREEN CCLRB    --> grüne LED geht aus.    GREEN CCLRB    --> grüne LED geht aus. 
-  RED CSETB      --> rote LED geht an.+  RED   CSETB    --> rote LED geht an.
   GREEN CSETB    --> grüne LED geht an.   GREEN CSETB    --> grüne LED geht an.
  
Zeile 220: Zeile 191:
  
   DECIMAL   DECIMAL
-  : BLINK    +   
-      BEGIN +  \ Application example. 
 +  : BLINK  ( -- )    
 +    BEGIN 
         RED CSETB GREEN CCLRB 100 MS         RED CSETB GREEN CCLRB 100 MS
         RED CCLRB GREEN CSETB 100 MS         RED CCLRB GREEN CSETB 100 MS
-      KEY? UNTIL ; +    KEY? UNTIL   
 +    KEY DROP  ;  \ Consume last key to avoid terminal echo. 
 +     
 +Um so ein Applikation nach einem Reset des LaunchPad automatisch zu starten genügt es SAVE auszuführen. Es startet immer das letzte Wort. Also MAIN in diesem Fall: 
 +   
 +  \ SAVE last word as autostart routine. 
 +  : MAIN  ( -- )   
 +    BLINK  
 +    QUIT  \ Quit application to enter forth. 
 +     
 +    SAVE
  
-Um deine blink Applikation nach einem reset des LaunchPad automatisch zu starten genügt es SAVE auszuführen. +Man tut gut daran einen Ausstieg aus der App zu programmieren, um aus dem automatischen Modus jemals wieder heraus zu kommen, zurück ins ForthDie Phrase  
- +  BEGIN   <your_app>   KEY? UNTIL KEY DROP QUIT 
-Man tut gut daran irgend einen Ausstieg aus der app zu programmieren, um ins Forth zurück zu kommen. KEY? UNTIL macht das. Sonst ist ein WIPE fällig: S2+reset drücken.+ist beliebt um aus so einer Hauptschleife, wie MAIN, zur Tastatureingabe zurück zu kommen. Ohne solch einen definierten Ausgang würde die App ja für immer laufen. Nur noch zu stoppen durch harten Reset: S2+Reset drücken.
  
  
Zeile 238: Zeile 221:
  
 Falls du mit der MCU auf deinem LaunchPad vertrauter werden möchtes, könnten dir  [[.:4e4th:start:MSP430G2553_Experimente|grundlegende Experimente mit dem MSP430G2553]] weiter helfen.  Falls du mit der MCU auf deinem LaunchPad vertrauter werden möchtes, könnten dir  [[.:4e4th:start:MSP430G2553_Experimente|grundlegende Experimente mit dem MSP430G2553]] weiter helfen. 
 +
 +===== Dein Programm sichern =====
 +
 +Tippe einfach ''SAVE'' um dein Programm zu sichern. Es bleibt dann permanent im MSP430G2553 FLASH gespeichert.
 +
 +Mit Hilfe eines Programmers kann man das Flash auslesen, und das Image davon auf dem PC in eine Datei sichern. 
 +
 +Tippe ''WIPE'' um dein Programm wieder zu entfernen. Es kann auch entfernt werden, indem man die Taste S2 gedrückt hält und dann die Reset-Taste drückt. Dabei werden alle neuen Definitionen, also die eigenen Programme, gelöscht.  
 +
 +//Es gibt eine Besonderheit im Umgang mit dem FLASH in MSP430 MCUs: Das FLASH kann immer nur 1x beschrieben werden! Ist also nicht so komfortabel wie RAM oder FRAM. Praktisch gesehen bedeutet das Programmabstürze, wenn man es übersieht, das FLASH sauber zu löschen bevor man dort erneut speichert (compiliert). Oder anders ausgedrückt: Wenn ab IHERE kein $FF steht, kann man nichts dorthin speichern. Benutze WIPE um in frisches USER-FLASH zu erhalten. Das Forthsystem, der Kernel, bleibt erhalten, denn der Forth-Kernel im Flash ist geschützt - unkaputtbar :)
 +//
 +
 +===== Wenn nichts mehr geht =====
 +
 +Dann hilft nur noch den Forthkern erneut zu brennen. Das Ur-Image deines Forth hast du ja noch. 
 +
 +In Windows braucht es dazu nichts weiter als den Programmer aufzurufen und die dort schon eingestellte Quelle erneut in den chip zu brennen. zB mit AUTOPROG beim FET-Pro430 Programmer. Es muss nichts umgesteckt werden. 
 +
 +Der Programmer benutzt den Port USB HID00xx als Verbindung zum LaunchPad, die über die gleiche USB Verbindung realisiert ist wie die serielle zum Terminal. Das Terminal kann einfach geöffnet bleiben. 
 +
 +Beende den Brennvorgang im FET-Pro430 mit einem Klick auf das dortige "Reset". Dann wird die MCU freigegeben und dein 4e4th bootet sofort. 
 +===== Forth Kern selbst erstellen =====
 +
 +Wer den 4e4th-Forth-Kern bearbeiten will, kann das Projekt clonen. https://github.com/mikalus/4e4th05a
 +
 +Dort im Repository liegt das aktuelle Projekt. Die Beschreibungen (readme.430) wie man das Forth selbst herstellen kann, und der Quellcode (*.asm) um ein 4e4th05a.hex mit dem Naken Assembler zu machen, sind dabei.  
  
 ====== Voraussetzungen ====== ====== Voraussetzungen ======
Zeile 303: Zeile 312:
 Das Image 4e4th05a.hex findest du bei GitHub - siehe Abschnitt "Urladen". Es ist eine Datei im intel hex Format, die mit einem geeigneten Programmer in die MCU geladen werden muss. Das Image 4e4th05a.hex findest du bei GitHub - siehe Abschnitt "Urladen". Es ist eine Datei im intel hex Format, die mit einem geeigneten Programmer in die MCU geladen werden muss.
  
-== Windows XP und Windows 7 ==+== Windows XP7. 10 ==
  
 FET-Pro430 Lite version FREE. http://www.elprotronic.com/fetpro430.html FET-Pro430 Lite version FREE. http://www.elprotronic.com/fetpro430.html
 +(Update 08.08.2020: Nicht mehr ganz "free". Aber kostenlose "trial"-Version. Wird für TI's MSP430Fxx-Serien beworben, enthält aber auch deren ..Gxx-Serien. Sehr gutes tool. mk)
  
 Stelle das gewünschte Image ein (//open code file//) und den Pafd dorthin, wähle die richtige MCU aus (//Microcontroller Type//). Aktiviere das Kästchen //reload code file//. Wähle dann im Menue //setup connections// die passende Verbindung aus. Ebenfalls muss //setup, memory options// passend eingestellt sein. Für die MSP430G2553-MCU ist ganz wichtig, INFO-A Flash darf nicht überschrieben werden. Also das Kästchen bei //Retain Data in Flash, DCO constants in INFO-A// aktivieren. Wichtig wäre auch noch in //setup connections// die Option //Final Target Device action, reset and start the application program// zu aktivieren. Dann muss man das nicht mehr manuell auf der Hauptseite machen. Denn ohne den reset nach dem flashen läuft 4e4th nicht los. Ok, aber nun zurück zur Hauptseite, klicke dort //AUTOPROG// - fertig. FET-Pro430 merkt sich die Einstellung. Und wenn das Selbe nochmal geflasht werden soll, genügt fortan der einfache Klick auf //AUTOPROG//. Stelle das gewünschte Image ein (//open code file//) und den Pafd dorthin, wähle die richtige MCU aus (//Microcontroller Type//). Aktiviere das Kästchen //reload code file//. Wähle dann im Menue //setup connections// die passende Verbindung aus. Ebenfalls muss //setup, memory options// passend eingestellt sein. Für die MSP430G2553-MCU ist ganz wichtig, INFO-A Flash darf nicht überschrieben werden. Also das Kästchen bei //Retain Data in Flash, DCO constants in INFO-A// aktivieren. Wichtig wäre auch noch in //setup connections// die Option //Final Target Device action, reset and start the application program// zu aktivieren. Dann muss man das nicht mehr manuell auf der Hauptseite machen. Denn ohne den reset nach dem flashen läuft 4e4th nicht los. Ok, aber nun zurück zur Hauptseite, klicke dort //AUTOPROG// - fertig. FET-Pro430 merkt sich die Einstellung. Und wenn das Selbe nochmal geflasht werden soll, genügt fortan der einfache Klick auf //AUTOPROG//.
Zeile 379: Zeile 389:
 EXIT - nun ja, damit wird diese Anwendungsebene verlassen und der ausgelesene Speicherinhalt einfach nur verworfen.  EXIT - nun ja, damit wird diese Anwendungsebene verlassen und der ausgelesene Speicherinhalt einfach nur verworfen. 
  
-**!!Achtung!!** Es wird der komplette Flash-Speicher ausgelesen, also //auch// der Bereich Info-A. Der darf aber **NICHT** in die nächste MCU gebrannt werden, denn dort sind ja die Chip-spezifischen Eichdaten hinterlegt. Aber keine Sorge, der FET-Pro430 fragt nach ob Info-A tatsächlich überschrieben werden soll. Da wird der Info-A Bereich dann wieder ausgeklammert. +**!!Achtung!!** Es wird der komplette Flash-Speicher ausgelesen, also //auch// der Bereich Info-A. Der darf aber **NICHT** in die nächste MCU gebrannt werden, denn dort sind ja die Chip-spezifischen Eichdaten hinterlegt. Aber keine Sorge, der FET-Pro430 fragt nachob Info-A tatsächlich überschrieben werden soll, falls ihr das vorhaben solltetMacht man natürlich nicht, und so wird der Info-A Bereich dann wieder ausgeklammert. 
  
 Eingestellt wird das im FET-Pro430 //Setup// unter //Memory Options//. Wer will kann dort auch den //Read Address Range// selbst bestimmen. Statt //All Memory// gibt es dort verschiedene Optionen und auch die Möglichkeit einzelne Segmente auszuwählen.  Eingestellt wird das im FET-Pro430 //Setup// unter //Memory Options//. Wer will kann dort auch den //Read Address Range// selbst bestimmen. Statt //All Memory// gibt es dort verschiedene Optionen und auch die Möglichkeit einzelne Segmente auszuwählen. 
Zeile 387: Zeile 397:
 ===== POR Test ===== ===== POR Test =====
  
-Verbinde zwei Mingnon 1,5V Batterien zu 3V als externe Stromversorgung. An der Brücke J3 die jumper VCC, TEST und RST abziehen. Stecke dein 3V Batteriepack an die externe Versorgung des LaunchPad (J6). Danach kann man POR (power on/off) TestsTests machen ohne das der USB 'aussteigt'.+Verbinde zwei Mingnon 1,5V Batterien zu 3V als externe Stromversorgung. An der Brücke J3 die jumper VCC, TEST und RST abziehen. Stecke dein 3V-Batteriepack an die externe Versorgung des LaunchPad (J6). Danach kann man POR (power on/off) Tests machenohne das der USB 'aussteigt'.
  
  
Zeile 450: Zeile 460:
 ====== Danksagung ====== ====== Danksagung ======
  
-Ich danke Brad Rodriguez für seine grundlegende Arbeit des CamelForth. Und Dirk Brühl für seine unermüdliche und selbstlose Förderung des 4E4th Projektes, indem er die Hardware beschaffte für viele Tester in der Forth Gesellschaft, und mit seinen Ideen und Tips ermutigte weiter zu machen bis das CamelForth auf dem LaunchPad stabil lief.+Ich danke Brad Rodriguez für seine grundlegende Arbeit des CamelForth. Und Dirk Brühl für seine unermüdliche und selbstlose Förderung des 4E4th Projektes, indem er die Hardware beschaffte für viele Tester in der Forth Gesellschaft. Und mit seinen Ideen und Tips mich ermutigte weiter zu machenbis das CamelForth auf dem LaunchPad stabil lief.
 mk 14.03.2012 mk 14.03.2012
  
-Und allen die seit der Forthtagung 2012 Anfang März halfen das 4e4th zu debuggen. mk 30.03.2012 +Und sodann gilt mein Dank allendie seit der Forthtagung 2012 Anfang Märzhalfendas 4e4th zu debuggen.  
 +mk 30.03.2012 
  
 ====== Links ====== ====== Links ======
Zeile 472: Zeile 483:
 ====== Revisons-Geschichte ====== ====== Revisons-Geschichte ======
  
-3/2017: 4e4th Release0.34 wird von mir (mk) nicht mehr unterstützt! +4/2018: Inzwischen gibt es ein 4e4th05a. Es baut auf CamelForth 0.5a auf, assembliert mit dem Naken Assembler. Das es nun den Nachfolge-Release doch gibt, ist Juergen Pintaske zu verdanken. Er hat unermüdlich dafür gesorgt, Literatur dafür zusammenzustellen, um Forth erfolgreich lernen zu können. Da wäre es doch zu schade gewesen, wenn all die Dokumentation zum 4e4th nun unbrauchbar geworden wäre. Wer will, kann es also nun weiter benutzen. {{:projects:4e4th:4e4th05a-master.zip|4e4th05a-master.zip (naken_asm version)}} (mk) 
 + 
 +3/2017: 4e4th Release0.34 wird von mir (mk) **nicht** mehr unterstützt! 
  
 Das hat mehrere Gründe:  Das hat mehrere Gründe: 
Zeile 478: Zeile 491:
   * Camelforth, und damit auch 4e4th, wurde erstellt in der IAR Embedded Workbench, eine proprietäre Software, die seither immer wieder verändert worden ist. Damit kann man (ich) nicht Schritt halten in der "freien" Version davon.    * Camelforth, und damit auch 4e4th, wurde erstellt in der IAR Embedded Workbench, eine proprietäre Software, die seither immer wieder verändert worden ist. Damit kann man (ich) nicht Schritt halten in der "freien" Version davon. 
   * Das Projekt lag auf einem Server der Forth-Gesellschaft und war in einem SVN-Repository angelegt. Neuere SVN-Versionen waren damit nicht mehr kompatibel.     * Das Projekt lag auf einem Server der Forth-Gesellschaft und war in einem SVN-Repository angelegt. Neuere SVN-Versionen waren damit nicht mehr kompatibel.  
-  * Der Versuch das nach sourceforge zu bringen ist auch gescheitert, weil dann auch diese Plattform kommerzialisiert worden ist und nicht mehr taugt. (Nachtrag 4/2018: Es liegt nun auf GitHub.)+  * Der Versuch das nach sourceforge zu bringen ist auch gescheitert, weil dann auch diese Plattform kommerzialisiert worden ist und nicht mehr taugt. (Nachtrag 4/2018: Es liegt nun auf GitHub. 3/2022: Und hier nun auch: {{:projects:4e4th:4e4th034---snapshot-master.zip|4e4th034---snapshot-master.zip (IAR version)}}. Es gab damals auch eine Version für den eZ430 als Forth Projekt in der IAR Kickstart IDE, assembler release (snapshot): {{:projects:4e4th:4e4th034-ez430-master.zip}})
   * Alles in allem komme ich da nicht mehr hinterher. Drum ist damit nun einfach Schluß.       * Alles in allem komme ich da nicht mehr hinterher. Drum ist damit nun einfach Schluß.    
  
-Leute, nehmt **noForth**, das ist gut gepflegt, genauso klein und auch noch besser konzipiert alles in allem - das hat mir gut gefallen! +Leute, nehmt **noForth**, das ist gut gepflegt, genauso klein und auch noch besser konzipiert alles in allem - das hat mir gut gefallen! (mk)
  
 http://home.hccnet.nl/anij/nof/noforth.html http://home.hccnet.nl/anij/nof/noforth.html
- 
-4/2018: Inzwischen gibt es ein 4e4th05a. Es baut auf CamelForth 0.5a auf, assembliert mit dem Naken Assembler. Das ist aus Gründen der Kompatibilität zu existierender Literatur erfolgt. Wer will kann es nun benutzen. Das ganze Projekt findest du auf https://github.com/. 
- 
-(mk20180511) 
  
projects/4e4th/start.1526041948.txt.gz · Zuletzt geändert: 2018-05-11 14:32 von mka