📄 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 + -