Hola,
Un amigo está haciendo algún controlador con raspberry pi + python y no le daba bien el tiempo real así que hizo algo muy ingenioso con soft y fuzzy logic y lo logró pero me parece que era medio chancho.
Entonces le dije, "por qué no corrés linux en 3 cores y en el restante resolvés el tiempo real, tipo un coprocesador de tiempo real que mida y calcule y sólo te mande los resultados?"
Como ya lo hizo chancho pero anda, no tiene incentivo en investigar, pero a mí me queda la inquietud y por más que he buscado no he hallado referencias a ejecutar linux en 3 cores de una raspberry pi y freertos o baremetal en el restante, que dicho en general entiendo que sería
limitar linux a 3 cores
limitar linux a que no use toda la memoria
configurar las interrupciones para que le peguen a los cores de linux salvo algunas selectas para el restante
avisarle a linux que ciertos dispositivos no son suyos
ejecutar un programa o sistema operativo en el core restante informándole cual es su memoria, interrupciones y dispositivos
establecer algún método para intercambiar mensajes
quizás lidiar con la coherencia del cache?
Si esa lista conceptualmente es correcta y completa, de ahí a la realidad sin duda hay un arduo camino.
Luego ví que freertos no soporta oficialmente raspberry, así que me quedaría solo con baremetal.
¿alguien sabe o tiene pistas?
O quizás más sencillo, ¿se podría desde mismo linux asignarle a un proceso y a una interrupción un core y viceversa de modo exclusivo?
Gracias y saludos