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

jan 21 2012: mips/pic32 page updated.
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 started
mips PIC32 (mips m4k) active
nios2 DE0/DE1 [Terasic] / ORION [custom hw] active
powerpc ADS5121 rev. 0x0400 [STX] stopped
[note] The mips and the nios2 version are currently the most advanced and actively developped.

--- manuals and media ---
tiny_concept_00.mov [nios2 version (dec_08) running pForth (portable ANS Forth)]
P1100055.MOV [nios2* version (oct_11) w/ math + graphics extensions (software rendering)]

* nios2/f 125MHz 8k$I/8k$D HWMUL (~170 CoreMark 1.0)

[no manual available yet]

--- features highlight ---

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.

Support varies depending on the target and its peripheral set.

  • system
    • IRQ
    • syscall
    • assembly startup
  • devices
    • NOR Flash [serial (SPI) + Spansion s29gl support (parallel CFI)]
    • i2c serial eeprom (24cXX)
    • uart / gpio / pwm ...
  • fs
    • cpio [read-only memory mapped available]
  • libs
    • basic stdio (printf w/ optional floating point support + string.h)
    • basic dynamic memory allocation (malloc)
    • basic math routines
    • crc32
    • md5
  • gfx
    • virtual console
    • 16bits linear framebuffer operations (blit / alpha blit / basic draw)
    • TGA picture format [support for RGB24 and RGB24 w/ RLE compression]
    • PBM picture format [v_pnm_070310.png / leonardo.pbm] [development]
    • rawx picture format [utilities & specification] [deprecated]
  • util
    • serial loader
    • ush / micro-shell
    • clean and simple makefile structure

__prototyping__
v_tga_022712.tar.gz [computer based TGA decode routines validation] [v_tga_022712.png]
v_tga_win32_022712.zip [win32 precompiled binaries]

jump to | classicvg | orion | orx

[xx/2012] Copyright (c) 2010-2012 Noel Lemouel
vim logo