?? os_core.lst
字號:
C51 COMPILER V7.01 OS_CORE 03/06/2003 10:20:02 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE OS_CORE
OBJECT MODULE PLACED IN .\OS_CORE.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\OS\OS_CORE.C BROWSE NOINTPROMOTE INCDIR(G:\S_RTOS_TEST\INC\) DEBUG OBJEC
-TEXTEND PRINT(.\OS_CORE.lst) OBJECT(.\OS_CORE.obj)
stmt level source
1 /*********************************************************************************************************
2 ** Small RTOS(51)
3 ** The Real-Time Kernel(For Keil c51)
4 **
5 ** (c) Copyright 2002-2003, chenmingji
6 ** All Rights Reserved
7 **
8 ** V1.12.1
9 **
10 **
11 **--------------文件信息--------------------------------------------------------------------------------
12 **文 件 名: OS_CORE.C
13 **創 建 人: 陳明計
14 **最后修改日期: 2003年2月5日
15 **描 述: Small RTOS(51)與CPU無關的核心代碼
16 **
17 **--------------歷史版本信息----------------------------------------------------------------------------
18 ** 創建人: 陳明計
19 ** 版 本: V0.50
20 ** 日 期: 2002年2月22日
21 ** 描 述: 原始版本
22 **
23 **------------------------------------------------------------------------------------------------------
24 ** 修改人: 陳明計
25 ** 版 本: V0.51
26 ** 日 期: 2002年3月10日
27 ** 描 述: 修改函數OSWait使其占用資源更少,兼容性更好
28 **
29 **------------------------------------------------------------------------------------------------------
30 ** 修改人: 陳明計
31 ** 版 本: V0.52
32 ** 日 期: 2002年5月9日
33 ** 描 述: 更正函數OSWait的返回值錯誤
34 **
35 **------------------------------------------------------------------------------------------------------
36 ** 修改人: 陳明計
37 ** 版 本: V0.60
38 ** 日 期: 2002年5月10日
39 ** 描 述: 使所有函數在keil c51可以重入
40 **
41 **------------------------------------------------------------------------------------------------------
42 ** 修改人: 陳明計
43 ** 版 本: V1.00
44 ** 日 期: 2002年6月20日
45 ** 描 述: 使用戶可以進行更多的配置
46 **
47 **------------------------------------------------------------------------------------------------------
48 ** 修改人: 陳明計
49 ** 版 本: V1.10
50 ** 日 期: 2002年9月1日
51 ** 描 述: 根據當前版本進行一些必要改變
52 **
53 **------------------------------------------------------------------------------------------------------
54 ** 修改人: 陳明計
C51 COMPILER V7.01 OS_CORE 03/06/2003 10:20:02 PAGE 2
55 ** 日 期: 2002年9月4日
56 ** 版 本: V1.10.1
57 ** 描 述: 更正OSTimeTick的Bug,它在keil c51中不會有問題,但移植的其它系統可能出錯。
58 ** 統一了一下格式。
59 **------------------------------------------------------------------------------------------------------
60 ** 修改人: 陳明計
61 ** 版 本: V1.10.2
62 ** 日 期: 2002年9月9日
63 ** 描 述: 更正OSWait()的Bug,這個Bug造成在OSWait()以K_TMO為參數時,在極端情況下
64 ** 可能鎖死任務。
65 **------------------------------------------------------------------------------------------------------
66 ** 修改人: 陳明計
67 ** 版 本: V1.10.4
68 ** 日 期: 2002年10月5日
69 ** 描 述: 顯示初始化變量OSTaskID和OSNextTaskID
70 **
71 **------------------------------------------------------------------------------------------------------
72 ** 修改人: 陳明計
73 ** 版 本: V1.10.5
74 ** 日 期: 2002年10月19日
75 ** 描 述: 修改函數OSIntExit()和OSSched()在允許中斷管理代碼的BUG,它在用戶
76 ** 程序邏輯不太正常時可能引起系統崩潰。更正2002年9月9日修訂帶來的
77 ** 新Bug。
78 **------------------------------------------------------------------------------------------------------
79 ** 修改人: 陳明計
80 ** 版 本: V1.11.0
81 ** 日 期: 2002年12月2日
82 ** 描 述: 根據新版本需求更改開、關中斷代碼,增加注釋;更正OSWait()的Bug,
83 ** 這個Bug造成在OSWait()以(K_TMO|K_SIG)為參數時,在極端情況下
84 ** 可能鎖死任務。
85 **
86 **------------------------------------------------------------------------------------------------------
87 ** 修改人: 陳明計
88 ** 版 本: V1.12.0
89 ** 日 期: 2003年1月23日
90 ** 描 述: 用戶可以使用全部16個任務,增加代碼可靠性
91 **
92 **------------------------------------------------------------------------------------------------------
93 ** 修改人: 陳明計
94 ** 版 本: V1.12.1
95 ** 日 期: 2003年1月23日
96 ** 描 述: 修正OSIntSendSignal()的bug
97 **
98 **--------------當前版本修訂------------------------------------------------------------------------------
99 ** 修改人:
100 ** 日 期:
101 ** 描 述:
102 **
103 **------------------------------------------------------------------------------------------------------
104 ********************************************************************************************************/
105
106 #define IN_OS_CORE
107 #include "..\inc\config.h"
*** ERROR C318 IN LINE 60 OF ..\inc\config.h: can't open file 'P8xc5x2.H'
108
109 #if EN_OS_INT_ENTER > 0
110 uint8 OSIntNesting;
111 #endif
112
113 uint8 data OSTaskID = 0;
114 uint8 data OSNextTaskID = 0;
115
C51 COMPILER V7.01 OS_CORE 03/06/2003 10:20:02 PAGE 3
116 uint8 OSWaitTick[OS_MAX_TASKS];
117 #if OS_MAX_TASKS < 9
uint8 OSTaskRuning = 0xff;
#else
120 uint16 OSTaskRuning = 0xffff;
121 #endif
122
123 uint8 const OSMapTbl[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00};
124 uint8 data Os_Enter_Sum = 0;
125
126
127 void OSSched(void);
128
129 /*********************************************************************************************************
130 ** 函數名稱: OSIntSendSignal
131 ** 功能描述: 中斷中給指定任務發送信號,既使指定任務就緒
132 ** 輸 入: TaskId : 任務ID
133 ** 輸 出: 無
134 ** 全局變量: OSTaskRuning
135 ** 調用模塊: 無
136 **
137 ** 作 者: 陳明計
138 ** 日 期: 2002年6月20日
139 **-------------------------------------------------------------------------------------------------------
140 ** 修改人: 陳明計
141 ** 日 期: 2002年9月1日
142 **-------------------------------------------------------------------------------------------------------
143 ** 修改人: 陳明計
144 ** 日 期: 2002年9月4日
145 **-------------------------------------------------------------------------------------------------------
146 ** 修改人: 陳明計
147 ** 日 期: 2002年12月30日
148 **------------------------------------------------------------------------------------------------------
149 ** 修改人: 陳明計
150 ** 日 期: 2002年2月5日
151 **------------------------------------------------------------------------------------------------------
152 ** 修改人:
153 ** 日 期:
154 **------------------------------------------------------------------------------------------------------
155 ********************************************************************************************************/
156 void OSIntSendSignal(uint8 TaskId)
157
158 {
159 1 if (TaskId < OS_MAX_TASKS)
160 1 {
161 2 OS_ENTER_CRITICAL();
*** ERROR C202 IN LINE 161 OF ..\OS\OS_CORE.C: 'EA': undefined identifier
162 2 #if OS_MAX_TASKS < 9
OSTaskRuning |= OSMapTbl[TaskId];
#else
165 2 if (TaskId < 8)
166 2 {
167 3 ((uint8 *)(&OSTaskRuning))[LOW_BYTE] |= OSMapTbl[TaskId];
168 3 }
169 2 else
170 2 {
171 3 ((uint8 *)(&OSTaskRuning))[HIGH_BYTE] |= OSMapTbl[TaskId & 0x07];
172 3 }
173 2 #endif
174 2 OS_EXIT_CRITICAL();
*** ERROR C202 IN LINE 174 OF ..\OS\OS_CORE.C: 'EA': undefined identifier
175 2 }
C51 COMPILER V7.01 OS_CORE 03/06/2003 10:20:02 PAGE 4
176 1 }
177
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -