This is not the way FreeRTOS is intended to be used, as I said before normally everything is statically linked, but I’m sure what you want would be possible somehow. I have just seen in the other thread the suggestion of having a jump table to API functions (I think this is how SafeRTOS works when it is fixed in ROM) but that still leaves questions about how you are going to compile the external programs that you want to load in dynamically. Would you compile them as libraries with an entry point that was not called main()? Would you compile them as stand alone applications that do contain a main(). In both cases how would you manage their relocatability, you could not used a fixed linker script.
Another option would be to have a loader module that parsed a binary and fixed up addresses after loading into into the CPU memory space.
How do these things normally work? I think they use a separate loader module but I don’t really know.
Here you can look documentation on CircleOS http://www.stm32circle.com/circleos_doc/index.html
Two my last projects were with FreeRTOS, and i like it to use. In new project on LPC1768
I need to do to support FreeRTOS with LCD + SD + some more functions to work with the hardware of the processor, as well as the end user to be able to compile in a separate draft your application and run it as obvious as a separate task
PS Last year I had experienced the implementation of this approach with STM32+RealView, not well as i think. Now i try to do this with LPC1768 port with GCC
It’s hard to say in two word, but in general - there is CircleOS that manages the hardware resources of the device based on STM32, and allows the way to the end user to run his application located in defined FLASH regions. These applications are compiled separately (in the project hooked elf file from CircleOS) into binary files, the only thing - they contain the required functions for initializing and running. Then you can load bin file into one of special flash region, and run it from CircleOS main menu.
PS Pointing out this link to a site with documentation, I was not going to force you to spend your precious time, just showed what is at stake. And the goal is not to obtain a copy of this in freertos, but simply to show an embodiment of the system.