|
|
@@ -0,0 +1,20 @@
|
|
|
+#ifndef _OS_TASK_H__
|
|
|
+#define _OS_TASK_H__
|
|
|
+/*
|
|
|
+Task如果没有调用task_yield/delay 永远执行下去
|
|
|
+*/
|
|
|
+typedef void (*task_func)(void *);
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ u32 regs[16];//save the context
|
|
|
+ u32 pstack; //stack addr
|
|
|
+ u16 stack_size; //stack size
|
|
|
+ u8 run_stat; //task stat, running, pending, blocked
|
|
|
+}tcb_t;
|
|
|
+
|
|
|
+void task_create(void *stack, u16 stack_size, task_func func, void *param);
|
|
|
+void task_delay(int ms); //task 延时
|
|
|
+void task_yield(void); //task 让出cpu
|
|
|
+void task_sched(void); //task开始调度
|
|
|
+#endif /*_OS_TASK_H__*/
|
|
|
+
|