uLisp on Teensy 4.0


#1

Hi,
I did a few tests running ulisp on the new Teensy-4.0 board (I already wrote about it in this forum a few days ago, see: Suggested boards for running uLisp?)
Using the arm port of ulisp-2.8, it was easy to get ulisp compiled and running (link below).

Here are a few specifications of the Teensy-4.0 board (took from the PJRC Teensy-4.0 page):

  • ARM Cortex-M7 at 600 MHz (can be changed from software) (NXP iMXRT1062 chip)
  • 1024K RAM (512K is tightly coupled)
  • 2048K Flash (64K reserved for recovery & EEPROM emulation)
  • USB, I2S, I2C, SPI, SDIO, Serial
  • Hardware floatingpoint unit, RTC
  • input current: ~ 100mA (from homepage, I didn’t do own measurements)
    and much more. See PJRC page for more details.

Here are some ulisp outputs:

uLisp 2.8 
51199> (defun tak (x y z)   
       (if (not (< y x))
            z
            (tak (tak (1- x) y z)
                 (tak (1- y) z x)
                 (tak (1- z) x y))))
tak               
51151> (tak 18 12 6)
7
51151> (for-millis () (tak 18 12 6))
419
51151> (for-millis () (princ (tak 18 12 6)))
7
420
51151> 

As you can see the board runs ulisp very fast ;-) (and I made no board-specific optimizations to ulisp!).

The board price is around $20 (I got mine from esp-tech (.de)).

I just did a few tests, some basic functions are untested (i2c, spi, probably many more) or missing (save-image, …), but I think most will work with small changes (defining pins, write to flash or eeprom etc.).

To use this board you’ll need the arduino-ide and the Teensyduino add-on. You can download my test-version of ulisp from my github page: https://github.com/Kaef/ulisp-teensy4, which uses a workspace-size of 48k lisp cells (for the output above I had a little bigger workspace-size).

Anyone interested?

Regards,
Kaef