#ifndef __QPOS_H #define __QPOS_H #include "main.h" #define Qpos_heap_size 4096 //单位4bytes #define PortSVChandler SVC_Port //SVC异常入口 #define PortPendSVhandler PendSV_Port //PendSV异常入口 #define PortSysTickHandler SysTick_Port //Systick异常入口 typedef enum TaskState { run=0,ready,pend,delay }TaskState; /** * 任务控制块结构体 */ typedef struct TCB_t{ uint32_t *sp; // 任务栈顶 uint8_t priority;//任务优先级 TaskState state;//任务状态 uint32_t xWakeTime;//Delay时唤醒时间 struct TCB_t *pxPrev;//下一任务地址 struct TCB_t *pxNext;//上一任务地址 }TCB_t; /** * 任务链表结构体 */ typedef struct { uint32_t TaskNumber; //节点个数 TCB_t RootTask; //根节点 }TaskList; void vQposInit(); void vQposStart(); TCB_t * vTaskCreate(void (*task_entry)(void* param),uint32_t stack_size,uint32_t priority,void* param); void vTaskDelete(TCB_t* task); void vTaskDelay(uint32_t time); uint32_t uGetOsTick(); void asas(); void cesi(); // void PortPendSVhandler(); // void PortSVChandler(); void port_trigger_PendSV_Handler(void); #endif