源代码分析uCH.doc_第1页
源代码分析uCH.doc_第2页
源代码分析uCH.doc_第3页
源代码分析uCH.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/* Scaled uCOS.H* The Real-Time Kernel* (c) Copyright 1992-1995, Jean J. Labrosse, Plantation, FL * All Rights Reserved* from: V1.08* File : Scl_UCOS.H* By : Jean J. Labrosse Scaled by Beibei Shao */* uC/OS CONFIGURATION*/#define OS_STK_TYPE UBYTE /* Data type used for stack */#define OS_MAX_TASKS 20 /* Maximum number of tasks in your application */#define OS_MAX_EVENTS 20 /* Max. Number of event control blocks in the application */#define OS_IDLE_TASK_STK_SIZE 80 /* Idle task stack size (BYTEs) */#define OS_SEM_EN 1 /* Include code for SEMAPHORES */#define OS_TASK_SUSPEND_EN 1 /* Include code for OSTaskSuspend() and OSTaskResume() */* MISCELLANEOUS*/#ifdef OS_GLOBALS#define OS_EXT#else#define OS_EXT extern#endif#define OS_PRIO_SELF 0xFF /* Indicate SELF priority */* uC/OS ERROR CODES*/#define OS_NO_ERR 0#define OS_TIMEOUT 10#define OS_TASK_NOT_EXIST 11#define OS_PRIO_EXIST 40#define OS_PRIO_ERR 41#define OS_PRIO_INVALID 42#define OS_SEM_ERR 50#define OS_SEM_OVF 51#define OS_SEM_NOT_AVAIL 52#define OS_NO_MORE_TCB 70#define OS_TIME_NOT_DLY 80#define OS_TASK_SUSPEND_PRIO 90#define OS_TASK_SUSPEND_IDLE 91#define OS_TASK_RESUME_PRIO 100#define OS_TASK_NOT_SUSPENDED 101/* EVENT CONTROL BLOCK*/typedef struct os_event UBYTE OSEventGrp; /* Group corresponding to tasks waiting for event to occur */ UBYTE OSEventTbl8; /* List of tasks waiting for event to occur */ UWORD OSEventCnt; /* Count of used when event is a semaphore */ void *OSEventPtr; /* Pointer to message or queue structure */ OS_EVENT;/* uC/OS TASK CONTROL BLOCK*/typedef struct os_tcb void *OSTCBStkPtr; /* Pointer to current top of stack */ UBYTE OSTCBStat; /* Task status */ UBYTE OSTCBPrio; /* Task priority (0 = highest, 63 = lowest) */ UWORD OSTCBDly; /* Nbr ticks to delay task or, timeout waiting for event */ UBYTE OSTCBX; /* Bit position in group corresponding to task priority (0.7) */ UBYTE OSTCBY; /* Index into ready table corresponding to task priority */ UBYTE OSTCBBitX; /* Bit mask to access bit position in ready table */ UBYTE OSTCBBitY; /* Bit mask to access bit position in ready group */ OS_EVENT *OSTCBEventPtr; /* Pointer to event control block */ struct os_tcb *OSTCBNext; /* Pointer to next TCB in the TCB list */ struct os_tcb *OSTCBPrev; /* Pointer to previous TCB in the TCB list */ OS_TCB;/* uC/OS GLOBAL VARIABLES*/ /* SYSTEM VARIABLES */OS_EXT UWORD OSCtxSwCtr; /* Counter of number of context switches */OS_EXT ULONG OSIdleCtr; /* Idle counter */OS_EXT UBYTE OSIntNesting; /* Interrupt nesting level */OS_EXT BOOLEAN OSRunning; /* Flag indicating that kernel is running */OS_EXT OS_TCB *OSTCBCur; /* Pointer to currently running TCB */OS_EXT OS_TCB *OSTCBHighRdy; /* Pointer to highest priority TCB ready to run */OS_EXT OS_TCB *OSTCBPrioTbl64; /* Table of pointers to all created TCBs */* uC/OS FUNCTION PROTOTYPES*/void OSInit(void);void OSStart(void);void OSStartHighRdy(void);void OSSched(void);void OSSchedLock(void);void OSSchedUnlock(void);UBYTE OSTaskCreate(void (*task)(void *pd), void *pdata, void *pstk, UBYTE prio);UBYTE OSTaskSuspend(UBYTE prio);UBYTE OSTaskResume(UBYTE prio);UBYTE OSTCBInit(UBYTE prio, void *stk);void OSIntEnter(void);void OSIntExit(void);void OSIntCtxSw(void);void OSCtxSw(void);void OSTickISR(void);void OSTimeDly(UWORD ticks);UBYTE OSTimeD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论