Benutzer-Werkzeuge

Webseiten-Werkzeuge

Übersetzungen dieser Seite:

projects:4e4th:start




!!! Achtung: Steck die beiden Jumper für den UART richtig herum !!! Anleitung

4E4th

4E4th ist kleines Forth das auf dem Texas Instruments LaunchPad abläuft. Es steckt in der MCU MSP430G2553.

Du kommunizierst mit dem 4E4th mit Hilfe eines Zeilen Editors der über einen Terminal Emulator betrieben wird.

4E4th1) basiert auf der MSP430 CamelForth version 0.5a von B. J. Rodriguez, welches er für das TI MSP430-Launchpad geschrieben hatte. http://www.camelforth.com/

Es ist ein ANS Forth, und belegt knapp 8K im FLASH der MSP430G2553 MCU. Weitere 8K sind frei für eigene Experimente.

4E4th ist, wie das CamelForth auch, freie Software (GNU General Public License).

Im folgenden Text beziehen sich alle Angaben zur Hardware auf das TI LaunchPad MSP-EXP430G2 Rev.1.5

Urladen

  • Du hast ein LaunchPad mit der TI MSP430G2553 MCU drauf und 4e4th inside. Dann brauchst du nichts weiter zu tun.
  • Du hast ein eigenes LaunchPad mit einem MSP430G2553 drauf. Dann musst du dir das 4e4th Image 4e4th05a.hex im Intel Hex Format besorgen und in den chip brennen. Wie das geht steht im Abschnitt Programmer weiter unten.

Das LaunchPad richtig einstellen!

Ab Rev1.5 verfügt das LaunchPad über TX und RX Brücken die 90° gedreht werden können. Ausgeliefert wird in der SW UART Stellung. Stelle um auf die HW UART Position (quer), weil 4E4th den Hardware UART des MSP430G2553 benutzt.

Die älteren Versionen Rev1.3 und Rev1.4 benötigen ein kurzes gekreutztes Kabel an Stelle der beiden Jumper.

Welches Terminal nehmen?

Stelle dein Terminal auf 9600 8N1 ein.

 9600 baud
 8N1:     8 Datenbits, kein parity bit, 1 Stoppbit
 hardware flow control: OFF
Windows XP, 7, 10

LaunchPad Windows USB Treiber müssen installiert sein! Ab Win7 sollte das kein Problem mehr sein.

Siehe Abschnitt Voraussetzungen.
Vergleiche Dokument slau278h.pdf bei TI.COM, S.139, Hardware Installation Guide. 
  • TeraTerm leistete gute Dienste. http://www.heise.de/download/teraterm-pro.html
  • HyperTerminal leistete ebenfalls gute Dienste. Einstellungen beachten: Kein extra LF am Zeilenende einfügen lassen! - Leider ist es nicht mehr Bestandteil des Betriebssystems ab Win7.
  • Die 4e4th-IDE ist ein Terminal mit Entwicklungsumgebung spezielle für Forth Anwendungen.
Mac OS X

LaunchPad Mac OS X USB Treiber (CDC /VCP) müssen installiert sein!

MSP430LPCDC 1.0.3b.pkg - ab Mac OS X Version 1.5
http://code.google.com/p/msp430lpcdc/downloads/detail?name=MSP430LPCDC%201.0.3b.pkg&can=2&q=
Weitere Infos unter
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_Mac_OS_X
  • ZTerm
Seetings>Modem Preferences...  Serial Port (uart-40FF42C59D89223A oder ähnlich auswählen)
Settings>Connection... Data Rate 9600
  • Kermit
% kermit
kermit> set line /dev/tty.uart-40FF42C59D89223A  oder ähnlich
kermit> set speed 9600
kermit> connect
  • Screen müsste auch gehen
% screen /dev/tty.uart-40FF42C59D89223A 9600

o.ä. Beenden via Ctrl+<a> , <k>

Linux

Scheint ohne spezielle Treiber zu gehen auf:

 Debian squeeze, auf i386 und auf PPC (Gerald).
 Ubuntu 10.04 LTS - Lucid Lynx i686 Desktop PC (Martin)
 Ubuntu 11.04 - Natty Narwhal i386 Laptop HP Compaq 615 (Martin)

Je nach Terminalprogramm:

% gtkterm -p /dev/ttyACM0
% screen /dev/ttyACM0 9600
% minicom -D /dev/ttyACM0 -b 9600 -o -w 

(evtl. flow control noch per Menü deaktivieren)

Oder gleich e4thcom-0.3.3.tar.gz nehmen. Bedienung und Eigenschaften des e4thcom-Terminals wurden neulich im Forth Magazin „Vierte Dimansion“, Heft 4/2013, besprochen - VD 2013-04

Starten

Schließ das Launchpad mit dem USB Kabel an den Rechner an. Die USB Verbindung versorgt das LaunchPad mit Strom und ist gleichzeitig die serielle Schnittstelle zu deinem Terminal.

[Das es auch wireless, also drahtlos, geht zeigte Vitaly neulich (30.03.2016)]

Dein 4e4th im LaunchPad startet von selbst, sobald der Strom eingeschaltet wird (beide LEDs gehen an). Du kannst 4e4th erneut starten durch drücken des Reset Tasters.

4e4th startet automatisch im zuletzt gesicherten Zustand. Um den Lieferzustand zu erzwingen halte Taster S2 gedrückt und drücke dann Reset. Die USB-Verbindung dient auch dazu den Prozessor neu zu FLASHen.

Achtung: USB kann manchmal trickreich sein. Es ist wichtig, dass die USB-Verbindung vom Rechner erkannt wird. Bei Windows ist es so, dass es eine Klangfolge gibt, wenn eine neue Verbindung erkannt wird, und eine Klangfolge, wenn der USB-Stecker abgezogen wird. Wenn darauf nicht geachtet wird, klappt die Verbingung nicht, weil das Terminalprogramm die USB-Schnittstelle dann nicht erkennt. Das gilt auch fuer den USB Treiber von Texas Instruments MSP-FET430UIF. Also: Lautsprecher einschalten und auf die Klangfolge achten, und danach erst Terminal starten!

Mit dem 4E4th kommunizieren

Stelle dein Terminal auf 9600Baud 8N1 ein. Drücke einige male die Eingabe Taste <ret>. 4E4th antwortet mit ok2) (Jede Eingabe muss immer mit drücken der Eingabetaste beendet werden).

Um mit dem 4e4th vertraut zu werden tippe mal ein:

 red cclrb
 red csetb

oder

 green cclrb
 green csetb

und natürlich <Enter> auch. Die rote oder grüne LED wird leuchten, je nach dem.

Gebe ein

 11 22 33

Die Antwort ok zeigt, dass die Eingabe auf den Datenstack erfolgt ist - sobald du <Enter> gedrückt hast.

Gebe .s ein (ein Punkt und ein „s“). 4e4th zeigt was nun auf dem Stack liegt.

4E4th beherrscht verschiedene Zahlenbasen. Es startet in DECIMAL, d.h. alle Zahleneingaben werden dezimal interpretiert. Willst du Zahlen im Hexalsystem haben, kannst du mit HEX darauf umschalten. DECIMAL schaltet zurück. Man kann die Eingaben in Grossbuchstaben oder klein geschreiben machen.

Hier ein weiterer Test:

 : TEST ." Ich bin da " ; 

ok zeigt wie mmer an, das deine Eingabe angenommen wurde. Du hast soeben einen neuen Befahl erzeugt. Und dieser wurde dem Forthsystem hinzugefügt.

Nun tippe

TEST <enter> 

und schau was dieser Befehl macht. Du hast gerade gelernt, dass ein neuer Befehl mit : beginnt und mit ; beendet wird.

Weitere Beispiele sind im Forth Tutorial „Starting Forth online edition“ gegeben. http://www.forth.com/starting-forth/

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

Speicher

SAVE ( -- )  Sichert den hinzugetippten Stand. Stacks unverändert. Aktuelle uarea gesichert.
Das zuletzt definierte Wort startet nach SAVE automatisch, ist die APP sozusagen.
WIPE ( -- )  Zurück auf den Lieferzustand. Stacks unverändert. uarea im Lieferzustand.

Peripherie - Port1

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
RED         ( -- m adr )        red 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 

Das vollständige Wörterbuch deines Forth findest du im Glossary.pdf

Ein gute Quelle um mit den bits vertraut zu werden ist: http://www.forth.org/svfig/Len/bits.htm

Wie schaltet man eine LED an und wieder aus?

Beide LEDs sind am Port1 der MCU angeschlossen.

P1.0 = LED1 = rot
P1.6 = LED2 = grün

Mit den Forth Worten csetb und cclrb kann der Port1 bit-weise bedient werden. csetb erwartet eine Bit-Maske auf dem Stack. cclrb ebenso. So eine Maske ist ein Byte in dem die Bits gesetzt sind. Die Forth Worte red und green legen die passende Maske und die richtige Adresse auf den Daten-Stapel, den stack.

