dsnejko wrote on Saturday, December 12, 2009:
It is possible. Not really like in uCLinux but similar to some extend. I have a kernel image permanent loaded in the flash memory and applications re\-loadable. There is also a bootloader which can reload images to fixed addresses including the kernel and allows start them. The kernel image and apps compiled separate but shear include files. The key thing is how to link the app without os calls. The kernel image has a table which provides addresses for kernel’s calls. The table location is fixed and known to the application, also the table format and offsets for each function is predefined too and not changing. For the application each os call is replaced with a macro like
move a0, table\_start+call\_offset
jmp (a0)
The app should be able to initialize memory belonged to os, allocate treads and start the scheduler. The kernel includes FreeRtos and dynamic memory.