task.h 533 B

1234567891011121314151617181920
  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 struct {
  8. u32 regs[16];//save the context
  9. u32 pstack; //stack addr
  10. u16 stack_size; //stack size
  11. u8 run_stat; //task stat, running, pending, blocked
  12. }tcb_t;
  13. void task_create(void *stack, u16 stack_size, task_func func, void *param);
  14. void task_delay(int ms); //task 延时
  15. void task_yield(void); //task 让出cpu
  16. void task_sched(void); //task开始调度
  17. #endif /*_OS_TASK_H__*/