![]() |
FreeRTOS haciendo parpadear un LED en un ATMega328p |
Port FreeRTOS
FreeRTOS es un sistema operativo de tiempo real de open source ligero que puede caber en microcontroladores pequeños, como es el caso del ATMega328. Como es lógico, el código de FreeRTOS no es independiente del hardware dónde se vaya a usar, adaptarlo a uno específico es lo que se suele llamar "port".Portar FreeRTOS se reduce a implementar/modificar dos archivos:
- port.c: Donde se implementan las funciones de cambio de contexto, gestión del stack y configuración del timer del sistema, entre otras.
- portmacro.h: Aquí se defines algunas macros dependientes del hardware para la habilitación/desabilitación de las interrupciones y definición de tipos.
- heap_#.c: Los archivos heap_1.c, heap_2.c, etc implementan las funcionalidades de reserva dinámica de memoria. FreeRTOS tiene varios sistemas de gestión de memoria, en nuestro caso hemos elegido el más simple por ser el más eficiente (heap_1.c).
Estructura y CMake
Se ha optado por CMake como herramienta de compilación. Además de comprobar las si se disponen de las herramientas necesarias y generar el makefile para compilar, se ha creado un "target" para facilitar la programación de la placa. De forma que, al hacer make, se compila el firmware y se prepara el binario para programar el microcontrolador. Y al hacer make program grabamos este binario en el microcontrolador.La programación del micro se puede hacer de distintas formas en función de la placa de desarrollo y el programador/depurador del que se disponga. Para establecer una configuración específica basta con modificar las variables en CMakeLists.txt dispuesta para ello.
No hay comentarios:
Publicar un comentario