Spielt noch irgendwer im Moment damit rum ? Ich hab es z.B. auf STM32L432 am laufen und bin recht angetan davon. Gruß Schorsch
Ja, großartiges Projekt, super freundliche Entwickler! Schade, dass Forth wohl nicht (mehr?) so bekannt ist... Ich persönlich sehe hier eine wundervolle Niesche für extrem schnelle Skripts. Es gibt einfach Dinge, die lassen sich mit eLua und Co nicht erschlagen. Ich verwende eine selbstgeschriebene, stark abgespeckte (dafür noch kleinere und schnellere :p ) Variante als Bibliothek zu C/C++. Mit einer Standalone Version via Terminal könnte ich persönlich nicht so viel anfangen. Fakt ist jedoch, dass ich ohne Mecrisp Forth nie in jener Tiefe verstanden hätte...
Schorsch X. schrieb: > Hallo Vincent, > hast du das als Zusatz für einen ARM gemacht ? Für einen M4 ja. Im Prinzip ersetze ich die Terminal Hooks aus mecrisp durch Forths "evaluate" word, dass einen kompletten String im Ganzen auswertet. Das evaluate word lasst sich dann aus C/C++ heraus aufrufen (evaluate(const char*). Zusätzlich hab ich einige Beschränkungen eingefüht, die das parsen vereinfachen... etwa die Unterstützung für Escape-Characters gestrichen, nur Kleinbuchstaben, usw. usf.
Ja, ich "spiele gerade damit rum". Vor ein paar Tagen schickte mir ein freundlicher User hier ein STM32F411 (Nucleo) kit und ich habe gerade erfolgreich unter MacOS das Kit geflasht mit dem mecrisp-stellaris-2.5.42a/stm32f411.
1 | $ sudo port install stlink |
2 | $ cd /Users/kuku/Downloads/mecrisp-stellaris-2.5.4a/stm32f411 |
3 | $ st-flash erase |
4 | st-flash 1.6.1 |
5 | 2020-08-11T19:55:13 INFO: stm32f411re: 128 KiB SRAM, 512 KiB flash in at least 16 KiB pages. |
6 | Mass erasing...... |
7 | $ st-flash write mecrisp-stellaris-stm32f411.bin 0x8000000 |
8 | st-flash 1.6.1 |
9 | 2020-08-11T19:56:06 INFO: stm32f411re: 128 KiB SRAM, 512 KiB flash in at least 16 KiB pages. |
10 | file mecrisp-stellaris-stm32f411.bin md5 checksum: 10b8f8cb4243708b8a996331e07221f2, stlink checksum: 0x00150cd3 |
11 | 2020-08-11T19:56:06 INFO: Attempting to write 15104 (0x3b00) bytes to stm32 address: 134217728 (0x8000000) |
12 | EraseFlash - Sector:0x0 Size:0x4000 2020-08-11T19:56:06 INFO: Flash page at addr: 0x08000000 erased |
13 | 2020-08-11T19:56:06 INFO: Finished erasing 1 pages of 16384 (0x4000) bytes |
14 | 2020-08-11T19:56:06 INFO: Starting Flash write for F2/F4/L4 |
15 | 2020-08-11T19:56:06 INFO: Successfully loaded flash loader in sram |
16 | enabling 32-bit flash writes |
17 | size: 15104 |
18 | 2020-08-11T19:56:06 INFO: Starting verification of write complete |
19 | 2020-08-11T19:56:07 INFO: Flash written and verified! jolly good! |
20 | $ |
Jetzt würde ich gerne mit dem Board(FORTH) über serielle Leitung kommunizieren. Habe zwar ein USB/Seriell-Interface angeschlossen, aber an welchen UART schieße ich die Terminalleitungen an? Baudrate? In dem Usart1.fs Modul finde ich pa9 - tx pa10 - rx und 115200 APB1 50 MHz Aber das sind ja sicher TTL Pegel? Aber ich glaube, die tun es auch noch so gerade, oder? An der Steckerleiste des Nucleo sehe ich auch TX/D1 RX/D0 Habe mal meinen USB-Serialconverter FTDI angeschlossen, kermit gestartet, SET LINE /dev/cu.usbserial-ftDEOE92 SET SPEED 115200 SET CARRIER-WATCH OFF CONNECT tut sich noch nichts. P.S. Ich muß noch ein bißchen das README studieren. Melde mich wieder.
:
Bearbeitet durch User
Meine Vorgehensweise mittels eines extra USB-Seriell Adapters war falsch. Das Nucleo hat - wahrscheinlich wie viele Boards dieser Art - eine virtuelle COM-Schnittstelle, die man mit picocom/minicom anspricht. Dazu muß man dann den jeweiligen UART-Pin (Rx/Tx) mit der UART-Bridge des Nucleo verbinden und sowas hier im Terminal (macOS) eingeben: $ picocom -b 115200 /dev/cu.usbmodem141103 --imap lfcrlf,crcrlf --omap delbs,crlf picocom v3.1 port is : /dev/cu.usbmodem141103 flowcontrol : none baudrate is : 115200 parity is : none databits are : 8 stopbits are : 1 escape is : C-a local echo is : no noinit is : no noreset is : no hangup is : no nolock is : no send_cmd is : sz -vv receive_cmd is : rz -vv -E imap is : crcrlf,lfcrlf, omap is : crlf,delbs, emap is : crcrlf,delbs, logfile is : none initstring : none exit_after is : not set exit is : no Type [C-a] [C-h] to see available commands Terminal ready ok. ok. : hello ." hello world" ; ok. hello hello world ok. Es funktioniert!
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.