tiny logo

Tiny

What is Tiny ?

Tiny can be defined as a minimalist runtime environment for low-end embedded systems. It aims at speeding up the validation process for new board designs as well as the development of very low-level drivers/algorithms. It has been named after its code footprint which can be very small (a few tens of Kbytes) depending on what features you want to include.
Tiny has been written from scratch in C and assembly and does not require any extra library to compile. All the required functions/drivers are included in the source tree and it comes along with makefiles and linker scripts to generate elf, binary and srec files out of your code. It may be turn into a very small bootloader or an installer/flasher when needed. To keep the code
clear and the makefiles simple, all arch have their own "branch". Tiny is also a valuable educative ressource since it shows at the very low level how to use a particular CPU (and surrounding ressources found in many SoCs).

Latest updates

may 12 2010: tiny_nios2_051210 released.
nov 20 2009: tiny_nios2_112009 released.
mar 10 2009: tiny_arm-eabi_gxemul_031009 released. [tiny_arm-eabi_gxemul_031009.png]
feb 10 2009: tiny_mpc5121e_021009 released.


--- supported architectures ---
CPU board(s) status
arm GXemul ARM test machine active
mips PIC32 (mips m4k) started
nios2 DE0/DE1 [Terasic] / ORION [custom hw] active
powerpc ADS5121 rev. 0x0400 [STX] stopped
[note] The nios2 version is currently the most advanced and the most actively developped.

--- manuals and media ---
tiny_concept_00.mov [nios2 version (dec_08) running pForth (portable ANS Forth)]

[no manual available yet]

--- future directions ---

Many drivers are still missing in Tiny. The following features have the highest priority:

  • devices
    • SDcard
    • NOR Flash [serial (SPI) + Spansion s29gl support (parallel CFI)]
    • Ethernet MAC
  • fs
    • RAMDISK
    • FAT16/FAT32
    • cpio [read-only memory mapped available]
  • libs
    • zlib [porting]
    • libpng [porting]
    • libjpeg [porting]
    • tcp/ip stack
  • gfx
    • a very simple 2D lib [already started]
    • rawx picture format [utilities & specification] [deprecated]
    • TGA picture format [support for RGB24 and RGB24 w/ RLE compression]

Tiny is using a flat memory model architecture. Provinding basic standard libraries, dynamic memory management and a few filesystems support, it targets low memory footprint applications for deeply embedded devices. All this with an ultra fast execution time and without sacrifying some highly convenient capabilities such as interactive console and graphical capabilities.

jump to | classivg | orion 

[07/2010] Copyright (c) 2010 Noel Lemouel
vim logo