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

📄 task2.lst

📁 A rtx51 tiny example program
💻 LST
字号:
C51 COMPILER V8.08   TASK2                                                                 03/23/2009 13:06:22 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE TASK2
OBJECT MODULE PLACED IN Task2.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Task2.c BROWSE DEBUG OBJECTEXTEND CODE LISTINCLUDE SYMBOLS PREPRINT

line level    source

   1          /******************************************************************************/
   2          /*                                                                            */
   3          /*   Task 2:  Count as fast as possible and Signal Overflow to Task 3         */
   4          /*                                                                            */
   5          /******************************************************************************/
   6          
   7          #include <rtx51tny.h>                 /* RTX-51 tiny functions & defines      */
   1      =1  /*--------------------------------------------------------------------------
   2      =1  RTX51TNY.H
   3      =1  
   4      =1  Prototypes for RTX51 Tiny Real-Time Operating System Version 2.02
   5      =1  Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
   6      =1  All rights reserved.
   7      =1  --------------------------------------------------------------------------*/
   8      =1  
   9      =1  #ifndef __RTX51TNY_H__
  10      =1  #define __RTX51TNY_H__
  11      =1  
  12      =1  
  13      =1  /* constants for os_wait function */
  14      =1  #define K_SIG      0x01              /* Wait for Signal   */
  15      =1  #define K_TMO      0x02              /* Wait for Timeout  */
  16      =1  #define K_IVL      0x80              /* Wait for Interval */
  17      =1  
  18      =1  /* function return values */
  19      =1  #define NOT_OK     0xFF              /* Parameter Error */
  20      =1  #define TMO_EVENT  0x08              /* Timeout Event   */
  21      =1  #define SIG_EVENT  0x04              /* Signal  Event   */
  22      =1  #define RDY_EVENT  0x80              /* Ready   Event   */
  23      =1  
  24      =1  extern unsigned char os_create_task     (unsigned char task_id);
  25      =1  extern unsigned char os_delete_task     (unsigned char task_id);
  26      =1  
  27      =1  extern unsigned char os_wait            (unsigned char typ, 
  28      =1                                           unsigned char ticks,
  29      =1                                           unsigned int dummy);
  30      =1  extern unsigned char os_wait1           (unsigned char typ);
  31      =1  extern unsigned char os_wait2           (unsigned char typ,
  32      =1                                           unsigned char ticks);
  33      =1  
  34      =1  extern unsigned char os_send_signal     (unsigned char task_id);
  35      =1  extern unsigned char os_clear_signal    (unsigned char task_id);
  36      =1  extern unsigned char isr_send_signal    (unsigned char task_id);
  37      =1  
  38      =1  extern void          os_set_ready       (unsigned char task_id);
  39      =1  extern void          isr_set_ready      (unsigned char task_id);
  40      =1  
  41      =1  extern unsigned char os_running_task_id (void);
  42      =1  extern unsigned char os_switch_task     (void); 
  43      =1  
  44      =1  extern void          os_reset_interval  (unsigned char ticks);
  45      =1  
  46      =1  #endif
   8          
   9          unsigned long counter2;               /* counter for task 2                   */
C51 COMPILER V8.08   TASK2                                                                 03/23/2009 13:06:22 PAGE 2   

  10          
  11          
  12          /******************************************************************************/
  13          /*    Task 2 'job2':  RTX-51 tiny starts this task with os_create_task (2)    */
  14          /******************************************************************************/
  15          void job2 (void) _task_ 2  {
  16   1        while (1)  {                        /* endless loop                         */
  17   2          counter2++;                       /* increment counter 1                  */
  18   2          if ((counter2 & 0x01) == 0)  {    /* every 16 counts:                    */ 
  19   3            os_switch_task ();              /* give other tasks CPU time            */
  20   3          }
  21   2          if ((counter2 & 0x00F) == 0)  {  /* if counter overflows,                */
  22   3            os_set_ready (3);               /* set run flag of task 3               */
  23   3          }
  24   2        }
  25   1      }
  26          
C51 COMPILER V8.08   TASK2                                                                 03/23/2009 13:06:22 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION job2 (BEGIN)
                                           ; SOURCE LINE # 15
0000         ?C0001:
                                           ; SOURCE LINE # 16
                                           ; SOURCE LINE # 17
0000 E500        R     MOV     A,counter2+03H
0002 2401              ADD     A,#01H
0004 F500        R     MOV     counter2+03H,A
0006 E4                CLR     A
0007 3500        R     ADDC    A,counter2+02H
0009 F500        R     MOV     counter2+02H,A
000B E4                CLR     A
000C 3500        R     ADDC    A,counter2+01H
000E F500        R     MOV     counter2+01H,A
0010 E4                CLR     A
0011 3500        R     ADDC    A,counter2
0013 F500        R     MOV     counter2,A
                                           ; SOURCE LINE # 18
0015 E500        R     MOV     A,counter2+03H
0017 5401              ANL     A,#01H
0019 FF                MOV     R7,A
001A E4                CLR     A
001B FE                MOV     R6,A
001C FD                MOV     R5,A
001D FC                MOV     R4,A
001E FB                MOV     R3,A
001F FA                MOV     R2,A
0020 F9                MOV     R1,A
0021 F8                MOV     R0,A
0022 C3                CLR     C
0023 120000      E     LCALL   ?C?ULCMP
0026 7003              JNZ     ?C0003
                                           ; SOURCE LINE # 19
0028 120000      E     LCALL   os_switch_task
                                           ; SOURCE LINE # 20
002B         ?C0003:
                                           ; SOURCE LINE # 21
002B E500        R     MOV     A,counter2+03H
002D 540F              ANL     A,#0FH
002F FF                MOV     R7,A
0030 E4                CLR     A
0031 FE                MOV     R6,A
0032 FD                MOV     R5,A
0033 FC                MOV     R4,A
0034 FB                MOV     R3,A
0035 FA                MOV     R2,A
0036 F9                MOV     R1,A
0037 F8                MOV     R0,A
0038 C3                CLR     C
0039 120000      E     LCALL   ?C?ULCMP
003C 70C2              JNZ     ?C0001
                                           ; SOURCE LINE # 22
003E 7F03              MOV     R7,#03H
0040 120000      E     LCALL   _os_set_ready
                                           ; SOURCE LINE # 23
                                           ; SOURCE LINE # 24
0043 80BB              SJMP    ?C0001
             ; FUNCTION job2 (END)

C51 COMPILER V8.08   TASK2                                                                 03/23/2009 13:06:22 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


_os_set_ready. . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
counter2 . . . . . . . . . . . . . . .  PUBLIC   DATA   U_LONG   0000H  4
job2 . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
os_switch_task . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     69    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   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 + -