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

📄 os_mail.lst

📁 MCS-51的一个小型操作系统,在KeilC中大模式下编译工作
💻 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 + -