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

📄 ex1.lst

📁 ucos2 for c8051f060 在目标板上运行5小时
💻 LST
字号:
C51 COMPILER V7.06   EX1                                                                   12/01/2005 16:05:17 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE EX1
OBJECT MODULE PLACED IN ex1.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE ex1.c LARGE BROWSE INCDIR(F:\software\KEIL\) DEBUG OBJECTEXTEND

stmt level    source

   1          #include <includes.h>
   2          #include <cygnalcon.h>
   3          
   4          #include <stdio.h>
   5          sbit LED = P0^7;                          // LED: '1' = ON; '0' = OFF
   6          
   7          
   8          void TaskA(void*) reentrant;
   9          void TaskB(void*) reentrant;
  10          void TaskC(void*) reentrant;
  11          void TaskD(void*) reentrant;
  12          void TaskE(void*) reentrant;
  13          //void TaskS(void*) reentrant;
  14          void TaskS(void *pdat) ;
  15          
  16          OS_STK TaskStartStkS[MaxStkSize];
  17          OS_STK TaskStartStkA[MaxStkSize];//注意:在ASM文件中设置?STACK空间为40H即64。
  18          OS_STK TaskStartStkB[MaxStkSize];
  19          OS_STK TaskStartStkC[MaxStkSize];
  20          OS_STK TaskStartStkD[MaxStkSize];
  21          OS_STK TaskStartStkE[MaxStkSize];
  22          
  23          OS_EVENT    *TxMbox;    //声明一个邮箱
  24          
  25          OS_EVENT        *CommQ;
  26          void            *CommMsg[10];
  27           
  28          char code FILEMSG[]="编译日期:" __DATE__        "   | 编译时间:" __TIME__                                       ;
  29          unsigned char code STARTMSG[]={ "\n"
  30                                                                          "+------------------------+-----------------------+\n"
  31                                                                          "| Starting ......                                |\n"
  32                                                                          "+------------------------+-----------------------+\n"
  33                                                                          "| %s    |  \n"
  34                                                                          "+------------------------+-----------------------+\n"
  35                                                                          "| CPU:        C8051F060  | OS:    UCOS II 2.51   |\n"
  36                                                                          "+------------------------+-----------------------+\n"
  37                                                                          "| RAM:        20K        | ROM:   64K            |\n"
  38                                                                          "+------------------------+-----------------------+\n"
  39                                                                  };
  40          
  41          void main(void)
  42          {
  43   1              INT8U err;
  44   1      
  45   1              config();
  46   1              SFRPAGE = UART0_PAGE;
  47   1      
  48   1              printf (STARTMSG,FILEMSG);
  49   1              printf ("UCOSII Ver=%d\n",(int)OS_VERSION);
  50   1              printf ("OSTime=%d,%d\n",(int)(OSTimeGet()/1000000),(int)(OSTimeGet()%1000000));
  51   1      
  52   1          OSInit();
  53   1      
  54   1              OSTaskCreate(TaskS, (void *)0, TaskStartStkS,2);
  55   1          
C51 COMPILER V7.06   EX1                                                                   12/01/2005 16:05:17 PAGE 2   

  56   1              TxMbox  = OSMboxCreate((void *)0);              //创建一个邮箱
  57   1              CommQ   = OSQCreate(&CommMsg[0], 10);   //建立消息队列       
  58   1          err = OSQFlush(CommQ);
  59   1       
  60   1      
  61   1              OSTimeSet (100);
  62   1              SFRPAGE = UART0_PAGE;
  63   1              printf ("UCOSII Verson=%d\n",(int)OSVersion ());
  64   1              printf ("UCOSII Starting  OK ...\n");
  65   1          InitTimer0();
  66   1          OSStart();
  67   1      
  68   1      
  69   1      }
  70          void TaskS(void *pdat)
  71          {
  72   1      
  73   1              INT8U err;
  74   1              pdat=pdat;      
  75   1              OSStatInit();
  76   1       /*     err=OSTaskCreateExt(TaskA, 
  77   1                                                      (void *)0, 
  78   1                                                      TaskStartStkA,
  79   1                                                      8,
  80   1                                                      8,
  81   1                                                      TaskStartStkA,
  82   1                                                      MaxStkSize,
  83   1                                                      (void *)0, 
  84   1                                                      OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR
  85   1                                                      );
  86   1      */
  87   1       /*     err=OSTaskCreateExt(TaskB, 
  88   1                                                      (void *)0, 
  89   1                                                      TaskStartStkB,
  90   1                                                      9,
  91   1                                                      9,
  92   1                                                      TaskStartStkB,
  93   1                                                      MaxStkSize,
  94   1                                                      (void *)0, 
  95   1                                                      OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR
  96   1                                                      );
  97   1      */
  98   1              OSTaskCreate(TaskA, (void *)0, TaskStartStkA,8);
  99   1              OSTaskCreate(TaskB, (void *)0, TaskStartStkB,9);
 100   1          OSTaskCreate(TaskC, (void *)0, TaskStartStkC,5);
 101   1              OSTaskCreate(TaskD, (void *)0, TaskStartStkD,6);
 102   1      //      OSTaskCreate(TaskE, (void *)0, TaskStartStkE,7);
 103   1              
 104   1      
 105   1      
 106   1      
 107   1              while(1)
 108   1              {
 109   2                      printf ("taskstart OK...\n");
 110   2                      OSTaskDel(OS_PRIO_SELF);
 111   2              } 
 112   1               
 113   1      }
