Executando aplicativos a partir do freeRTOS
Atualmente, estou no processo de desenvolvimento do sistema operacional para um produto de eletrônicos de consumo que minha empresa está desenvolvendo. Eu escolhi o freeRTOS como a espinha dorsal do nosso sistema operacional e estou trabalhando diligentemente para implementar a funcionalidade de hardware no sistema operacional. No entanto, encontrei um problema relacionado à execução de aplicativos de terceiros no freeRTOS.
Originalmente, eu considerava uma tarefa uma aplicação, em que basicamente você tinha "myapplication.c" e "myapplication.h" contendo todas as funções necessárias para suas aplicações e o código residiria no loop for (;;) da tarefa (agindo como um loop while principal). Então, quando o usuário decide executar esse aplicativo, um ponteiro de função é passado para uma fila, que minha tarefa app_launcher usa para criar a nova tarefa usando a tarefa ou o aplicativo de terceiros.
O problema dessa abordagem, no entanto, é que o sistema operacional já será compilado e residirá no microcontrolador, e os aplicativos serão instalados e excluídos conforme o usuário achar melhor ... Então, obviamente, os aplicativos precisam ser compilados e executáveis a partir do sistema operacional. Em uma máquina unix padrão, eu usaria algo como fork, para selecionar o executável e fornecer seu próprio processo. No entanto, não consigo encontrar uma funcionalidade semelhante no freeRTOS. Minha outra idéia é abordar uma linguagem de script para o desenvolvimento de aplicativos, mas, novamente, não tenho certeza de como iniciar esses aplicativos ...
Portanto, a questão é: como faço para obter o freeRTOS para executar aplicativos de desenvolvedores de terceiros que ainda não estão inseridos no sistema operacional?