> After I sucessfully configure and make RTEMS, How do 
> I load RTEMS on a FLASH memory device to boot.

Getting it on the memory is the easy part, getting it off takes some work.
What you are looking for is generically referred to as a "bootloader."
In Windows NT or Windows 2000 that would be a program called "ntldr."
In Linux, it would be GrUB, or LILO, or syslinux on an X86 platform.

The bootloader could be a separate program.  In that case, the bootloader would typically configure the memory controller, place the processor into protected mode if it is X86 style processor, copy the RTEMS image from the ROM to the RAM, and jump to the beginning of the RTEMS instructions to begin execution.

That same functionality could be in the RTEMS software itself.  The i386ex BSP in the older RTEMS release seemed to take that approach.  If you look at the file startup/linkcmds you will see a comment that "start.s copies the data section to RAM in real mode," which I take to mean that you do not need a separate bootloader.

As for your original question of how you get RTEMS on a flash memory device, typically you will have either a ROM in a socket, so that you can take the device to a ROM programmer, or you may be able to use a processor debugger connected through a JTAG interface to take over the ROM or memory bus and write the file into the Flash ROM.  I tend to use the latter approach on my custom hardware, because I have a 2MB ROM which is only available in a surface mount package, but most evaluation style boards should have a 512KB ROM in a socket so that you can put it on a programmer.
Someone more familare with i386ex boards will have to comment on whether any format translation might be needed to go from the output of the compile/link cycle to the hex file you need.
Are you sure the programmer you have can't deal with straight binary files?  If it can't, I would expect that there would be some style of "bin2hex" style program for converting formats.

-- Chris Caudle