red     mask = 0x01 = 00000001 
green   mask = 0x40 = 01000000

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.
GREEN CCLRB    --> grüne LED geht aus. 
RED   CSETB    --> rote LED geht an.
GREEN CSETB    --> grüne LED geht an.

Um die LEDs blinken zu lassen kannst du so etwas machen:

DECIMAL

\ Application example.
: BLINK  ( -- )   
  BEGIN 
      RED CSETB GREEN CCLRB 100 MS
      RED CCLRB GREEN CSETB 100 MS
  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

Man tut gut daran einen Ausstieg aus der App zu programmieren, um aus dem automatischen Modus jemals wieder heraus zu kommen, zurück ins Forth. Die Phrase

BEGIN   <your_app>   KEY? UNTIL KEY DROP QUIT

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.

Beispiele und Experimente

Es braucht nicht viel um mit dem LaunchPad zu experimentieren...Eine Sammlung von hübschen Beispielen in 4e4th auf dem LaunchPad entsteht hoffentlich nun so nach und nach. Ihr könnt Eure Beispiele dort anfügen.

Experimente mit booster packs können sich hier versammeln, käufliche wie eigene.

Falls du mit der MCU auf deinem LaunchPad vertrauter werden möchtes, könnten dir 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

Um mit der MCU auf dem LaunchPad überhaupt kommunizieren zu können, muss auf deinem Rechner ein Terminal Emulator („Terminal“) vorhanden sein. Auch ein Programmer ist nötig, wenn der chip neu geflasht werden muss. Diese Programme benötigen die richtigen Treiber für das LaunchPad. Diese müssen zuvor in deinem Betriebssystem installliert worden sein.

Texas Instruments (TI) geht davon aus, das man seine MCUs auf dem LaunchPad in C oder Assembler programmiert. Dafür gibt es integrierte Entwicklungsumgebungen (IDE). TI hat bisher (3/2012) keine eigene kostenlose IDE. TI nennt den IAR „Kickstart“ und den CodeComposer als Werkzeuge. Beide Systeme sind proprietär und man kann sie kaufen. Es gibt von beiden kostenlose limitierte Versionen zum runterladen. Der CodeComposer hat eine Zeitbegrenzung. IAR kickstart hat eine Mengenbegrenzung auf 4K große Projekte.

Ich bevorzuge freie Software dafür. Daher ist 4e4th05a im Naken Assembler verfasst.

Treiber

Windows 7

TI bietet in einem Projekt für den Launchpad eine exe für die Installation an. http://www.ti.com/litv/zip/slac490 Holt man sich diesen Ordner ist darin der Unterordner LaunchPad_Driver mit den drei Dateien 430cdc.cat, 430cdc.inf und LaunchPad_Driver.exe. Führe diese exe in dem Ordner aus (Doppelklick). Die exe meldet nichts und ist sofort fertig, aber danach wird das LaunchPad richtig erkannt und ist betriebsbereit. Die exe funktioniert für 32 und 64 bit Systeme. [Der Link zum slac490 ist wohl tot (1.10.2014). Alternative Vorgehensweise: s.unten. Windows7 hat bei mir hier selbst gemerkt welcher Treiber gebaucht wird und den automatisch installiert. mk]

Stöpsel ein LaunchPad an den USB, es sollte sich nun betriebsbereit melden. Im Gerätemanager nachsehen. Dort sollte nun unter den Anschlüssen ein COMx-Port aufgeführt sein der „MSP430 Application UART“ heißt.

Quelle: http://e2e.ti.com/support/microcontrollers/msp43016-bit_ultra-low_power_mcus/f/166/t/105756.aspx

Alternative Quelle
 LaunchPad_Driver.zip im www.forth-ev.de download Bereich unter sonstiges.
 http://www.forth-ev.de/filemgmt/singlefile.php?lid=410
Alternativer Weg
  1. Unten links auf dem Windows 7 Desktop auf das Windows Icon klicken. Das öffnet die Systemsteuerung.
  2. Geräte und Drucker öffnen
  3. Launchpad einstöpseln (Es erscheint ein neues Icon mit gelbem Ausrufezeichen.)
  4. Klick dadrauf. Ein Fenster: „Eigenschaften von Texas Instruments MSP-FET430UIF“ öffnet sich.
  5. Dessen Reiter „Hardware“ öffnen und unten rechts den Button Eigenschaften anklicken.
  6. Ein weiteres Fenster: „Eigenschaften von HID-konformes Gerät“ öffnet sich.
  7. NICHT sofort auf den Reiter „Treiber“ klicken, sondern zuerst den
  8. Button „Einstellungen ändern“ anklicken. Jetzt öffnet sich (fast) das gleiche Fenster nochmals.
  9. dort jetzt „Treiber“ auswählen.
  10. Treiber aktualisieren, auf dem Computer nach Treibersoftware suchen, zum Ordner gehen, der die *inf Datei enthält, weiter!
  11. Dann geht alles wie von selbst. (Martin)

