Pero es correcto entonces lo que pase xD.. Lo que yo no entiendo, es que necesidad hay de usar 1 tarea mas, luego borrarla, cuando podrias directamente iniciar la tarea task1 como hice. Y siendo el task1 quien cree el task2, total luego el task1 queda encerrado en el while como toda tarea y no va a ejecutarse mas la parte que esta fuera del while, simplemente cuando vuelva al task1 sigue dentro del while
Ya que dependiendo del manejo de memoria que posee el RTOS y que pueden ser de varios tipos y formas, podrias llegar a "inutilizar" una parte de la RAM.
(Este formato, lo encontre en la pagina de ARM, es decir el de iniciar el task1 y dentro de ese el task2 )
Y las demas es usar los:
os_evt_wait_and
os_evt_wait_or
os_evt_set
Ya que si tenes ciertas tareas, directamente dejas que corran y que sea el mismo RTOS que se encargue de cambiarlas cada tick, y nada de bloquear una tarea por completo hasta que termine y luego cambiar a la otra. Por esto es que di el ejemplo de 2 leds en el cual se hace toggle en cada uno.
Ahora si decidis hacer que al final de la tarea se devuelva el poder al RTOS deberia haber una especie de instruccion que lo haga, me refiero a que lo haga antes de que se le termine el tiempo de esa tarea. De esa forma apenas termina, que comienze la tarea que sea que este en orden, sin tener uno que seguir esperando por una tarea que no hace nada de nada.
En todo caso, lo importante es inicializar los LEDs desde el main, antes de llamar al RTOS.
Crei que era de comun conocimiento, que primero debes configurar todo el microcontrolador y sus modulos, y luego procedes a darle arranque a todo. Incluso es lo que habias realizado al comienzo con tu Systeminit() y lo de esas otras funciones que no se que eran y les puse un ¿? como comentario al no poder ver el codigo.