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

📄 os_mutex.lst

📁 在51上运行的小的OS系统
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.08   OS_MUTEX                                                              08/04/2008 21:49:52 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE OS_MUTEX
OBJECT MODULE PLACED IN OS_MUTEX.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE uCosii\OS_MUTEX.C DEBUG OBJECTEXTEND PRINT(.\OS_MUTEX.lst) OBJECT(OS_MUTEX.
                    -obj)

line level    source

   1          /*
   2          *********************************************************************************************************
   3          *                                                uC/OS-II
   4          *                                          The Real-Time Kernel
   5          *                                  MUTUAL EXCLUSION SEMAPHORE MANAGEMENT
   6          *
   7          *                          (c) Copyright 1992-2005, Jean J. Labrosse, Weston, FL
   8          *                                           All Rights Reserved
   9          *
  10          * File    : OS_MUTEX.C
  11          * By      : Jean J. Labrosse
  12          * Version : V2.80
  13          *********************************************************************************************************
  14          */
  15          
  16          #ifndef  OS_MASTER_FILE
  17          #include "..\arm\includes.h"
*** ERROR C141 IN LINE 83 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x00'
*** ERROR C132 IN LINE 83 OF UCOSII\..\ARM\OS_CPU.H: 'OS_TASK_SW': not in formal parameter list
*** ERROR C141 IN LINE 84 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x01'
*** ERROR C132 IN LINE 84 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 84 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 84 OF UCOSII\..\ARM\OS_CPU.H: '_OSStartHighRdy': not in formal parameter list
*** ERROR C141 IN LINE 85 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x02'
*** ERROR C132 IN LINE 85 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 85 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 85 OF UCOSII\..\ARM\OS_CPU.H: 'OS_ENTER_CRITICAL': not in formal parameter list
*** ERROR C141 IN LINE 86 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x03'
*** ERROR C132 IN LINE 86 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 86 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 86 OF UCOSII\..\ARM\OS_CPU.H: 'OS_EXIT_CRITICAL': not in formal parameter list
*** ERROR C141 IN LINE 88 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x40'
*** ERROR C132 IN LINE 88 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 88 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 88 OF UCOSII\..\ARM\OS_CPU.H: '_GetOSFunctionAddr': not in formal parameter list
*** ERROR C141 IN LINE 89 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x41'
*** ERROR C132 IN LINE 89 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 89 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 89 OF UCOSII\..\ARM\OS_CPU.H: '_GetUsrFunctionAddr': not in formal parameter list
*** ERROR C141 IN LINE 90 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x42'
*** ERROR C132 IN LINE 90 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 90 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 90 OF UCOSII\..\ARM\OS_CPU.H: 'OSISRBegin': not in formal parameter list
*** ERROR C141 IN LINE 91 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x43'
*** ERROR C132 IN LINE 91 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 91 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'int'
*** ERROR C132 IN LINE 91 OF UCOSII\..\ARM\OS_CPU.H: 'OSISRNeedSwap': not in formal parameter list
*** ERROR C141 IN LINE 93 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x80'
*** ERROR C132 IN LINE 93 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 93 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 93 OF UCOSII\..\ARM\OS_CPU.H: 'ChangeToSYSMode': not in formal parameter list
*** ERROR C141 IN LINE 94 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x81'
*** ERROR C132 IN LINE 94 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 94 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
C51 COMPILER V8.08   OS_MUTEX                                                              08/04/2008 21:49:52 PAGE 2   

