Important Notes

Compiling

Mecrisp-Across is actually very easy to compile, just execute the “release” script in the Distribution root directory and then flash the mecrisp-stellaris-tm4c1294-with-mecrisp-across.bin file to the tm4c1294 target.

  1. UTF-8: Because most of the source code is in the German Language, your system must be set up for UTF8 or the compiler will get hung up on umlauts etc.

  2. GCC: The file “helpers/thumbulator/Makefile” specifies “gcc” but my system only has “gcc6” and “gcc7” so I had to change it to suit. You may have a similar issue depending on the versions of GCC installed on your system.

all : thumbulator.c
       gcc -o thumbulator -O2 thumbulator.c

clean :
       rm -f thumbulator

Note

In case you’re wondering … Gcc6 and Gcc 7 produced the same size mecrisp-stellaris-tm4c1294-with-mecrisp-across.bin binary on my system: 131148 Bytes

Got Usart ?

Mecrisp-Across can work with Targets with or without a USART, providing the Forth Terminal-Io Words in the Dictionary below. Even if your application doesn’t need a terminal, the Terminal-Io Word are vital debugging and testing aids at the design phase.

Terminal-IO

uart-init       ( -- )      Prepare UART for 9600 Baud @ 8 MHz
emit?           ( -- Flag ) Ready to send a character ?
key?            ( -- Flag ) Checks if a key is waiting
key             ( -- Char ) Waits for and fetches the pressed key
emit            ( Char -- ) Emits a character.
cr              ( -- )      Emits line feed
space           ( -- )      Emits space
hex.            ( u -- )    Prints 16 bit unsigned in hex base.

If your target chip has a USART, then code for it work when the source is compiled, flashed and it is running stand-alone. This is the default Mecrisp-Across behaviour.

If your target chip does not have a USART, Mecrisp-Across can also work with that by using the HOST for Terminal-IO. Naturally when the Target is flashed and running stand-alone, you will lose access to those terminal facilities.

To enable the Host Terminal Mode use the following command at the start of your code :

true hostterminal? !

Before the emulation and jtag code :

new
+jtag
target