Execute arbitrary code?

afelion wrote on Monday, November 01, 2010:

Is there able to load and execute programs on SD card at runtime? I need an application that list all programs on a media, and select one to execute, which similar to exec() command on Linux.
Thanks in advance.

richard_damon wrote on Monday, November 01, 2010:

This question isn’t really applicable, due to the difference between a kernel (which is what FreeRTOS is) and an Operating System (like Linux, which does have a kernel inside of it). The FreeRTOS kernel just provides task switching, synchronization and communication primitives, it does not provide a full “Operating Environment” in that is doesn’t provide things like an I/O layer.

One big question is what is your architecture, as that will make a big difference in what is needed to read the SD card, and to run a program. While the FreeRTOS kernel doesn’t know how to read the SD Card, there may be demo or donated code that handles some or all of the job. You may need to copy the program off of the SD card and into RAM memory and execute it there, and if so, you need to set up your program to have some way to reserve/release that space and know where the program wants to be loaded. This is very much a compiler and related environment question. If the program need to interact with what is already loaded, it needs some way to communicate with it, and if not, it needs some way to return control back to the original application.