Hinweis: Diese inf Datei enthält lediglich ein Skrip darüber, was Windows zu tun hat, damit ein virtueler COM Port für das LauchPad an einer USB Schnittstelle eingerichtet wird. Ein inf Datei kann man nicht direkt ausführen.

Windows XP

Mit dem Hardware Wizard oder dem Geräte-Manager die Datei WinDriver_for_TI-LaunchPad_USB_serial.inf suchen und ausführen lassen. Damit wird ein USB-serieller virtueller COM Port für das Launchpad bereit gestellt wird. Diese inf Datei ist hier verfügbar: http://www.forth-ev.de/repos/CF430G2553/

Es soll auch mit der exe gehen die oben in Win7 genannt ist.

Siehe auch Dokument slau278h.pdf bei TI.COM, S.139, Hardware Installation Guide. 

Linux

Die Verbindung von TI LaunchPad und 4e4th lief ohne weiteres auf einer Reihe von Plattformen.

Mac OS X (Intel)

(Es liegen bisher keine erfolgreichen Erfahrungen vor. Stand: 25.02.2012 mk)

Programmer

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

FET-Pro430 Lite version FREE. http://www.elprotronic.com/fetpro430.html

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.

Hier screen shots davon:

FET-pro430 Hauptseite FET-pro430 Memory Options FET-pro430 Reset Option

Linux

