User:Bytesock/Unix on 8-bit

dmitry.gr/..Projects..Linux on 8bit bit-tech.net/../2012/03/30/linux-atmel-microcontrollers/

Experimenter, Russian-born and California-based programmer Dmitry Grinberg.

Microcontroller:
 * 8-bit AVR processor ATmega1284P 20 MHz overclocked to 24 MHz
 * Flash memory 128 kB
 * SRAM 16 kB
 * External DRAM memory 16 MB SIMM access at 300 kB/s (30-pin, 60ns, 16x8, FPM, no parity, 5V)
 * 1 GB SD card, access at 200 kB/s

Linux requirement: 32-bit architecture and MMU.

The emulator implements an instruction cache to speed things up. Which helps because the AVR can accesses internal memory at over a 5 MB/s.

The SD flash disk is presented as paravirtualized disk device, pvdisk, pvDisk.tar.bz2, /dev/pvd1, GPL.

ARM thumb instructions are converted into normal ones and run as such.

Target:
 * System clock 10 kHz
 * CPU ARMv5TE
 * SoC PXA255
 * Timer 3.84 MHz incremented every 16 instruction for effective system clock at 61.44 MHz

Results:
 * Typed commands gets a reply within a minute.
 * Emulator speed up by using RAM FPM mode, going from 6.5 kHz to 10 kHz
 * No SD access 13 mA @ 4.5V. Reading SD 48 mA @ 4.5V. Writing 53 mA @ 4.5V.

Reports of 80 MHz PIC32 performing a 110 kHz equivalent.