[en] ABSTRACT: Currently the company AdaCore, developer of the GNAT compiler for the Ada language, includes the micro:bit among the microcontrollers supported by its compiler. In addition, AdaCore also provides mi cro:bit support in the Ada Drivers Library. The micro:bit is based on an ARM Cortex-M0 microcontroller with 256KB of flash memory and 16KB of RAM. However, this support offered by AdaCore for micro:bit has a limitation, the small number of tasks that can be created with it. Since the micro:bit only has 16KB of RAM and the default heap size suggested by GNAT is 4KB, it is not possible to create more than three tasks. An option to try to alleviate this limitation that appears using the official support of AdaCore is to use M2OS. M2OS is an operating system developed by the Software Engineering and Real Time group of the Computer Engineering department, and what interests us most about this operating system is that it implements a scheduling policy that allows the stacks of all the system tasks share the same memory area. This memory saving will allow to overcome the limitation in the number of tasks that suffers the original support provided by the GNAT compiler. To test that the porting of M2OS is correct, we executed the examples provided by AdaCore on M2OS and, in addition, to verify that we can increase the number of tasks that we can use simultaneously, we developed a library for the DFRobot Maqueen robot to use some of its integrated devices such as line follower sensors, motors, lights etc. implemented concurrently through multiple tasks.

[es] RESUMEN: En la actualidad la empresa AdaCore, desarrolladora del compilador GNAT para el lenguaje Ada, incluye el micro:bit entre los microcontroladores soportados por su compilador. Además, AdaCore también proporciona soporte para micro:bit en la librería Ada Drivers Library. El micro:bit está basado en un microcontrolador ARM Cortex-M0 con 256KB de memoria flash y 16KB de RAM. Sin embargo, el soporte que ofrece AdaCore para micro:bit tiene una limitación, el reducido número de tareas que es posible ejecutar de forma simultánea. Dado que el micro:bit solo tiene 16KB de RAM y que el tamaño de pila por defecto sugerido por GNAT es de 4KB, no es posible crear más de tres tareas. Una opción para intentar paliar esta limitación que nos aparece utilizando el soporte oficial de AdaCore es utilizar M2OS. M2OS es un sistema operativo desarrollado por el grupo de Ingeniería Software y Tiempo Real del departamento de Ingeniería Informática, y, lo que más nos interesa de este sistema operativo es que implementa una política de planificación que permite que las pilas de todas las tareas del sistema compartan el mismo área de memoria. Este ahorro de memoria permitirá superar la limitación en el número de tareas que adolece el soporte original proporcionado por el compilador GNAT. En este proyecto se ha realizado el portado del sistema operativo M2OS al micro:bit. Para comprobar que el portado es correcto se ejecutaron los ejemplos proporcionados por AdaCore sobre M2OS y, además, para comprobar que podemos incrementar el número de tareas que podemos utilizar de forma simultánea, se desarrollará una librería para el robot Maqueen de DFRobot para utilizar algunos de sus dispositivos integrados como sensores sigue líneas, motores, luces etc... en un programa concurrente implementado mediante tareas.