📄 os_mail.lst
字号:
C51 COMPILER V8.02 OS_MAIL 11/05/2004 10:43:37 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE OS_MAIL
OBJECT MODULE PLACED IN OS_Mail.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE OS_Mail.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************
2 嵌入式系统 小型操作系统
3 作者:汪普宏
4 制作日期:2006.9
5 *********************************************/
6
7 #include <os.h>
8 #include"OS_Mail.h"
9
10 void * xdata QBuf[QBOX_LENTH];
11 QUEUE xdata Queue;
12 void OSIint_Queue(void)
13 {
14 1 Queue.w=QBuf;
15 1 Queue.r=QBuf;
16 1 Queue.lenth=0;
17 1 }
18 /****************************************
19 制作日期:2006.10
20 函数功能:从消息列队中获取消息
21 函数入口参数:无
22 调用者:任务
23 返回值:成功时返回读出的消息指针,错误返回NULL
24 *****************************************/
25
26 uchar xdata *OSQueue_Rece(void) //从队列缓冲环区中读出消息
27 {
28 1 uchar xdata *buf;
29 1 buf=(uchar xdata*)Queue.r;
30 1 if(Queue.lenth>0)
31 1 {
32 2 OS_CLOSEISR;
33 2 if(Queue.r<&QBuf[QBOX_LENTH]) //边界检查
34 2 {
35 3 Queue.r++;
36 3 }
37 2 else
38 2 {
39 3 Queue.r=QBuf;
40 3 }
41 2 Queue.lenth--;
42 2 OS_OPENISR;
43 2 return buf;
44 2 }
45 1 else
46 1 {
47 2 return NULL;
48 2 }
49 1 }
50 /****************************************
51 制作日期:2006.10
52 函数功能:发送消息到消息列队
53 函数入口参数:发送的消息指针
54 调用者: 任务或中断
55 返回值:成功时返回OK,错误返回NULL
C51 COMPILER V8.02 OS_MAIL 11/05/2004 10:43:37 PAGE 2
56 *****************************************/
57 uchar OSQueue_Send(uchar xdata *p) //发送消息到队列中
58 {
59 1 OS_CLOSEISR;
60 1 if(Queue.lenth<QBOX_LENTH)
61 1 {
62 2 Queue.w=(void*)p;
63 2 if(Queue.w<&QBuf[QBOX_LENTH]) //边界检查
64 2 {
65 3 Queue.w++;
66 3 }
67 2 else
68 2 {
69 3 Queue.w=QBuf;
70 3 }
71 2 }
72 1 else
73 1 {
74 2 OS_OPENISR;
75 2 return NULL;
76 2 }
77 1 Queue.lenth++;
78 1 OS_OPENISR;
79 1 return OK;
80 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 195 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 55 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -