engineer/controler/User/qpos/Qpos.h

59 lines
1.2 KiB
C

#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