*** ERROR C132 IN LINE 94 OF UCOSII\..\ARM\OS_CPU.H: 'ChangeToUSRMode': not in formal parameter list
*** ERROR C141 IN LINE 95 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x82'
*** ERROR C132 IN LINE 95 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 95 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 95 OF UCOSII\..\ARM\OS_CPU.H: '_TaskIsARM': not in formal parameter list
*** ERROR C141 IN LINE 96 OF UCOSII\..\ARM\OS_CPU.H: syntax error near '0x83'
*** ERROR C132 IN LINE 96 OF UCOSII\..\ARM\OS_CPU.H: '__swi': not in formal parameter list
*** ERROR C141 IN LINE 96 OF UCOSII\..\ARM\OS_CPU.H: syntax error near 'void'
*** ERROR C132 IN LINE 96 OF UCOSII\..\ARM\OS_CPU.H: '_TaskIsTHUMB': not in formal parameter list
*** ERROR C127 IN LINE 113 OF UCOSII\..\ARM\OS_CPU.H: 'OsEnterSum': invalid storage class
*** ERROR C127 IN LINE 284 OF UCOSII\..\UCOSII\UCOS_II.H: 'OS_EVENT': invalid storage class
*** ERROR C127 IN LINE 301 OF UCOSII\..\UCOSII\UCOS_II.H: 'OS_FLAGS': invalid storage class
*** ERROR C141 IN LINE 312 OF UCOSII\..\UCOSII\UCOS_II.H: syntax error near 'OS_FLAGS'
*** ERROR C127 IN LINE 312 OF UCOSII\..\UCOSII\UCOS_II.H: 'OS_FLAGS': invalid storage class
*** ERROR C141 IN LINE 312 OF UCOSII\..\UCOSII\UCOS_II.H: syntax error near 'OSFlagFlags'
*** ERROR C127 IN LINE 312 OF UCOSII\..\UCOSII\UCOS_II.H: 'OSFlagFlags': invalid storage class
*** ERROR C132 IN LINE 314 OF UCOSII\..\UCOSII\UCOS_II.H: 'OSFlagName': not in formal parameter list
*** ERROR C141 IN LINE 316 OF UCOSII\..\UCOSII\UCOS_II.H: syntax error near '}'
*** ERROR C141 IN LINE 325 OF UCOSII\..\UCOSII\UCOS_II.H: syntax error near 'OS_FLAGS'
*** ERROR C129 IN LINE 325 OF UCOSII\..\UCOSII\UCOS_II.H: missing ';' before 'OSFlagNodeFlags'
  18          #endif
  19          
  20          /*
  21          *********************************************************************************************************
  22          *                                            LOCAL CONSTANTS
  23          *********************************************************************************************************
  24          */
  25          
  26          #define  OS_MUTEX_KEEP_LOWER_8   0x00FFu
  27          #define  OS_MUTEX_KEEP_UPPER_8   0xFF00u
  28          
  29          #define  OS_MUTEX_AVAILABLE      0x00FFu
  30          
  31          
  32          #if OS_MUTEX_EN > 0
  33          /*
  34          *********************************************************************************************************
  35          *                                   ACCEPT MUTUAL EXCLUSION SEMAPHORE
  36          *
  37          * Description: This  function checks the mutual exclusion semaphore to see if a resource is available.
  38          *              Unlike OSMutexPend(), OSMutexAccept() does not suspend the calling task if the resource is
  39          *              not available or the event did not occur.
  40          *
  41          * Arguments  : pevent     is a pointer to the event control block
  42          *
  43          *              err        is a pointer to an error code which will be returned to your application:
  44          *                            OS_NO_ERR          if the call was successful.
  45          *                            OS_ERR_EVENT_TYPE  if 'pevent' is not a pointer to a mutex
  46          *                            OS_ERR_PEVENT_NULL 'pevent' is a NULL pointer
  47          *                            OS_ERR_PEND_ISR     if you called this function from an ISR
  48          *
  49          * Returns    : == 1       if the resource is available, the mutual exclusion semaphore is acquired
  50          *              == 0       a) if the resource is not available
  51          *                         b) you didn't pass a pointer to a mutual exclusion semaphore
  52          *                         c) you called this function from an ISR
  53          *
  54          * Warning(s) : This function CANNOT be called from an ISR because mutual exclusion semaphores are
  55          *              intended to be used by tasks only.
  56          *********************************************************************************************************
  57          */
  58          
  59          #if OS_MUTEX_ACCEPT_EN > 0
C51 COMPILER V8.08   OS_MUTEX                                                              08/04/2008 21:49:52 PAGE 3   

  60          INT8U  OSMutexAccept (OS_EVENT *pevent, INT8U *err)
  61          {
  62          #if OS_CRITICAL_METHOD == 3                            /* Allocate storage for CPU status register     */
                  OS_CPU_SR  cpu_sr = 0;
              #endif
  65          
  66          
  67          
  68          #if OS_ARG_CHK_EN > 0
  69              if (err == (INT8U *)0) {                           /* Validate 'err'                               */
  70                  return (0);
  71              }
  72              if (pevent == (OS_EVENT *)0) {                     /* Validate 'pevent'                            */
  73                  *err = OS_ERR_PEVENT_NULL;
  74                  return (0);
  75              }
  76          #endif
  77              if (pevent->OSEventType != OS_EVENT_TYPE_MUTEX) {  /* Validate event block type                    */
  78                  *err = OS_ERR_EVENT_TYPE;
  79                  return (0);
  80              }
  81              if (OSIntNesting > 0) {                            /* Make sure it's not called from an ISR        */
  82                  *err = OS_ERR_PEND_ISR;
  83                  return (0);
  84              }
  85              OS_ENTER_CRITICAL();                               /* Get value (0 or 1) of Mutex                  */
  86              if ((pevent->OSEventCnt & OS_MUTEX_KEEP_LOWER_8) == OS_MUTEX_AVAILABLE) {
  87                  pevent->OSEventCnt &= OS_MUTEX_KEEP_UPPER_8;   /*      Mask off LSByte (Acquire Mutex)         */
  88                  pevent->OSEventCnt |= OSTCBCur->OSTCBPrio;     /*      Save current task priority in LSByte    */
  89                  pevent->OSEventPtr  = (void *)OSTCBCur;        /*      Link TCB of task owning Mutex           */
  90                  OS_EXIT_CRITICAL();
  91                  *err = OS_NO_ERR;
  92                  return (1);
  93              }
  94              OS_EXIT_CRITICAL();
  95              *err = OS_NO_ERR;
  96              return (0);
  97          }
  98          #endif
  99          
 100          /*$PAGE*/
 101          /*
 102          *********************************************************************************************************
 103          *                                  CREATE A MUTUAL EXCLUSION SEMAPHORE

⌨️ 快捷键说明

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