📄 ucos16.h
字号:
/*
*********************************************************************************************************
* uC/OS-16
* The Real-Time Kernel
*
* File : uCOS16.H
* By : zhang xian
* Date : 2006-11-26
*********************************************************************************************************
*/
#define OS_VERSION 100 /* 不允许中断嵌套 */
#ifdef OS_GLOBALS
#define OS_EXT
#else
#define OS_EXT extern
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
/*
*********************************************************************************************************
* ERROR CODES
*********************************************************************************************************
*/
#define OS_NO_ERR 0
#define OS_TIMEOUT 3
/*
*********************************************************************************************************
* Global variable
*********************************************************************************************************
*/
OS_EXT data INT8U OSTaskID; // 当前任务ID[0..7] or [0..15]
OS_EXT data INT8U OSNextTaskID;
OS_EXT data INT8U OSIntNesting;
OS_EXT data OS_CNT_SIZE OSIdleCnt; // 空闲计数器
OS_EXT data OS_CNT_SIZE OSSysCnt; // 系统计数器
////////////////////////////////////////////////////////////////////////////
/// 操作系统核心数据,不要改动顺序 //
////////////////////////////////////////////////////////////////////////////
OS_EXT data INT8U OSDlyTicks[OS_MAX_TASKS]; // 任务延时队列 //
OS_EXT data OS_STK OSISRStack[OS_ISR_STACK_SIZE]; // 中断堆栈兼空闲任务堆栈 //
OS_EXT data OS_SP OSStackPtr[OS_MAX_TASKS]; // 任务堆栈指针队列 //
OS_EXT idata OS_STK OSStack[OS_STACK_SIZE]; // 全部任务堆栈 //
////////////////////////////////////////////////////////////////////////////
#if EN_OS_TASK_STACK_CHK > 0
OS_EXT data OS_SP OSStackBottom[OS_MAX_TASKS];
OS_EXT data INT8U OSStackFreeBytes[OS_MAX_TASKS+1]; //包括中断任务
#endif
#define OS_SIZE INT8U
#if EN_OS_SEM > 0
OS_EXT data INT8U OSSemBuf[OS_MAX_SEMS]; // 信号量计数器队列
OS_EXT data OS_SIZE OSSemTask[OS_MAX_SEMS]; // 信号量等待任务队列
#endif
OS_EXT data OS_SIZE OSTaskReady; // 就绪任务表
extern void (* const TaskFunction[OS_MAX_TASKS])(void);
extern code OS_SIZE OSMapTbl[];
extern code INT8U StackSize[]; // 每个任务的堆栈大小
/*
*********************************************************************************************************
* SEMAPHORE MANAGEMENT
*********************************************************************************************************
*/
#if EN_OS_SEM > 0
#if EN_OS_SEM_ACCEPT > 0
INT8U OSSemAccept(INT8U SemID);
#endif
void OSSemInit (INT8U SemIndex, INT8U SemCount);
INT8U OSSemPend (INT8U SemIndex, INT8U Timeout) reentrant;
void OSSemPost (INT8U SemIndex) reentrant;
INT8U OSSemQuery(INT8U SemIndex) reentrant;
#endif
/*
*********************************************************************************************************
* TASK MANAGEMENT
*********************************************************************************************************
*/
#if EN_OS_TASK_SUSPEND > 0
INT8U OSTaskResume(INT8U TaskID) reentrant;
INT8U OSTaskSuspend(INT8U TaskID) reentrant;
#endif
#if EN_OS_TASK_STACK_CHK > 0
void OSTaskStkChk( void ) reentrant;
#endif
/*
*********************************************************************************************************
* TIME MANAGEMENT
*********************************************************************************************************
*/
void OSTimeDly(INT8U Ticks) reentrant;
#if EN_OS_TIME_DLY_RESUME > 0
INT8U OSTimeDlyResume(INT8U TaskID) reentrant;
#endif
void OSTimeTick(void);
/*
*********************************************************************************************************
* MISCELLANEOUS
*********************************************************************************************************
*/
void OSStart(void);
/*
*********************************************************************************************************
* INTERNAL FUNCTION PROTOTYPES
* (Your application MUST NOT call these functions)
*********************************************************************************************************
*/
void OS_Sched(void);
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
* (Target Specific Functions)
*********************************************************************************************************
*/
void OSCtxSw(void);
void OSIntCtxSw(void);
unsigned char FindBitNum(OS_SIZE OSBitTaskS);
void OSIntEnter(void);
void OSIntExit(void);
/*******************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -