SmallForth für K1 - Revision 2

Bei dem SmallForth für den K1 handelt es sich um eine kleine FORTH-Version nur für RAM.
Hier ist die Revision 2 mit folgenden Änderungen:
  • Der Targetcompiler verbindet EXIT mit dem vorherigen Befehl, wenn möglich
  • Das UFM-Flash (32KByte) des MAX10 kann für Autostart-Programme verwendet werden

  • Es gibt einige zusätzliche Befehle, um die 32KByte UFM-Flash des MAX10 zu nutzen.
    Bitte beachten, dass der UFM-Speicher nur als 32Bit-Wort - also 2 16-Bit-Werte bearbeitet werden kann.
    Die angegebene Adresse wird deshalb auf die nächst kleinere 32-Bit-Adresse abgerundet.
        ERASEU ( -- )               - Löscht die 32KByte UFM-Flash
        SAVEU  ( -- )               - Speichert das aktuelle Programm im UFM-Flash
        DUMPU  ( addr len -- )      - Listet den UFM-Speicher
        2@U    ( addr -- low high ) - Lesen des UFM-Speichers (letzte beiden Bits der Adresse müssen 0 sein)
        2!U    ( low high addr -- ) - Schreiben des UFM-Speichers (Speicher muss vorher gelöscht sein)
       
    Hier ein Beispiel für ein Autostart-Lauflicht:
        : Lauflicht   0 BEGIN dup leds !  1+  100 ms  button? UNTIL drop  quit ;
        ' Lauflicht  'init !
        saveu
       
    Bei jedem Reset wird nun das Lauflicht gestartet.
    Drückt man den Taster bei den LEDs während des Einschalten oder mit der Reset-Taste, wird das Orginal-Forth gestartet.

    Sourcen

  • Revision 2 - SmallForth Projekt mit Targetcompiler und Sourcen (ZIP)
  • Revision 1 (ZIP)

  • Das ZIP-Projekt enthält folgenden Files:

    Allgemeine Informationen:
  • TC16_K1_SMAF_Info.txt - Beschreibt Befehlssatz

  • Notwendige Tools:
  • mcFSimVP32.exe - Der Windows-Simulator für den virtuellen Prozessor VP32 genutzt bei MCF-Files
  • mcf32d.mcf - Das mcForth für den Simulator
  • mcFEdWin.exe - Ein Screeneditor
  • mcf2hex16.scr - Sourcen für die Umwandlung von Image-Files zu HEX-Files (für Quartus)
  • mcf2hex16.mcf - Das kompilierte Umwandlungsprogramm

  • Targetcompiler:
  • tc16_k1_make.bat - Batch-Datei zur Erzeugung des Targetcompilers
  • tc16_k1.scr - Der 16-Bit Targetcompiler
  • k1_tasm.scr - Target-Assembler enthält die Befehle des Prozessors
  • tc16_core.scr - Zusatzroutinen für den Targetcompiler
  • tc16_k1.mcf - Der generierte Targetcompiler

  • Das SmallForth für den K1:
  • smaf_make_k1.bat - Batch-Datei zur Erzeugung des SmallForth
  • smaf_k1.scr - Sourcen des SmallForth für den K1
  • smaf_k1.lst - Erzeugtes Listing
  • smaf_k1.mcfh - Headerfile (nicht genutzt)
  • smaf_k1.img - Binary des SmallForth für K1
  • image.hex - Image des SmallForth für Quartus

  • Simulator-Files:
  • k1_sim.bat - Batch-Datei zur Nutzung des Simulators - startet das SmallForth
  • k1_sim.scr - Sourcen für den Simulator

  • Erstes Testprogramm:
  • k1_test_make.bat - Batch-Datei zur Erzeugung des Testprogrammes (Achtung: überschreibt image.hex)
  • k1_test.scr - Sourcen des Testprogrammes
  • k1_test.lst - zugehöriges Listing
  • k1_test.mcfh - Headerfile (nicht genutzt)
  • k1_test.img - zugehöriges Binary

  • Weitere Programme:
  • smaf_ans_tester.f - ANS-Tester zur Befehlsüberprüfung
  • LIS3DH_Test.f - Erstes Demo zur Abfrage des Beschleunigungssensors
  • max1000_ufm.f - Testprogramm für Zugriff auf UFM-Flash des MAX10

  • Anleitung

    Für die Erstellung des SmallForth wird mcForth genutzt.
    Aktuell wird für mcForth auf dieser Webseite eine Infineon XMC1xxx-Version und ein Windows-Simulator unterstützt.
    Deshalb ist in diesem Projekt mit mcFSimVP32.exe der entsprechende Simulator und das Image mcfvp32d.mcf enthalten.

    Targetcompiler:
    Der Targetcompiler wird am einfachsten mittels der Batch-Datei tc16_k1_make.bat gestartet.
    Dieses erzeugt dann das Image für den Targetcomilier - auch wieder für den Simulator.
    Da alle Sourcen vorhanden sind, können selbst auch Optimierungen oder Änderungen eingebaut werden.

    SmallForth:
    Das SmallForth selbst wird ebenfalls mittels einer Batch-Datei (smaf_make_k1.bat) generiert.
    Da die Ausgabe mit vollständigem Trace in eine LST-Datei umgeleitet wird, kann man Fehler nicht sehen.
    Sollte die Batch-Datei nicht beendet werden, dann einfach BYE eingeben und das smaf_k1.lst-File ansehen.
    Für interaktiven Aufruf einfach die Zeile aus der Batch-Datei ohne ">..." ausführen.
    Wichtig: In dem Listing gibt es auch eine Zeile mit "Unresolved:" - diese muss leer sein.

    Simulator:
    Nützlich ist bei Änderungen im SmallForth der Simulator.
    Er wird durch die entsprechende Batch-Datei gestartet und führt das image.hex aus.
    Der Simulator kann mit ESC unterbrochen werden und dann mit x beendet werden.
    Single-Step, Breakpoints und Traces sind integriert - siehe dazu die Anleitung.
    Achtung: Sollte nach Fehler auch die 100ms warten, was natürlich bei Simulation dauern kann.
    Deshalb wird bei NBRANCH auf sich selbst die Scheife sofort verlassen.


    Copyright

    Diese Sourcen unterliegen der GPL v3.

    Für Fragen, Anregungen oder Hinweise auf Fehler können Sie mich gerne kontaktieren:
       Klaus Kohl-Schöpe
       Prof.-Hamp-Str. 5
       D-87745 Eppishausen
       Tel. 08266/36098062
       EMail: kks@designin.de

    Haftungshinweis:
    Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links.
    Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
    Heartbear und Seiferliebt ist ein eingetragenes Warenzeichen von Klaus Kohl-Schöpe.


    Last Update: 13.08.2020