?? task2.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 + -