Ejecución de aplicaciones desde freeRTOS

Actualmente estoy en el proceso de desarrollar el sistema operativo para un producto de electrónica de consumo que mi empresa está desarrollando. Me he decidido por freeRTOS como la columna vertebral de nuestro sistema operativo, y estoy trabajando diligentemente para implementar la funcionalidad del hardware dentro del sistema operativo. Sin embargo, me he encontrado con un problema relacionado con la ejecución de aplicaciones de terceros desde freeRTOS.

Originalmente, consideraba que una tarea era una aplicación, donde básicamente tenía "myapplication.c" y "myapplication.h" que contenía todas las funciones necesarias de sus aplicaciones y el código residiría dentro del ciclo for (;;) dentro de la tarea (actuando como un bucle while principal). Luego, cuando el usuario decide ejecutar esa aplicación, se pasa un puntero de función a una cola, que mi tarea app_launcher luego usa para crear la nueva tarea usando la tarea o aplicación de terceros.

Sin embargo, el problema con este enfoque es que el sistema operativo ya se compilará y residirá en el microcontrolador, y las aplicaciones se instalarán y eliminarán según el usuario lo considere conveniente ... Entonces, obviamente, las aplicaciones deben compilarse y ejecutarse desde el sistema operativo. En una máquina Unix estándar, usaría algo como fork, para seleccionar el ejecutable y darle su propio proceso. Sin embargo, no puedo encontrar una funcionalidad similar dentro de freeRTOS. Mi otra idea es abordar un lenguaje de secuencias de comandos para el desarrollo de aplicaciones, pero de nuevo no estoy seguro de cómo iniciar esas aplicaciones ...

Entonces la pregunta es, ¿cómo obtengo freeRTOS para ejecutar aplicaciones de desarrolladores de terceros que aún no están integrados en el sistema operativo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta