2015-10-29 02:36 AM
If you want a development system on chip,
incremental software updates, test driven interactive developments this is worth a look: Mecrisp Stellaris Forth compiler updated with support for a number of STM32 controllers stm32f030f4, stm32f051, stm32f100, stm32f103, stm32f303, stm32f401, stm32f407, stm32f411, stm32f429, stm32L053c8, stm32L152 others comming soon #compiler #forth #interpreter #forth-mecrisp-stellaris2015-10-29 02:38 AM
Here is the Website :
http://mecrisp.sourceforge.net/2015-10-29 02:50 AM
Mecrisp Stellaris FORTH current version is here:
2015-10-30 03:43 PM
I downloaded and tried it on a STM32L053 DISCO... basic FORTH funcionality OK (push some numbers, pop them, add them, that's about all I can do in FORTH interactively :) )
Some struggling with getting a terminal wait after each line when uploading the ''programs'', but finally both examples (blinky and e-paper example) worked as expected. Nice toy, thanks for the links! ;) JW PS. Oh, yes, and it's entirely written in that inhuman ARM Thumb-2 assembler, the author is CRAZY... :D2015-11-02 11:13 AM
There will be also a version with optimizer -RA- version that reduces much of the stack juggeling. Awesome work in assembly.
There is currently active development on many different STM32 cortex parts. Next i will add a port for the new STM32L476 discovery board. It's not only a toy. You can do serious stuff with it. Some stm devices support incremental flash updates. It took me a while to figure out all the stuff in that package. Disassembler, dumper, assembler, all on chip. Im using teraterm with an upload script that supports include https://raw.githubusercontent.com/jjonethal/mecrisp-stellaris/jjo-wip/stm32f303/upload_include.ttl2015-11-06 01:49 AM
in forth all words and numbers have to be separated by spaces.
Here some forth function example: new function : ''var3=var1+var2'' indeed var3=var1+var2 is only one word. only space separates words. 1 variable var1 2 variable var2 0 variable var3 : var3=var1+var2 var1 @ var2 @ + var3 ! ; : - create a new word ; - end current function @ - get a word from address on stack ! - store a word to address compiletoflash - burn all following functions to flash compiletoram - put all following functions to ram eraseflash - remove my functions from flash . - the point prints and removes the top value from stack .s - show me the datastack this is what the compiler make from that: 1 variable var1 ok. ok. 2 variable var2 ok. ok. 0 variable var3 ok. ok. ok. ok. : var3=var1+var2 var1 @ var2 @ + var3 ! ; ok. ok. see var3=var1+var2 20001056: F241 movw r0 #1000 20001058: 0000 2000105A: F2C2 movt r0 #2000 2000105C: 0000 2000105E: 6843 ldr r3 [ r0 #4 ] 20001060: 6A02 ldr r2 [ r0 #20 ] 20001062: 189B adds r3 r3 r2 20001064: 63C3 str r3 [ r0 #3C ] 20001066: 4770 bx lr ok.2015-11-06 02:04 AM
new version RA-1.3a with optimizer online:
http://sourceforge.net/projects/mecrisp/files/mecrisp-stellaris-ra-1.3a-experimental.tar.gz/download Kind Regards Jean2015-11-18 09:45 AM
Hi everyone,
a new version of Mecrisp Forth has been published:http://sourceforge.net/projects/mecrisp/files/mecrisp-stellaris-ra-1.5-experimental.tar.gz/download
now with support for the STM32L476 Disco board. Nice board with lots of components. Some demo code is also included. Terminal works via STLINK USB interface with 115200 baud. Have fun Jean2015-11-18 09:58 AM
What exactly is your association with this project?
2015-11-19 11:07 AM
i did some adaptions to the mecrisp forth to let it run on my stm32 boards. So i did the
stm32f411 nucleo and the stm32l476 discovery adaptions. I'm using it for my hobby projects and to get in touch with new components. After playing around with it for a while i've found it pretty fun to code with it. It's open source, put the disassembler on board you can always have a look what's going on behind the scene. Matthias Koch is the brain behind this little gem. Give it a try.