task0.lst

来自「A rtx51 tiny example program」· LST 代码 · 共 148 行

LST
148
字号
C51 COMPILER V8.08   TASK0                                                                 03/23/2009 13:06:21 PAGE 1   


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

line level    source

   1          /******************************************************************************/
   2          /*                                                                            */
   3          /*   Task 0:  Create other Tasks and Count up Every 5 ticks                   */
   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 counter0;               /* counter for task 0                   */
C51 COMPILER V8.08   TASK0                                                                 03/23/2009 13:06:21 PAGE 2   

  10          
  11          /******************************************************************************/
  12          /*       Task 0 'job0':  RTX-51 tiny starts execution with task 0            */
  13          /******************************************************************************/
  14          void job0 (void) _task_ 0  {                  
  15   1        os_create_task (1);                 /* start task 1                         */
  16   1        os_create_task (2);                 /* start task 2                         */
  17   1        os_create_task (3);                 /* start task 3                         */
  18   1      
  19   1        while (1)  {                        /* endless loop                         */
  20   2          counter0++;                       /* increment counter 0                  */
  21   2          os_wait (K_TMO, 5, 0);            /* wait for timeout: 5 ticks            */
  22   2        }
  23   1      }
  24          
C51 COMPILER V8.08   TASK0                                                                 03/23/2009 13:06:21 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION job0 (BEGIN)
                                           ; SOURCE LINE # 14
                                           ; SOURCE LINE # 15
0000 7F01              MOV     R7,#01H
0002 120000      E     LCALL   _os_create_task
                                           ; SOURCE LINE # 16
0005 7F02              MOV     R7,#02H
0007 120000      E     LCALL   _os_create_task
                                           ; SOURCE LINE # 17
000A 7F03              MOV     R7,#03H
000C 120000      E     LCALL   _os_create_task
000F         ?C0001:
                                           ; SOURCE LINE # 19
                                           ; SOURCE LINE # 20
000F E500        R     MOV     A,counter0+03H
0011 2401              ADD     A,#01H
0013 F500        R     MOV     counter0+03H,A
0015 E4                CLR     A
0016 3500        R     ADDC    A,counter0+02H
0018 F500        R     MOV     counter0+02H,A
001A E4                CLR     A
001B 3500        R     ADDC    A,counter0+01H
001D F500        R     MOV     counter0+01H,A
001F E4                CLR     A
0020 3500        R     ADDC    A,counter0
0022 F500        R     MOV     counter0,A
                                           ; SOURCE LINE # 21
0024 E4                CLR     A
0025 FB                MOV     R3,A
0026 FA                MOV     R2,A
0027 7D05              MOV     R5,#05H
0029 7F02              MOV     R7,#02H
002B 120000      E     LCALL   _os_wait
                                           ; SOURCE LINE # 22
002E 80DF              SJMP    ?C0001
             ; FUNCTION job0 (END)

C51 COMPILER V8.08   TASK0                                                                 03/23/2009 13:06:21 PAGE 4   

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


counter0 . . . . . . . . . . . . . . .  PUBLIC   DATA   U_LONG   0000H  4
_os_create_task. . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
job0 . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_os_wait . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     48    ----
   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 + =
减小字号Ctrl + -
显示快捷键?