31 lines
729 B
C
31 lines
729 B
C
#ifndef _WORKQUEUE_H_
|
|
#define _WORKQUEUE_H_
|
|
|
|
#include "FreeRTOS.h"
|
|
#include "queue.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// 工作项结构体
|
|
typedef struct {
|
|
void (*function)(void *param); // 工作函数指针
|
|
void *parameter; // 工作函数参数
|
|
} workqueue_item_t;
|
|
|
|
// 工作队列句柄
|
|
typedef struct {
|
|
QueueHandle_t queue; // 存储工作项的队列
|
|
TaskHandle_t taskHandle; // 工作队列任务句柄
|
|
StaticTask_t statictask;
|
|
} workqueue_t;
|
|
|
|
workqueue_t *workqueue_create(const char *name, int priority, uint16_t queueLength, uint16_t stackSize);
|
|
int workqueue_submit(workqueue_t *workQueue, void (*function)(void *), void *parameter);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif |