The zip is here
I can compile versions for different hardware which either run the main kernel in RAM or Flash.
This binary is "generic" - this really means the leds are disabled so there is no potential i/o conflict if someone has used these lines for something else.
This version executes most of it's kernel code in flash.
It has been tested on both a h256 and ex256 board.
You really have to use the serial server emserver to recompile the system.
Of course you have to have emserver set up with the correct working directory or it won't find the files.
To build a new kernel just type "SOURCE ARM.FTH"
This compiles arm.fth, reloc.fth and extras.fth
Once finished a new kernel is in ram.
Typing MIRROR1 will burn a "ram" version of the kernel to flash.
To build a "flash" version from a ram version type SOURCE TOFLASH.FTH
This patches and relocated forth, compiles fextras.fth and burns it into the second 64K block of flash.
The finalize you also use the MIRROR1 command - this burns a little bit of code, all the variables and reset vectors to the first 64K page of flash.
During the kernel build one of the .def files in conditionally included.
This is what determines whether the build is for a h128 or a ex256 board.
Near the top of the arm.fth file the constant PCBTYPE is defined like this.
GENERIC CONSTANT PCBTYPE
Later it is used to include a .def file like this.
PCBTYPE H256 HOST= IFDO INCLUDE H256.DEF
PCBTYPE EX256 HOST= IFDO INCLUDE EX256.DEF
PCBTYPE GENERIC HOST= IFDO INCLUDE GENERIC.DEF
Only one .def file is used.
Currently this is just defining how the LEDs work but in future - extra features like LCD support may be added this way.