User Activity

  • Posted a comment on discussion General Discussion on Mecrisp

    Maybe later, Terry, when we congratulated and passed our wizard wands to him :-) Technically, there is a "subset" of Mecrisp-Stellaris. We once had a more traditional compiler in Mecrisp-Stellaris without register allocation, that was exactly 16 kb in size on most targets. And there was a target, the STM32F030F4, that managed to run with a tiny amount of chip-specific initialisation and support code. That one fit Forth in 14 kb, leaving 2 kb free for the user program. So its possible, yes, but of...

  • Posted a comment on discussion General Discussion on Mecrisp

    Hi Richard, I am not aware of a Mecrisp-Stellaris port to the MSPM0 family yet. Consider 32 kb flash as the minimum requirement on ARM targets, as recent Forth cores are 20 kb in size. Iff your assembler skills are on wizard level, however, check out the old experimental STM32F030F4 port, but everything will be a sizecoding challenge then. Matthias

  • Posted a comment on discussion General Discussion on Mecrisp

    The long-awaited USB-CDC terminal driver for RP2040 Pi Pico is up and running and ready for initial testing before release: https://mecrisp.sourceforge.net/usb-rp2040.txt If you feel adventurous, please try it and report back. Matthias

  • Posted a comment on discussion General Discussion on Mecrisp

    They differ in their memory access capabilities. j1-universal-16kb.v: There are data paths for the two topmost elements of the data stack, so there is "memory write and one drop" + "another drop" necessary to do the effects of "!". j1-universal-16kb-quickstore.v: There are data paths for the three topmost elements of the data stack, allowing to do a memory write and two drops for "!" in one cycle. The first two differ in their stack implementations only. Their memory access model is fine for pseudo-dualport...

  • Posted a comment on discussion General Discussion on Mecrisp

    Hi Igor, division and modulo are tricky to do on the stack machine, involving a lot of stack shuffling, and that eats away cycles. Also the do ... loop needs more cycles than on ARM, because only the top of return stack is accessible directly, so running "j" and "loop" requires some shuffling also. Unfortunately, single-cycle division and modulo is quite heavy in logic, so its not included for default, but there are six to eight opcodes free (depending on core) which you can use to add these instructions....

  • Posted a comment on discussion General Discussion on Mecrisp

    Hi Aaron, looks as if you are missing build dependencies. To compile and synthesise, Mecrisp-Ice needs GForth, the Freepascal Compiler, and the oss-cad-suite for the FPGA flow one can download from here: https://github.com/YosysHQ/oss-cad-suite-build/releases Matthias

  • Posted a comment on discussion General Discussion on Mecrisp

    Hi John, pin 2 should be the RX pin on the Pi Pico, and when unconnected, its ok for it to be stuck as it is not driven. Try swapping RX and TX wires! Thats one of the most common problems to encounter at the beginning. The pins are current-limited these days and survive being swapped. Matthias

  • Posted a comment on discussion General Discussion on Mecrisp

    Hi David, good ideas, you are that close! Both UARTs share the same clock source, clk_peri, which is already up and running when using Forth, and all peripherals are out of reset after the clock init code, so you can focus on the UART registers, and the special functions for the pins. In terminal.s for the RP2040, thats these lines: UART_Baudrate: ldr r0, =UART0_BASE movs r1, #UART0_IBAUD str r1, [r0, #UARTIBRD] movs r1, #UART0_FBAUD str r1, [r0, #UARTFBRD] movs r1, #UART_8N1 | UART_FIFO str r1,...

View All

Personal Data

Username:
m-atthias
Joined:
2011-08-09 14:58:51

Projects

This is a list of open source software projects that Matthias Koch is associated with:

  • Mecrisp   Last Updated:
  • Raman baseline Raman baseline correction algorithm for biological samples Last Updated:

Personal Tools

MongoDB Logo MongoDB