John Hansen and I created a way to start programs that run on the bare metal (directly controlling the processor) from an almost-standard firmware.
If you ever wished to program the NXT at the lowest and most powerful level, but did not want (or could not) deal with SAM-BA, the native boot loader, then this project is just what you were looking for you. You will be able to build C programs using the free GCC compiler suite and run them on the NXT. When the program terminates (or when you press the little reset button hidden in the Technic hole below the USB socket), the NXT returns to the standard firmware. You never lose the ability to download and run a NXT-G or NXC program. You can learn a great deal about embedded programming by trying this out.
Perhaps more importantly, if you are the developer of a programming environment that normally gets installed on the bare metal, this project would be useful for you too. It would allow users to invoke your programming environment from the (almost) standard firmware.
The complete details and code to get you started are available here. The code includes a small set of device drivers that currently support the motors, analog sensors, the key pad, the display, and sound.
I’ll try to support the code on the Software Forum here at nxtasy.org (but feel free to send email if I don’t respond).