task.h 578 B

1234567891011121314151617181920212223
  1. #ifndef _OS_TASK_H__
  2. #define _OS_TASK_H__
  3. /*
  4. Task如果没有调用task_yield/delay 永远执行下去
  5. */
  6. typedef void (*task_func)(void *);
  7. typedef enum {
  8. Task_Pending,
  9. Task_Blocking,
  10. Task_Running
  11. }Task_Stat_t;
  12. typedef struct {
  13. u32 pstack; //stack addr
  14. u16 stack_size; //stack size
  15. Task_Stat_t stat; //task stat, running, pending, blocked
  16. }tcb_t;
  17. void task_create(void *stack, u16 stack_size, task_func func, void *param);
  18. void task_delay(int ms); //task 延时
  19. void task_yield(void); //task 让出cpu
  20. void task_sched(void); //task开始调度
  21. #endif /*_OS_TASK_H__*/