Status: Under development
The ZPU is a small 32 bit, portable CPU core with a GCC toolchain and eCos RTOS support.
This project aim at providing an implementation of this portable CPU core on XMOS architecture.
Planed features are:
- the possibility to have code fetched from an external RAM/Flash.
- the possibility to have multiple zpu created and launched in parallel, with one zpu = one thread
- the possibility to have multiple zpu created and launched in parallel in different processors (nice for G4)
- extension of the ZPU RTL to let user create threads on an XMOS (by forking actual executing program ... or ...)
- extension the RTL to give access to ports, and (most important) to give the possibility to use any software component running on an XMOS (SPI, Eth, UART, ...) maybe by defining some kind of a hardware abstraction layer.
Users will be able to program this CPU with GCC (there exists already a port of GCC for this processor), whitch mean that you can already program it with C, C++, Fortran (yeah). Programs can have almost any size (provided necessary ram internal or EXTERNAL is available for the system).
More details about ZPU here :
This soft processor will let users create re-programmable systems, AMINO like boards for example can load precompiled programs through ethernet and execute them locally without having to keep connection alive to an external system. This makes it possible to execute external building bricks completely written in C/C++ or Fortran (and compiled via GCC) of any size!
This processor implementationc can also be a very good starting point and a nice brick of the project "Microprocessor/Microcontroller educational kit" https://www.xcore.com/projects/microprocessormicrocontroller-educational-kit
Users and students can later still use it as an educational case of use to try to implement simple compilers for the ZPU machine :)