On Tue, 2005-03-22 at 14:17 +0000, Matt Evans wrote: [...]
Perhaps we should start work on a 2ndstage loader? Something simple, a bit like bootldr (well, more simple) or YAMON etc.
I actually have another project, called PCPM --- Portable CP/M. It's a single-tasking OS designed to be simple to port; in it's simplest incarnation, all you need are three functions to read, write and poll the console, and that's it. It doesn't even need interrupts.
I mention this because it'd make a rather good boot loader. You could probably fit the kernel in the NOR flash, but as I said, I'm not touching that.
[...]
Could this be it copying your image to DRAM, then querying it to find out its start address, then jumping there?
D'oh! Now I'm less tired, the reason it's crashing is obvious --- I must be missing a dereference somewhere. (I'm putting the first instruction where the address of the first instruction should be.) I'll try it again this evening.
...
Incidentally, what would be a good OS to run on this? Not having an MMU rules out Linux or one of the BSDs; they'd be a bad choice anyway, because 8MB of RAM is really not a lot. ucLinux is an option, but again, it's rather large (and I just don't *like* ucLinux).
There's always a traditional embedded OS like eCos, but, well, yuck. (I work for a company that makes one. No thanks.)
One OS that keeps coming to mind is Minix. Simple, BSD licensed, has a tiny footprint, segmented rather than paged so we could actually get some memory protection on the ARM7TDMI, provides a decent set of Unix semantics...