Compatibilidad para el multiprocesamiento simétrico (SMP) - FreeRTOS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Compatibilidad para el multiprocesamiento simétrico (SMP)

La compatibilidad para SMP en el kernel de FreeRTOS permite que una instancia del kernel de FreeRTOS programe tareas en varios núcleos de procesador idénticos. Las arquitecturas del núcleo deben ser idénticas y compartir la misma memoria.

La API de Freertos sigue siendo prácticamente la misma entre las versiones de un solo núcleo y SMP, excepto en estas versiones adicionales. APIs Por lo tanto, una aplicación escrita para la versión de un solo núcleo de FreeRTOS debería compilarse con la versión de SMP con un esfuerzo mínimo o nulo. Sin embargo, es posible que haya algunos problemas funcionales, ya que algunas suposiciones que eran ciertas para las aplicaciones de un solo núcleo pueden dejar de serlo para las aplicaciones de varios núcleos.

Una suposición común es que una tarea de menor prioridad no se puede ejecutar mientras se está ejecutando una tarea de mayor prioridad. Si bien esto era cierto en un sistema de un solo núcleo, ya no lo es en los sistemas de varios núcleos, ya que se pueden ejecutar varias tareas simultáneamente. Si la aplicación se basa en las prioridades relativas de las tareas para excluirse mutuamente, podría observar resultados inesperados en un entorno multinúcleo.

Otra suposición común es que no se ISRs pueden ejecutar simultáneamente entre sí ni con otras tareas. Esto ya no es cierto en un entorno multinúcleo. El escritor de la aplicación debe garantizar una exclusión mutua adecuada al acceder a los datos compartidos entre tareas y ISRs.