/*------------------------------------------------------------------- ** ** Fichero: ** kernelcoop.c 12/1/2021 ** ** (c) J.M. Mendias ** Programación de Sistemas y Dispositivos ** Facultad de Informática. Universidad Complutense de Madrid ** ** Propósito: ** Kernel de planificación no expropiativa de tareas cooperativas ** ** Notas de diseño: ** **-----------------------------------------------------------------*/ #include #include static task_t tasks[MAX_TASKS]; /* Lista ordenada de TCBs */ void delete_task( uint32 id ) { tasks[id].pfunction = NULL; tasks[id].period = 0; tasks[id].ticks = 0; tasks[id].ready = FALSE; } uint32 create_task( void (*pfunction)( void ), uint32 period ) { uint32 id; for( id=0; id