📄 ucos.h
字号:
/* * File: ucos.h * * uC/OS Real-time multitasking kernel for the ARM processor. * * Created by Jean J. Labrosse. * ARM port by Marco Graziano (marcog@crl.com). * *//* Unsigned integer */typedef unsigned int uint;/* Register type */typedef volatile unsigned int ureg; /* Unsigned characters */typedef unsigned char byte;/* Pointer to function with no arguments returning int */typedef int (*PFI)(void);/* Pointer to function with no arguments returning void */typedef void (*PFV)(void);/* Pointer to function with a pointer argument returning void */typedef void (*PTV)(void *);/* * uC/OS configuration */#define OS_MAX_TASKS 64 /* max number of tasks in an application */#define OS_MAX_EVENTS 64 /* max number of events */#define OS_MAX_QS 64 /* max number of queues */#define OS_LO_PRIO 63 /* lowest priority *//* * Error codes */#define OS_NO_ERR 0#define OS_TIMEOUT 10#define OS_MBOX_FULL 20#define OS_Q_FULL 30#define OS_PRIO_EXIST 40#define OS_PRIO_ERR 41#define OS_SEM_ERR 50#define OS_SEM_OVF 51#define OS_TASK_DEL_ERR 60#define OS_TASK_DEL_IDLE 61#define OS_NO_MORE_TCB 70/* * Event control block. */typedef struct os_event { uint OSEventGrp; uint OSEventTbl[8]; int OSEventCnt; void *OSEventPtr;} OS_EVENT;/* * Task control block. */typedef struct os_tcb { void *OSTCBStkPtr; uint OSTCBStat; uint OSTCBPrio; uint OSTCBDly; uint OSTCBX; uint OSTCBY; uint OSTCBBitX; uint OSTCBBitY; OS_EVENT *OSTCBEventPtr; struct os_tcb *OSTCBNext; struct os_tcb *OSTCBPrev;} OS_TCB;/* * Queue control block. */typedef struct os_q { struct os_q *OSQPtr; void **OSQStart; void **OSQEnd; void **OSQIn; void **OSQOut; uint OSQSize; uint OSQEntries;} OS_Q;/* * Function prototypes. */extern void OSInit(void); /* initialize uC/OS */extern void OSStart(void); /* start multitasking */ extern void OSDisableInt(void); /* disable IRQ and FIQ interrupts */extern void OSEnableInt(void); /* enable IRQ and FIQ interrupts */extern void OSSchedLock(void); /* prevent rescheduling */extern void OSSchedUnlock(void); /* allow rescheduling */extern int OSTaskCreate(void(*)(void *), void *, void *, uint);extern int OSTaskDel(uint);extern int OSTaskChangePrio(uint, uint);extern void OSTimeDly(uint); /* delay a task */extern void OSTimeSet(uint); /* set system time */extern uint OSTimeGet(void); /* get system time */extern OS_EVENT *OSSemCreate(int); /* create a semaphore */extern uint OSSemPost(OS_EVENT *); /* signal semaphore */extern void OSSemPend(OS_EVENT *, uint, uint *); /* wait semaphore */extern OS_EVENT *OSMboxCreate(void *); /* create mailbox */extern uint OSMboxPost(OS_EVENT *, void *); /* post message */extern void *OSMboxPend(OS_EVENT *, uint, uint *); /* pend for message */extern OS_EVENT *OSQCreate(void **, uint); /* create a queue */extern uint OSQPost(OS_EVENT *, void *); /* post a message */extern void *OSQPend(OS_EVENT *, uint, uint *); /* pend for message */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -