Запуск приложений из freeRTOS
В настоящее время я занимаюсь разработкой ОС для продукта бытовой электроники, который разрабатывает моя компания. Я остановился на freeRTOS в качестве основы для нашей ОС и усердно работаю над реализацией аппаратных функций в ОС. Тем не менее, я столкнулся с проблемой, касающейся запуска сторонних приложений из FreeRTOS.
Первоначально я рассматривал задачу как приложение, в котором у вас были «myapplication.c» и «myapplication.h», содержащие все необходимые приложения приложения, и код находился бы внутри цикла for (;;) в задаче (действуя как основной цикл while). Затем, когда пользователь решает запустить это приложение, указатель на функцию передается в очередь, которую моя задача app_launcher затем использует для создания новой задачи с помощью сторонней задачи или приложения.
Однако проблема этого подхода заключается в том, что ОС уже будет скомпилирована и размещена на микроконтроллере, а приложения будут устанавливаться и удаляться по усмотрению пользователя ... Поэтому очевидно, что приложения необходимо компилировать и выполнять из ОС. На стандартной машине с Unix я бы использовал что-то вроде fork, чтобы выбрать исполняемый файл и дать ему собственный процесс. Однако я не могу найти подобную функциональность в freeRTOS. Моя другая идея - приближение к языку сценариев для разработки приложений, но, опять же, я не уверен, как запускать эти приложения ...
Итак, вопрос в том, как получить freeRTOS для запуска приложений от сторонних разработчиков, которые еще не встроены в ОС?