Software Development

From M:Robe 500i Development Wiki

Jump to: navigation, search
DISCLAIMER: USE THIS INFORMATION AT YOUR OWN RISK!

The exploited firmware allows us to run our own code from the m:robe 500i. Currently, a fully working C language Integrated Development Environment (CIDE) is available.

Contents

Drivers

Developed drivers and their status:

Drivers
Device Name Current status
LCD Display fully working - fully C sourced
Remote Control fully working - fully C sourced
LCD Touch Screen SPI reg found, triggers are shown when touching the screen TSC2101 LINUX DRIVER HERE
HD working fopen, fread, fwrite and fclose - by wrapping existing firmware functions

Development

The Exploit

The most low-level way of executing custom code on the device is by exploiting the remix feature. Using a bug in libpng (forum thread), the device can be made to execute code in a specially crafted ".svg" file. Roughly, the steps are:

  • Compile the code using a compiler targeted at the device's CPU
  • Pack it into a ".svg" file
  • Copy the ".svg" file into the correct directory for the remix files
  • Select the remix in the remix feature of the device

For more information, see shirour's guide, under "M:Robe's IDE version 0.91BETA".

Using the Loader

A more convenient way is to use a small precompiled ".svg" file that acts as a loader for your program. This needs to be copied to the device only once, after which only the payload (your program) needs to be updated. Once again, roughly, the steps are:

  • Copy the loader R0030001.svg (link down as of 11/12/2006; mirror) into the remix directory
  • Compile the code into a binary file as in the first step above
  • Copy the file as "prog.mrb" in the root directory of the device
  • Using the remix feature, execute the loader
  • The loader then loads the "prob.mrb" file at 0x900000 and starts executing there

For more information, see shirour's guide, under "M:Robe's IDE version 0.92BETA".

The Platform

See DM320 SoC.

Tools

Mirrors

toolchain_arm_nofpu.zip

mrobe_ide_09beta.zip

Examples

Some applications that have at some point been functional on the device:

Links

Specific Applications

Games

  • DOOM - well, you know this 3d game. click for more information.
  • Supermario coded in C...perhaps people could make use of this... [1] "posted by xserjicalstrikex....10/18/06...

possible emulators compiled for target distro(binaries etc), gnuboy, NES emulators,neogeo, genesis, gamegear,

Video Player

  • Here is some information on a plugin that has been seen on ipods, nanos, and the archos....same chip as the 500...check the link...anyone with knowledge of programming...see if you can make sense of this... Link
  • Link 1 (pepetrueno via jamelikat)
  • Link 1 (by listening, via jamelikat). Last update, 18oct2006, jamelikat.

To add to that, here is links to free c compilers if any are interested in helping develop programs...(edited 10/24/2006...you have to copy/paste this link in a new browser to visit the site...) [2]

MediOS

  • Update on medios on mr500, the medios team syd/olesz have just today-yesterday posted on mrobe org on their success in loading medios onto the mr500. They show screenshots of the touchscreen icons on the screen. The actual applications within medios are not working yet, but this loading of medios is meant to be a great advance. Link to mrobe org posts Posts. (Posted by jamelikat 26 Oct 06).
  • Update 29 oct 06. Unkalle4, mrobe org member has experience with medios, and the mr500. He presents thoughts and experiences regarding the cowon mp3 player which, he says, being similar to the mr500, brings him into the right area for developing video for the mr500. MPEG4 and MPEG2 are file types he's made improvements about, on the mr500 Unkalle4's Post(s)

Linux

After using the remote connection as a serial port, I was able to get a full working copy of linux kernel 2.6.15 to run - fully working TTY access.

Afterwards, I've ported the touchscreen driver made for the OMAP SoC, and got it to work as well. see linux on m:robe

U-Boot

In the same vein, Cat was able to get Neuros' U-Boot (Linux bootloader) working over the serial interface. It doesn't yet recognize all the devices (such as, most importantly, the IDE controller), but at least it will be a bit easier to work on it.

Screen shot of terminal window with U-Boot crashing
Enlarge
Screen shot of terminal window with U-Boot crashing

Log file of U-Boot properly showing a prompt

prog.mrb file of U-Boot, really only useful if you have a serial level converter

Personal tools