Flash
On msp430, you can erase / overwrite the built-in flash memory with a capacity of 512 bytes (a user flash drive can handle smaller chunks).
Thus, your bootloader / stable RTOS can reprogram the chip using these “applications”.
It's a little tricky to redirect interrupts, but it can be done with a redirect from the "real" vector table to the application vector table.
Call Stable / RTOS
You can also call the functions of the stable part from applications, you can build a fixed transition table for each function in the stable part, so the application knows how to call this function, even if you create another version of the stable version / RTOS.
RAM
If you allow only one application, this is easy.
You need to reserve some RAM for your stable RTOS, and the rest of the RAM can be used by the application.
But to solve the problem of placing your variables can be difficult if you want to use multiple applications.
To reserve RAM from an application, I would prefer dynamic allocation then, but even then you need a pointer to dynamically allocated blocks, and these pointers are fixed or your applications use variables on the stack.
jeb
source share