⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucos51.dif

📁 8051的UCOS实时操作系统(源代码)
💻 DIF
字号:
--- SOURCE/ucos.c	Sat Jun 22 08:22:48 1996
+++ ucos.c	Wed Jul 16 15:22:18 1997
@@ -1,3 +1,16 @@
+/* $Id: ucos.c,v 1.14 1997/07/16 13:22:18 gianpi Exp $
+ *
+ * Description:
+ *	uC/OS - Target-independent code.
+ *
+ * Author[s]:
+ *	Jean Labrosse		72644.3724@compuserve.com
+ *	Gianpaolo Macario	gianpi@geocities.com
+ *
+ * Conditionalizations:
+ *	_CC51
+ */
+
 /*
 *********************************************************************************************************
 *                                                 uC/OS
@@ -15,7 +28,7 @@
 */
 
 #define  OS_GLOBALS
-#include "INCLUDES.H"
+#include "includes.h"
 
 /*
 *********************************************************************************************************
@@ -41,7 +54,7 @@
 *********************************************************************************************************
 */
 
-UBYTE const OSMapTbl[]   = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
+UBYTE const _rom OSMapTbl[]   = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
 
 /*
 *********************************************************************************************************
@@ -52,7 +65,7 @@
 *********************************************************************************************************
 */
 
-UBYTE const OSUnMapTbl[] = {
+UBYTE const _rom OSUnMapTbl[] = {
     0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
     5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
@@ -77,6 +90,10 @@
 *********************************************************************************************************
 */
 
+#ifdef _CC51
+#define static		/* DBG: MICE51 does not show static vars */
+#endif
+
 static  OS_TCB     *OSTCBList;                 /* Pointer to doubly linked list of TCBs                */
 static  UBYTE       OSRdyGrp;                  /* Ready list group                                     */
 static  UBYTE       OSRdyTbl[8];               /* Table of tasks which are ready to run                */
@@ -91,6 +108,9 @@
 static  OS_EVENT    OSEventTbl[OS_MAX_EVENTS];             /* Table of EVENT control blocks            */
 static  OS_Q        OSQTbl[OS_MAX_QS];                     /* Table of QUEUE control blocks            */
 
+#ifdef _CC51
+#undef static
+#endif
 
 /*
 *********************************************************************************************************
@@ -98,8 +118,9 @@
 *********************************************************************************************************
 */
 
-static  void OS_FAR OSTaskIdle(void *data);
+static  void /* OS_FAR */ OSTaskIdle(void *pdata);
 static  void        OSDummy(void);
+
 /*$PAGE*/
 /*
 *********************************************************************************************************
@@ -152,15 +173,16 @@
 *********************************************************************************************************
 */
 
-static void OS_FAR OSTaskIdle(void *data)
+static void OS_FAR OSTaskIdle(void *pdata)
 {
-    data = data;
+    pdata = pdata;
     while (1) {
         OS_ENTER_CRITICAL();
         OSIdleCtr++;
         OS_EXIT_CRITICAL();
     }
 }
+
 /*$PAGE*/
 /*
 *********************************************************************************************************
@@ -254,7 +276,7 @@
 *********************************************************************************************************
 */
 
-UBYTE OSTCBInit(UBYTE prio, void OS_FAR *stk)
+UBYTE OSTCBInit(UBYTE prio, void /* OS_FAR */ *stk)
 {
     OS_TCB *ptcb;
 
@@ -392,6 +414,7 @@
     }
 }
 #endif
+
 /*$PAGE*/
 #if OS_TASK_DEL_EN
 /*
@@ -1282,3 +1305,5 @@
 static void  OSDummy(void)
 {
 }
+
+/* === End of File === */
--- SOURCE/ucos.h	Sun Oct  8 10:22:26 1995
+++ ucos.h	Mon Jul 14 15:25:54 1997
@@ -1,3 +1,13 @@
+/* $Id: ucos.h,v 1.9 1997/07/14 13:20:25 gianpi Exp $
+ *
+ * Description:
+ *	uC/OS - System Declarations.
+ *
+ * Author[s]:
+ *	Jean Labrosse		72644.3724@compuserve.com
+ *	Gianpaolo Macario	gianpi@geocities.com
+ */
+
 /*
 *********************************************************************************************************
 *                                                 uC/OS
@@ -14,6 +24,9 @@
 *********************************************************************************************************
 */
 
+#ifndef _UCOS_H_
+#define _UCOS_H_ 1
+
 /*
 *********************************************************************************************************
 *                                            MISCELLANEOUS
@@ -66,6 +79,7 @@
 
 #define OS_TASK_RESUME_PRIO     100
 #define OS_TASK_NOT_SUSPENDED   101
+
 /*$PAGE*/
 /*
 *********************************************************************************************************
@@ -88,7 +102,7 @@
 */
 
 typedef struct os_tcb {
-    void   OS_FAR *OSTCBStkPtr;        /* Pointer to current top of stack                              */
+    void   /* OS_FAR */ *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        */
@@ -119,6 +133,7 @@
     UBYTE          OSQSize;            /* Size of queue (maximum number of entries)                    */
     UBYTE          OSQEntries;         /* Current number of entries in the queue                       */
 } OS_Q;
+
 /*$PAGE*/
 /*
 *********************************************************************************************************
@@ -130,8 +145,8 @@
 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   * _data OSTCBCur;     /* Pointer to currently running TCB                             */
+OS_EXT  OS_TCB   * _data OSTCBHighRdy; /* Pointer to highest priority TCB ready to run                 */
 OS_EXT  OS_TCB    *OSTCBPrioTbl[64];   /* Table of pointers to all created TCBs                        */
 
 /*
@@ -149,13 +164,13 @@
 void        OSSchedLock(void);
 void        OSSchedUnlock(void);
 
-UBYTE       OSTaskCreate(void (OS_FAR *task)(void *pd), void *pdata, void *pstk, UBYTE prio);
+UBYTE       OSTaskCreate(void (/* OS_FAR */ *task)(void *pd), void *pdata, void *pstk, UBYTE prio);
 UBYTE       OSTaskDel(UBYTE prio);
 UBYTE       OSTaskDelReq(UBYTE prio);
 UBYTE       OSTaskChangePrio(UBYTE oldprio, UBYTE newprio);
 UBYTE       OSTaskSuspend(UBYTE prio);
 UBYTE       OSTaskResume(UBYTE prio);
-UBYTE       OSTCBInit(UBYTE prio, void OS_FAR *stk);
+UBYTE       OSTCBInit(UBYTE prio, void /* OS_FAR */ *stk);
 
 void        OSIntEnter(void);
 void        OSIntExit(void);
@@ -184,3 +199,7 @@
 void       *OSQAccept(OS_EVENT *pevent);
 UBYTE       OSQPost(OS_EVENT *pevent, void *msg);
 void       *OSQPend(OS_EVENT *pevent, UWORD timeout, UBYTE *err);
+
+#endif  /* ndef _UCOS_H_ */
+
+/* === End of File === */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -