Riscy Pygness -- Pygmy Forth for the ARM

Introduction

Riscy Pygness is a 32-bit multitasking Pygmy Forth for the ARM. It includes full source code for both the host (your desktop PC) and target (your ARM development board). The license is BSD/MIT-like so you can do (nearly) anything with it.

It is aimed at relatively small embedded systems rather than desktop systems or large embedded systems running an operating system (OS).

Riscy Pygness is a stand-alone system that is its own multitasking OS. It can run in about 4 K bytes of flash and about 1.5 K bytes of RAM. The size can be reduced further depending on your needs. This makes it suitable for use in even the smaller ARM variants such as the NXP LPC2101, LPC2102, and LPC2103. It can address the full 4 GB address space, so it can take advantage of all the flash and RAM available in even the larger variants.

During development, the host communicates with the target via a serial port. The host provides the smart terminal and the compiling services. The host can generate a new, customized Forth image for the target.

The Forth itself runs on the target but you interact with it by typing commands on the host, much as you would with a Forth running locally on the host.

As you type each word (command) at the terminal, the word is looked up on the host which then sends a request to the target to execute the word. Numbers typed at the terminal are sent to the target to be put on the target's data stack. Word headers are kept on the host, not the target, and all compilation work is done on the host.

The host and the target, working together, provide the effect of a fully interactive Forth running on the target while conserving the limited resources of the target.

Download

How to get started

See the latest version of the manual. It has a Getting Started section and also an installation checklist.

Flash images

Flash images are included in the zip file for 4 Olimex boards.

A note about operating systems

I am running on Linux, typically Debian or Ubuntu.

Any Linux or Unix or Unix-like operating system that can run Tcl/Tk (i.e., all of them) should work great. If you insist on running a Microsoft operating system, you can do so, but everything is likely to be just a little more difficult. It might be worth setting up a spare machine (or booting from a Live CD) to have Linux available.

The zip file includes binary images for the kernel for several ARM boards. So, you do not necessarily need to be able to run an ARM assembler, at least at first. Eventually, you might want to assemble a custom kernel. At that point, access to a Linux machine will be convenient.

If you try it, feel free to email me at frank@pygmy.utoh.org for help. Your feedback will help me improve the manual further.