*** WARNING C280 IN LINE 73 OF EX1.C: 'err': unreferenced local variable
 114          void TaskA(void *pdat) reentrant
 115          {
 116   1              static int i;
C51 COMPILER V7.06   EX1                                                                   12/01/2005 16:05:17 PAGE 3   

 117   1              pdat=pdat;
 118   1      
 119   1              for(;;)
 120   1              {
 121   2                      printf("TASKA  %d\n",i);
 122   2                      if (i==1)       OSTaskCreate(TaskE, (void *)0, TaskStartStkE,7);
 123   2                      if (i==5)  
 124   2                      {
 125   3                              OSTaskDel(7);  
 126   3                              while (OSTaskDelReq(7) != OS_TASK_NOT_EXIST)
 127   3                          {
 128   4                          OSTimeDly(1); 
 129   4                               }
 130   3                      }
 131   2                      if (++i>=30) i=0;
 132   2                      if (i==10) OSSchedLock();
 133   2                      if (i==15) OSSchedUnlock ();
 134   2                      OSTimeDly(1*OS_TICKS_PER_SEC);   
 135   2                      LED=!LED;
 136   2              }    
 137   1      }
 138          
 139          void TaskB(void *pdat) reentrant
 140          {
 141   1              static int i;
 142   1              INT8U  err;
 143   1              void  *msg;
 144   1              pdat=pdat; 
 145   1              
 146   1              for(;;)
 147   1              {
 148   2                      msg = OSQPend(CommQ, 500,&err);
 149   2              if (err == OS_NO_ERR) 
 150   2                      {   /* 在指定时间内接受到消息      */
 151   3                              printf("TASKB %s ----------------------------------------\n",msg);
 152   3              } 
 153   2                      else 
 154   2                      {       /* 在指定的时间内没有接受到指定的消息  */
 155   3                              printf("TASKB 没有接到消息  %d,_____________________________\n",i++);
 156   3              }
 157   2              }
 158   1      }
 159          
 160          void TaskC(void *pdat) reentrant
 161          {
 162   1              static int i;
 163   1          char   txmsg[10];
 164   1              pdat=pdat; 
 165   1      
 166   1              for(;;)
 167   1              {
 168   2                      sprintf(txmsg,"msg  c %d",i);
 169   2                      OSMboxPost(TxMbox, (void *)&txmsg);      /* Send message to Task #5                            */
 170   2                      OSQPost(CommQ, "TASKC的消息");
 171   2                      printf("TASKC  %d\n",i++);
 172   2                      OSTimeDly(2*OS_TICKS_PER_SEC);   
 173   2                  //OSTimeDlyHMSM(0,0,5,00);
 174   2              }    
 175   1      }
 176          
 177          void TaskD(void *pdat) reentrant
 178          {       
C51 COMPILER V7.06   EX1                                                                   12/01/2005 16:05:17 PAGE 4   

 179   1              static int i;
 180   1              char  *rxmsg;
 181   1          OS_STK_DATA stk_data;
 182   1              INT32U      stk_size;
 183   1              INT8U  err;
 184   1              pdat=pdat;
 185   1              for(;;)
 186   1              {       
 187   2              rxmsg = (char *)OSMboxPend(TxMbox, 0, &err);                  /* Wait for message from Task #4 */
 188   2                      printf( "TASKD TIME=%06d%06d  "
 189   2                                      "CPU利用率%02d, "
 190   2                                      "邮件接收: c %s, %d\n",
 191   2                                      (unsigned int)(OSTimeGet()/1000000),    (unsigned int)(OSTimeGet()%1000000),
 192   2                                      (int)OSCPUUsage,rxmsg,i++);
 193   2              /*      for (i=8;i<=9;i++)
 194   2                      {
 195   2                              err = OSTaskStkChk(3, &stk_data);
 196   2                              if (err == OS_NO_ERR) 
 197   2                              {
 198   2                                      stk_size = stk_data.OSFree + stk_data.OSUsed;
 199   2                          printf("TASKD  TASKID=%04d,RAM=%04d,Free=%04d,Used=%04d",i,stk_size,stk_data.OSFree , stk_dat
             -a.OSUsed);
 200   2                              }
 201   2                              else 
 202   2                              {
 203   2                                      printf("TASKD 检查任务堆栈状态");
 204   2                              }
 205   2               }
 206   2       */
 207   2                      //OSTimeDly(15);
 208   2                  //OSTimeDlyHMSM(0,0,2,000);
 209   2              }
 210   1      }
*** WARNING C280 IN LINE 181 OF EX1.C: 'stk_data': unreferenced local variable
*** WARNING C280 IN LINE 182 OF EX1.C: 'stk_size': unreferenced local variable
 211          void TaskE(void *pdat) reentrant
 212          {       
 213   1              pdat=pdat;
 214   1              for(;;)
 215   1              {       
 216   2                      OSMboxPost(TxMbox, "任务E邮件");
 217   2                      //printf("TaskE runing  %d\n",i++);
 218   2                      OSQPost(CommQ, "======TASKe的消息    hello ha ha");
 219   2                      OSQPost(CommQ, "******TASKe的消息    hello ha ha");
 220   2                      OSTimeDly(100);
 221   2              }
 222   1      }
 223          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1522    ----
   CONSTANT SIZE    =    836    ----
   XDATA SIZE       =    644       2
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  3 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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