Contents

News

14/08/2005: Obtaining the tools & my plans

I've been chasing my tail lately, trying to build a cross-compile toolchain for the mipsel-wince-pe target. It seems this functionality disappeared from binutils back around 2.13 or so, 2.12.2 fails to compile.

I'm currently looking around. So far, I discovered this page which suggests using binutils-2.11.2 and gcc-3.03. Well, worth a try I guess :-), it also gives instructions on how to compile GUI apps for WinCE, so I think this will be a definate winner as far as aiding progress. I also managed to find this site which has loads of WinCE/MIPS stuff, including a POSIX library (celib) which may be useful for phase 2.

I've already managed to get a copy of the entire contents of the "Windows" directory of my PDA (thank you to the devs who made SynCE, it's a wonderful tool), and once I've got a toolchain, I should be able to pull those apart and have a look (I won't be posting code though for legal reasons -- Sure, I never agreed to any licence agreement, none came with the PDA, but I don't want to push my luck there) to see how everything fits together.

Why?

Currently, Windows CE 2.11/MIPS is practically dead. There's a couple of sites offering downloads for it, but the vast majority out there is for PPC200x/ARM. Drivers are even harder to find.

Linux on this machine, with a suitable embedded Desktop, should vastly improve the system's capabilities. It's much more modern, with many applications available. Combined with some sort of PCMCIA storage (PCMCIA IDE or SCSI, or perhaps a CF adaptor), it should be capable of running full distributions such as Debian/MIPS or Gentoo/MIPS. Running purely from RAM, things like Qtopia shouldn't be out of the question... and running such an open platform, opens up all sorts of possibilities, many which I haven't touched on yet.

The plan

Create a cross-compiler for mipsel-wince-pe target.

Create some simple programs to explore the system. The aim here is to try and discover where various devices are located.

(Me only) Learn some MIPS asm, I've already found what looks to be a fairly complete guide here.

Make a first attempt at some non-trivial applications to interact with the hardware. Specifically, I'll be focussing on interaction with the screen, keyboard & serial interface.

Begin porting Linux. :-)

Goal

Once Linux runs; (i.e. I can boot up to some sort of shell, possibly BusyBox and a ÂµClibc environment), I'll look at how to package a distribution to run on the machine.

At the moment, due to the limited memory (32MB) and storage (none), I'm thinking about using QT's Qtopia to provide the full system. It's much more up to date than Windows CE 2.11, and should provide everything I need, whilst leaving sufficient memory over to do something useful.

Eventually, I'd like to burn this into the ROM somehow. The idea at present, is to try and implement the ROM as some sort of block device, with a small partition table. Put a bootloader in at the start, ideally, the kernel should stay in ROM, and be accessed directly. This will all become clearer though as I learn how to talk to the hardware in this device.

Almost certainly, I can forget a full distro like Gentoo or Debian, not without a fairly large root FS sitting on a PCMCIA flash drive of some description. Given the cost of these things, I don't see me trying this anytime soon.

Operating System Support

Natively, they run Windows CE 2.11 H/PC PRO 3.0. There is some resources on the net to suggest NetBSD potentially runs, but I have not succeeded in this endeavour. I'm looking into the feasability of porting Linux onto these devices.

A look inside

I ended up pulling my unit apart tonight... finally got fed up of the wobbly power socket, so I thought I'd take a look.
The power socket was fixed very easy... The solder connections were worn... in fact, I suspect a manufacturing fault. Not to worry though, a quick jab with a soldering iron soon fixed up what the ravages of time had slowly worn away.

I have raw images, straight from the camera here. These are 5MPixel shots.

Motherboard: Top surface

Pulling up the keyboard, you'll see the top surface of the motherboard... shown in this photo.