Lade das Image (HEX-Datei) mit dem Flasher-Programm mspdebug auf das Launchpad (Version 0.19 oder später, http://mspdebug.sourceforge.net/).

$ sudo mspdebug rf2500 "prog 4e4th05a.hex"

Unter Linux meldet sich das TI Launchpad meist unter /dev/ttyACM0 jedoch kann es sein, das bei modernen Linux Systemen Hintergrundprogramme (wie der ModemManager) sofort diese Schnittstelle belegen und versuchen das LaunchPad als Modem anzusprechen (Siehe Linux today: too much plug and play; http://fedetft.wordpress.com/2011/01/07/linux-today-too-much-plug-and-play/). (cas)

Mac OS X (Intel)

Es gibt eine Gruppe die tools zusammen stellt. http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_Mac_OS_X

Quelltext Upload via Terminal

Zu den Terminal-Programmen wurde weiter oben schon einiges geschrieben. Neben den allgemeinen Terminals sind derzeit Forth spezifische Terminals in der Entwicklung.

  • Unter Windows gibt es das TeraTerm. Quelltext markieren, kopieren und ins Teraterm-Fenster per rechter Maustaste einfügen, das wirkt wie eingetippt. Für mich ist das der überschaubarste Weg: Quelltext mit Notepad++ editieren, gewünschtes Schnipsel markieren, und schwups ins TeraTerm fallen lassen. TeraTerm ist auch in der Lage Makros auszuführen. Mit einem Forth spezifischen Macro wird erreichen, Quelldateien mit Rücksicht auf das 4e4th im Micro zu senden. Dabei wir zeilenweise gesendet und dann gewartet bis das Forth mit der Übersetzung fertig ist. Erst danach kommt die nächste Zeile.
    TeraTerm macro für Forth
  • Unter Linux gibt es das minicom. Via Ctrl+<A>, <S> öffnet man den „Send file“ (Datei senden) Dialog. Für das Senden kann man beliebige Hilfsprogramme verwenden, die via Ctrl+<A>, <O>, Eintrag „File transfer protocols“ konfiguriert werden. Ein kleines Tcl-Script ermöglicht das Senden von Forth-Quellen mit Flusskontrolle:
    Quellenupload-Script für minicom.
    Die zugehörigen Einstellungen müssen so aussehen:
      J  4e4th      /path/to/minicom-4e4th-up   Y    U    N       Y       Y  

    Außerdem müssen unter Ctrl+<O>, „Serial Port Setup“ die Flow-Control Optionen deaktiviert sein, ansonsten werden die XON-Zeichen von minicom aufgegessen, bevor das Skript sie sehen kann.

  • Sowohl unter Linux, Windows und Mac kann folgendes Tcl-Script zum Hochladen von Quelltexten genutzt werden:
    #! /usr/bin/tclsh
    set uart /dev/ttyACM0
     
    set h [open $uart r+]
    fconfigure $h -mode 9600,n,8,1 -handshake none -timeout 1000 \
        -translation cr -buffering none
     
    foreach name $argv {
        foreach line [split [read [open $name r]] "\r\n"] {
    	puts -nonewline $h "$line\r"
    	while {[string compare [set c [read $h 1]] "\x11"]} {
    	    puts -nonewline stderr $c
    	}
        }
    }


    Der Name des Seriellen Ports unter set uart muss unter Windows oder Mac jeweils noch angepasst werden (Windows: com123, Mac: ??).
    Die Nutzung ist denkbar einfach:

     $ ./4e4th-up sourcefile...

    (Unter Linux das chmod a+x nicht vergessen!)

Speicher auslesen und kopieren

Vervielfältige dein fertiges Programm ohne immer wieder den Quellcode compilieren zu müssen.

Windows XP und Windows 7

Die FET-Pro430 Lite version FREE http://www.elprotronic.com/fetpro430.html kann auch eine Kopie des kompletten Flash machen.

Klicke im FET-Pro430 in der rechten Spalte unten auf den Knopf READ/COPY. Das ist schon alles.

Es wird der komplette Speicher der MCU ausgelesen und in einem neuen Fenster als Text gezeigt, in Form eines Hex-dump. Der Speicherinhalt - das „image“ - wird dabei zeilenweise dargestellt. Zuerst die Adresse in hexadecimaler Form, dann 2×8 Bytes Speicherinhalt, ebenfalls in hexadecimal, und dann noch der Ascii-Wert der Speicherinhalte.

... da liegt der READ/COPY Button So sieht ein Hex-Dump vom Speicherinhalt aus - also das "image"

Das neue Fenster mit dem Hex-Dump hat einige Knöpfe in der unteren Reihe. Damit kann der Flashspeicherinhalt dann auch gleich in eine Datei gesichert werden.

TI_hex_(*.txt) sichert den Hex-dump im TI-Format. Damit können dann später weitere MCUs geflasht werden. Diese Datei enthält Ascii-Text und kann in dieser Form leicht weiter gegeben werden. Der Programmer kann dieses Format einlesen und eine MCU damit flashen. Auch andere TI-Werkzeuge und IDEs können damit dann was anfangen.

COPY legt eine ebensolche Datei an, aber übernimmt darüber hinaus die Datei sofort in den Schreibpuffer des FET-Pro430, damit der nächste chip unmittelbar gebrannt (pardon: geflasht bzw programmed) werden kann - ein Klick auf AUTO PROG reicht dann für die Serienfertigung.

INTEL_(*.hex) sichert den Speicherinhalt im gängigeren Intel-hex-Format, damit der Inhalt auch an andere Programmer weiter gegeben werden kann, in Linux z.B. Hierbei wird der Inhalt im Intel-Hex-Format in den NOTEPAD geschrieben. Dort kann man dann bestimmen wohin und unter welchem Namen die Datei abgelegt werden soll. Windows 7 fügt dabei leider immer .TXT an, so dass dann die Datei MYNAME.HEX.TXT heißt, und mit dieser Endung vom FET-Pro430 nicht mehr eingelesen werden kann. Du musst also doch noch mal ran und die Datei umbenennen in MYNAME.HEX - also das .TXT wieder entfernen, dann gehts.

Der Knopf NOTEPAD übernimmt den angezeigten Hex-Dump in den Editor gleichen Namens. So kann man den Dump kommentieren und dokumentieren.

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, falls ihr das vorhaben solltet. Macht 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.

Tip & Tricks

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) Tests machen, ohne das der USB 'aussteigt'.

Problembehandlung

Endlos-Reset

Martin Bitter schreibt:

Unter nicht ganz erklärlichen Umständen kann es vorkommen, dass das Forth im Launchpad nicht tut was es soll. Das kann sich darin äußern, dass es in einer Endlosschleife seine Startmeldung ausschickt. Unter Windows ist das sehr schön im z.B. TerraTerm zu sehen. minicom unter Linux kann dies auch anzeigen, gelegentlich verweigert es auch völlig seine Mitarbeit und bricht mit der Meldung: „Datei oder Verzeichnis nicht gefunden“ schon beim Verbindungsaufbau ab. Hier haben bisher folgende Maßnahmen geholfen: ein Hardreset d.h. Drücken von S2 und dem Resetknopf gleichzeitig oder sehr langes Drücken (1 Minute) des Resetknopfes.

Antwort: Der Fehler trat auf nach flashen der MCU mittels mspdebug. Dieser Endlos-reset passierte, weil die user area im infoB nicht mit dem code im user flash (ab 0xC000) übereinstimmte. Der „Hardreset“, bei dem erst S2 gedrückt und gehalten wird, und dann S1 reset betätigt wird, behebt das Problem - es zwingt 4e4th in den Lieferzustand.

Es scheint mspdebug kann das flash im infoB nicht schreiben, wenn infoA geschützt ist.

Einstellung für das mspdebug (folgt noch)

Geisterzeichen

In meinem Terminal erscheinen Geisterzeichen. Wie kommt das? Geisterzeichen

A: Du hast den debug-mode in deinem Terminal an geschaltet. Dann werden auch Steuerzeichen dargestellt. Das kleine Kästchen mit dem 0011 drin besagt das 0x11 von 4e4th an dein Terminal gesendet worden ist. 0x11 bedeutet XON.

Der debug-mode in TeraTerm wird durch shift-esc aktiviert. Drücke nochmal shift-esc um die Ausgabe im hex dump zu sehen. Und nochmal um die ausgabe ab zu schalten. Und nochmal um wieder zur normalen Darstellung der Ausgabe zu gelangen.

 debug-mode in TeraTerm
 1x shift-esc = Steuerzeichen sichtbar:   11 22 33 . . .  33 22 11 ok ^Q^M^J ok ^Q^M^J ok
 2x shift-esc = hex dump der Ausgabe:     11 22 33 . . . 20 33 33 20 32 32 20 31 31 20 6F 6B 20 11 0D 0A  ok

Kein Reaktion im Terminal

TeraTerm

Windows XP stellt dem Terminal die USB Verbindung nicht bereit.

Wenn der PC zusammen mit dem LaunchPad gestartet wird (LaunchPad noch eingestöpselt am USB), hält Windows das LaunchPad zunächst für eine Maus. Erst nach einer Weile bemerkt es seine Irrtum und gibt den ComPort wieder her. Das führt dazu, dass man vom Terminal aus zunächste keine Verbindung zum LaunchPad bekommt, nach einer Weile dann aber doch. Abhilfe: LaunchPad erst an den USB anstecken wenn der PC schon läuft.

 A Verbindungsaufbau
   1. LaunchPad an den USB anstöpseln. Den Antwortton von Windows abwarten.
   2. TeraTerm öffnen. 
 B Verbindungsabbau
   1. TeraTerm schließen.
   2. LaunchPad abstöpseln.
 

Wenn ich das LaunchPad vom USB abstöpsel während TeraTerm noch läuft, bleibt die Verbindung der beiden gestört. Hotplug geht also nicht. Da hilft bisher nur TeraTerm schließen. Danach (!) LaunchPad vom USB abziehen, Tonfolge abwarten, wieder dran stecken, Tonfolge abwarten, dann Terminal öffnen.

In Verbindung mit dem FET-Pro430 Programmer ist es ebenso, Reihenfolge beachten. Ich hab gute Erfahrungen damit gemacht, erst das Terminal zu verbinden und dann den Programmer. Die MCU ließ sich dann anstandslos flashen auch bei laufendem Terminal. mk

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 mich ermutigte weiter zu machen, bis das CamelForth auf dem LaunchPad stabil lief. mk 14.03.2012

Und sodann gilt mein Dank allen, die seit der Forthtagung 2012 Anfang März, halfen, das 4e4th zu debuggen. mk 30.03.2012

Links

Revisons-Geschichte

3/2017: 4e4th Release0.34 wird von mir (mk) nicht mehr unterstützt!

Das hat mehrere Gründe:

  • Ich bin nun schon 66 Jahre alt und das alles wird mir zu viel.
  • 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.
  • 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.)
  • 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!

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 es nun den Nachfolge-Release doch gibt, ist Juergen Pintaske zu verdanken. Er hat unermüdlich dafür gesorgt, Literatur existiert, 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. https://github.com/.

(mk20180511)

1)
4e4th05a Mai 2018
2)
ok ist der „Prompt“. Im 4e4th steht da auch immer die aktuelle Zahlenbasis davor.
projects/4e4th/start.txt · Zuletzt geändert: 2018-05-14 09:38 von mka