📄 132.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://202.112.58.200"><font face="黑体"><big><big>Tsinghua</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> 嵌入式系统 (BM: turbolinux jacobw) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="嵌入式系统.htm">回到开始</a>][<a href="62.htm">上一层</a>][<a href="133.htm">下一篇</a>]
<hr><p align="left"><small>发信人: sunno (民工★节网失败ing), 信区: Embedded <br>
标 题: 【源代码】ucos (head file) <br>
发信站: BBS 水木清华站 (Sat Apr 15 14:05:03 2000) <br>
<br>
(本文转载自circuit精华区) <br>
<br>
发信人: mot (快乐的Saxphone), 信区: Circuit <br>
标 题: ucos(head file) <br>
发信站: BBS 水木清华站 (Wed Sep 23 11:56:23 1998) <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* uC/OS <br>
* The Real-Time Kernel <br>
* SYSTEM DECLARATIONS <br>
* <br>
* (c) Copyright 1992-1995, Jean J. Labrosse, Plantati <br>
on, FL <br>
* All Rights Reserved <br>
* <br>
* V1.08 <br>
* <br>
* File : UCOS.H <br>
* By : Jean J. Labrosse <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* uC/OS CONFIGURATION <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
#define OS_FAR far /* Define OS_FAR for the processor (i <br>
x86 CPUs) */ <br>
#define OS_STK_TYPE UBYTE /* Data type used for stack <br>
#define uCOS 0x80 /* Interrupt vector assigned to uC/OS <br>
<br>
#define OS_MAX_TASKS 63 /* Maximum number of tasks in your ap <br>
pliccation */ <br>
#define OS_MAX_EVENTS 20 /* Maximum number of event control bl <br>
ockss in your application */ <br>
#define OS_MAX_QS 5 /* Maximum number of queue control bl <br>
ockss in your application */ <br>
#define OS_IDLE_TASK_STK_SIZE 1024 /* Idle task stack size (BYTEs) <br>
#define OS_IDLE_TASK_STK_TOP 1024 /* Index into idle task top of stack <br>
#define OS_TASK_CHANGE_PRIO_EN 1 /* Include code for OSTaskChangePrio( <br>
) <br>
#define OS_TASK_DEL_EN 1 /* Include code for OSTaskDel() <br>
#define OS_SEM_EN 1 /* Include code for SEMAPHORES <br>
#define OS_MBOX_EN 1 /* Include code for MAILBOXES <br>
#define OS_Q_EN 1 /* Include code for QUEUES <br>
#define OS_TASK_SUSPEND_EN 1 /* Include code for OSTaskSuspend() a <br>
nd OOSTaskResume() */ <br>
/*$PAGE*/ <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* MISCELLANEOUS <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
#ifdef OS_GLOBALS <br>
#define OS_EXT <br>
#else <br>
#define OS_EXT extern <br>
#endif <br>
#define OS_PRIO_SELF 0xFF /* Indicate SELF priority <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* uC/OS ERROR CODES <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
#define OS_NO_ERR 0 <br>
#define OS_TIMEOUT 10 <br>
#define OS_TASK_NOT_EXIST 11 <br>
#define OS_MBOX_FULL 20 <br>
#define OS_MBOX_MSG_NOT_AVAIL 21 <br>
#define OS_Q_FULL 30 <br>
#define OS_Q_MSG_NOT_AVAIL 31 <br>
#define OS_PRIO_EXIST 40 <br>
#define OS_PRIO_ERR 41 <br>
#define OS_PRIO_INVALID 42 <br>
#define OS_SEM_ERR 50 <br>
#define OS_SEM_OVF 51 <br>
#define OS_SEM_NOT_AVAIL 52 <br>
#define OS_TASK_DEL_ERR 60 <br>
#define OS_TASK_DEL_IDLE 61 <br>
#define OS_TASK_DEL_REQ 62 <br>
#define OS_NO_MORE_TCB 70 <br>
#define OS_TIME_NOT_DLY 80 <br>
#define OS_TASK_SUSPEND_PRIO 90 <br>
#define OS_TASK_SUSPEND_IDLE 91 <br>
#define OS_TASK_RESUME_PRIO 100 <br>
#define OS_TASK_NOT_SUSPENDED 101 <br>
/*$PAGE*/ <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* EVENT CONTROL BLOCK <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
typedef struct os_event { <br>
UBYTE OSEventGrp; /* Group corresponding to tasks waiti <br>
ng ffor event to occur */ <br>
UBYTE OSEventTbl[8]; /* List of tasks waiting for event to <br>
occcur */ <br>
UWORD OSEventCnt; /* Count of used when event is a sema <br>
phorre */ <br>
void *OSEventPtr; /* Pointer to message or queue struct <br>
ure */ <br>
} OS_EVENT; <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* uC/OS TASK CONTROL BLOCK <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
typedef struct os_tcb { <br>
void OS_FAR *OSTCBStkPtr; /* Pointer to current top of stack <br>
UBYTE OSTCBStat; /* Task status <br>
UBYTE OSTCBPrio; /* Task priority (0 == highest, 63 == <br>
lowwest) */ <br>
UWORD OSTCBDly; /* Nbr ticks to delay task or, timeou <br>
t waaiting for event */ <br>
BOOLEAN OSTCBDelReq; /* Indicates whether a task needs to <br>
deleete itself */ <br>
UBYTE OSTCBX; /* Bit position in group correspondi <br>
ng tto task priority (0..7) */ <br>
UBYTE OSTCBY; /* Index into ready table correspondi <br>
ng tto task priority */ <br>
UBYTE OSTCBBitX; /* Bit mask to access bit position in <br>
reaady table */ <br>
UBYTE OSTCBBitY; /* Bit mask to access bit position in <br>
reaady group */ <br>
OS_EVENT *OSTCBEventPtr; /* Pointer to event control block <br>
void *OSTCBMsg; /* Message received from OSMboxPost() <br>
or OSQPost() */ <br>
struct os_tcb *OSTCBNext; /* Pointer to next TCB in the TCB <br>
lisst */ <br>
struct os_tcb *OSTCBPrev; /* Pointer to previous TCB in the TCB <br>
lisst */ <br>
} OS_TCB; <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* QUEUE CONTROL BLOCK <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
*/ <br>
typedef struct os_q { <br>
struct os_q *OSQPtr; /* Link to next queue control block i <br>
n liist of free blocks */ <br>
void **OSQStart; /* Pointer to start of queue data <br>
void **OSQEnd; /* Pointer to end of queue data <br>
void **OSQIn; /* Pointer to where next message will <br>
be inserted in the Q */ <br>
void **OSQOut; /* Pointer to where next message will <br>
be extracted from the Q */ <br>
UBYTE OSQSize; /* Size of queue (maximum number of e <br>
ntriies) */ <br>
UBYTE OSQEntries; /* Current number of entries in the q <br>
ueuee */ <br>
} OS_Q; <br>
/*$PAGE*/ <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* uC/OS GLOBAL VARIABLES <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
*/ <br>
/* SYSTEM VARIABLES <br>
OS_EXT UWORD OSCtxSwCtr; /* Counter of number of context switc <br>
hes */ <br>
OS_EXT ULONG OSIdleCtr; /* Idle counter <br>
OS_EXT UBYTE OSIntNesting; /* Interrupt nesting level <br>
OS_EXT BOOLEAN OSRunning; /* Flag indicating that kernel is run <br>
ningg */ <br>
OS_EXT OS_TCB *OSTCBCur; /* Pointer to currently running TCB <br>
OS_EXT OS_TCB *OSTCBHighRdy; /* Pointer to highest priority TCB re <br>
ady to run */ <br>
OS_EXT OS_TCB *OSTCBPrioTbl[64]; /* Table of pointers to all created T <br>
CBs */ <br>
/* <br>
**************************************************************************** <br>
****************************** <br>
* uC/OS FUNCTION PROTOTYPES <br>
**************************************************************************** <br>
****************************** <br>
*/ <br>
void OSInit(void); <br>
void OSStart(void); <br>
void OSStartHighRdy(void); <br>
void OSSched(void); <br>
void OSSchedLock(void); <br>
void OSSchedUnlock(void); <br>
UBYTE OSTaskCreate(void (OS_FAR *task)(void *pd), void *pdata, void *p <br>
stk,, UBYTE prio); <br>
UBYTE OSTaskDel(UBYTE prio); <br>
UBYTE OSTaskDelReq(UBYTE prio); <br>
UBYTE OSTaskChangePrio(UBYTE oldprio, UBYTE newprio); <br>
UBYTE OSTaskSuspend(UBYTE prio); <br>
UBYTE OSTaskResume(UBYTE prio); <br>
UBYTE OSTCBInit(UBYTE prio, void OS_FAR *stk); <br>
void OSIntEnter(void); <br>
void OSIntExit(void); <br>
void OSIntCtxSw(void); <br>
void OS_FAR OSCtxSw(void); <br>
void OS_FAR OSTickISR(void); <br>
void OSTimeDly(UWORD ticks); <br>
UBYTE OSTimeDlyResume(UBYTE prio); <br>
void OSTimeTick(void); <br>
void OSTimeSet(ULONG ticks); <br>
ULONG OSTimeGet(void); <br>
OS_EVENT *OSSemCreate(UWORD value); <br>
UWORD OSSemAccept(OS_EVENT *pevent); <br>
UBYTE OSSemPost(OS_EVENT *pevent); <br>
void OSSemPend(OS_EVENT *pevent, UWORD timeout, UBYTE *err); <br>
OS_EVENT *OSMboxCreate(void *msg); <br>
void *OSMboxAccept(OS_EVENT *pevent); <br>
UBYTE OSMboxPost(OS_EVENT *pevent, void *msg); <br>
void *OSMboxPend(OS_EVENT *pevent, UWORD timeout, UBYTE *err); <br>
OS_EVENT *OSQCreate(void **start, UBYTE size); <br>
void *OSQAccept(OS_EVENT *pevent); <br>
UBYTE OSQPost(OS_EVENT *pevent, void *msg); <br>
void *OSQPend(OS_EVENT *pevent, UWORD timeout, UBYTE *err) <br>
-- <br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.7.200] <br>
</small><hr>
<p align="center">[<a href="嵌入式系统.htm">回到开始</a>][<a href="62.htm">上一层</a>][<a href="133.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -