📄 task.lst
字号:
00000022 F7FF BL prints?T ; T=0x0001 (1)
00000024 FFED BL prints?T ; T=0x0001 (2)
101: prints(" Start..........................",1);
00000026 4800 LDR R0,=??S_2 ; ??S_2
00000028 2101 MOV R1,#0x1
0000002A F7FF BL prints?T ; T=0x0001 (1)
0000002C FFE9 BL prints?T ; T=0x0001 (2)
102: OSFreeDevice(PrinterDeviceAddr); //释放打印机
0000002E 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000030 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000032 FFE6 BL OSFreeDevice?T ; T=0x0001 (2)
104: EN_LED2();
00000034 4800 LDR R1,=0x80000
00000036 4800 LDR R0,=0xE0028018
00000038 6802 LDR R2,[R0,#0x0]
0000003A 430A ORR R2,R1
0000003C 6002 STR R2,[R0,#0x0]
0000003E 4800 LDR R0,=0xE0028014
00000040 6001 STR R1,[R0,#0x0]
105: while(1)
00000042 L_12:
107: OSTaskDelay(100); //延时等待消息的到来
00000042 2064 MOV R0,#0x64
00000044 F7FF BL OSTaskDelay?T ; T=0x0001 (1)
00000046 FFDC BL OSTaskDelay?T ; T=0x0001 (2)
108: if(OSCurrentPcb->Msg) //如果收到了消息
00000048 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
0000004A 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
0000004C 6B00 LDR R0,[R0,#0x30]
0000004E 2800 CMP R0,#0x0
00000050 D067 BEQ L_14 ; T=0x00000122
110: OSRequestDevice(PrinterDeviceAddr,0); //申请使用打印机
00000052 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000054 2100 MOV R1,#0x0
00000056 F7FF BL OSRequestDevice?T ; T=0x0001 (1)
00000058 FFD3 BL OSRequestDevice?T ; T=0x0001 (2)
111: prints("",1);
0000005A 4800 LDR R0,=??S_1 ; ??S_1
0000005C 2101 MOV R1,#0x1
0000005E F7FF BL prints?T ; T=0x0001 (1)
00000060 FFCF BL prints?T ; T=0x0001 (2)
112: prints("",1);
00000062 4800 LDR R0,=??S_1 ; ??S_1
00000064 2101 MOV R1,#0x1
00000066 F7FF BL prints?T ; T=0x0001 (1)
00000068 FFCB BL prints?T ; T=0x0001 (2)
113: prints(OSCurrentPcb->Title,0); //显示任务的标题
0000006A 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
0000006C 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
0000006E 3034 ADD R0,#0x34
00000070 2100 MOV R1,#0x0
00000072 F7FF BL prints?T ; T=0x0001 (1)
00000074 FFC5 BL prints?T ; T=0x0001 (2)
114: prints(":",1);
00000076 4800 LDR R0,=??S_3 ; ??S_3
00000078 2101 MOV R1,#0x1
0000007A F7FF BL prints?T ; T=0x0001 (1)
0000007C FFC1 BL prints?T ; T=0x0001 (2)
ARM COMPILER V2.50a, Task 25/08/06 23:22:56 PAGE 10
115: prints("Haha,I have got a message from: ",0);
0000007E 4800 LDR R0,=??S_4 ; ??S_4
00000080 2100 MOV R1,#0x0
00000082 F7FF BL prints?T ; T=0x0001 (1)
00000084 FFBD BL prints?T ; T=0x0001 (2)
116: prints(OSCurrentPcb->Msg->Sender->Title,1); //显示消息发送者的标题
00000086 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
00000088 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
0000008A 6B00 LDR R0,[R0,#0x30]
0000008C 6880 LDR R0,[R0,#0x8]
0000008E 3034 ADD R0,#0x34
00000090 2101 MOV R1,#0x1
00000092 F7FF BL prints?T ; T=0x0001 (1)
00000094 FFB5 BL prints?T ; T=0x0001 (2)
117: prints("The sender's PID is: ",0);
00000096 4800 LDR R0,=??S_5 ; ??S_5
00000098 2100 MOV R1,#0x0
0000009A F7FF BL prints?T ; T=0x0001 (1)
0000009C FFB1 BL prints?T ; T=0x0001 (2)
118: print_uint32(OSCurrentPcb->Msg->Sender->PID); //显示消息发送者的PID
0000009E 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
000000A0 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
000000A2 6B00 LDR R0,[R0,#0x30]
000000A4 6880 LDR R0,[R0,#0x8]
000000A6 6880 LDR R0,[R0,#0x8]
000000A8 F7FF BL print_uint32?T ; T=0x0001 (1)
000000AA FFAA BL print_uint32?T ; T=0x0001 (2)
119: prints("",1);
000000AC 4800 LDR R0,=??S_1 ; ??S_1
000000AE 2101 MOV R1,#0x1
000000B0 F7FF BL prints?T ; T=0x0001 (1)
000000B2 FFA6 BL prints?T ; T=0x0001 (2)
120: prints("The message type is:",0);
000000B4 4800 LDR R0,=??S_6 ; ??S_6
000000B6 2100 MOV R1,#0x0
000000B8 F7FF BL prints?T ; T=0x0001 (1)
000000BA FFA2 BL prints?T ; T=0x0001 (2)
121: print_uint32(OSCurrentPcb->Msg->MsgType); //显示消息的类型
000000BC 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
000000BE 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
000000C0 6B00 LDR R0,[R0,#0x30]
000000C2 6800 LDR R0,[R0,#0x0]
000000C4 F7FF BL print_uint32?T ; T=0x0001 (1)
000000C6 FF9C BL print_uint32?T ; T=0x0001 (2)
122: prints("",1);
000000C8 4800 LDR R0,=??S_1 ; ??S_1
000000CA 2101 MOV R1,#0x1
000000CC F7FF BL prints?T ; T=0x0001 (1)
000000CE FF98 BL prints?T ; T=0x0001 (2)
123: prints("The message value is",0);
000000D0 4800 LDR R0,=??S_7 ; ??S_7
000000D2 2100 MOV R1,#0x0
000000D4 F7FF BL prints?T ; T=0x0001 (1)
000000D6 FF94 BL prints?T ; T=0x0001 (2)
124: print_uint32(*(OSCurrentPcb->Msg->pMsg)); //显示消息
000000D8 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
000000DA 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
000000DC 6B00 LDR R0,[R0,#0x30]
000000DE 68C0 LDR R0,[R0,#0xC]
000000E0 6800 LDR R0,[R0,#0x0]
000000E2 F7FF BL print_uint32?T ; T=0x0001 (1)
000000E4 FF8D BL print_uint32?T ; T=0x0001 (2)
125: prints("",1);
000000E6 4800 LDR R0,=??S_1 ; ??S_1
000000E8 2101 MOV R1,#0x1
000000EA F7FF BL prints?T ; T=0x0001 (1)
ARM COMPILER V2.50a, Task 25/08/06 23:22:56 PAGE 11
000000EC FF89 BL prints?T ; T=0x0001 (2)
126: prints("",1);
000000EE 4800 LDR R0,=??S_1 ; ??S_1
000000F0 2101 MOV R1,#0x1
000000F2 F7FF BL prints?T ; T=0x0001 (1)
000000F4 FF85 BL prints?T ; T=0x0001 (2)
127: OSFreeDevice(PrinterDeviceAddr); //释放打印机
000000F6 1C20 MOV R0,R4 ; PrinterDeviceAddr
000000F8 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
000000FA FF82 BL OSFreeDevice?T ; T=0x0001 (2)
128: switch(*(OSCurrentPcb->Msg->pMsg)) //键值散转
000000FC 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
000000FE 6801 LDR R1,[R0,#0x0] ; OSCurrentPcb
00000100 6B08 LDR R0,[R1,#0x30]
00000102 68C0 LDR R0,[R0,#0xC]
00000104 6800 LDR R0,[R0,#0x0]
00000106 2804 CMP R0,#0x4
00000108 D005 BEQ L_18 ; T=0x00000116
0000010A 2803 CMP R0,#0x3
0000010C D106 BNE L_15 ; T=0x0000011C
130: case KEY3: ON_LED2();break; //如果是按键3按下,则点亮LED2
0000010E L_16:
0000010E 4800 LDR R2,=0x80000
00000110 4800 LDR R0,=0xE002801C
00000112 6002 STR R2,[R0,#0x0]
00000114 E002 B L_15 ; T=0x0000011C
131: case KEY4: OFF_LED2();break; //如果是按键4按下,则熄灭LED2
00000116 L_18:
00000116 4800 LDR R2,=0x80000
00000118 4800 LDR R0,=0xE0028014
0000011A 6002 STR R2,[R0,#0x0]
133: }
0000011C L_15:
134: OSCurrentPcb->Msg=0; //消息处理完毕
0000011C 2000 MOV R0,#0x0
0000011E 6308 STR R0,[R1,#0x30]
135: }
00000120 E78F B L_12 ; T=0x00000042
00000122 L_14:
138: OSRequestDevice(PrinterDeviceAddr,0); //申请使用打印机
00000122 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000124 2100 MOV R1,#0x0
00000126 F7FF BL OSRequestDevice?T ; T=0x0001 (1)
00000128 FF6B BL OSRequestDevice?T ; T=0x0001 (2)
139: prints("",1);
0000012A 4800 LDR R0,=??S_1 ; ??S_1
0000012C 2101 MOV R1,#0x1
0000012E F7FF BL prints?T ; T=0x0001 (1)
00000130 FF67 BL prints?T ; T=0x0001 (2)
140: prints("",1);
00000132 4800 LDR R0,=??S_1 ; ??S_1
00000134 2101 MOV R1,#0x1
00000136 F7FF BL prints?T ; T=0x0001 (1)
00000138 FF63 BL prints?T ; T=0x0001 (2)
141: prints(OSCurrentPcb->Title,0); //显示任务的标题
0000013A 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
0000013C 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
0000013E 3034 ADD R0,#0x34
00000140 2100 MOV R1,#0x0
00000142 F7FF BL prints?T ; T=0x0001 (1)
00000144 FF5D BL prints?T ; T=0x0001 (2)
142: prints(":",1);
00000146 4800 LDR R0,=??S_3 ; ??S_3
00000148 2101 MOV R1,#0x1
0000014A F7FF BL prints?T ; T=0x0001 (1)
0000014C FF59 BL prints?T ; T=0x0001 (2)
ARM COMPILER V2.50a, Task 25/08/06 23:22:56 PAGE 12
143: prints("I have not got a message in 1 second!",1); //显示未收到消息
0000014E 4800 LDR R0,=??S_8 ; ??S_8
00000150 2101 MOV R1,#0x1
00000152 F7FF BL prints?T ; T=0x0001 (1)
00000154 FF55 BL prints?T ; T=0x0001 (2)
144: prints("Time out!",1); //超时
00000156 4800 LDR R0,=??S_9 ; ??S_9
00000158 2101 MOV R1,#0x1
0000015A F7FF BL prints?T ; T=0x0001 (1)
0000015C FF51 BL prints?T ; T=0x0001 (2)
145: prints("",1);
0000015E 4800 LDR R0,=??S_1 ; ??S_1
00000160 2101 MOV R1,#0x1
00000162 F7FF BL prints?T ; T=0x0001 (1)
00000164 FF4D BL prints?T ; T=0x0001 (2)
146: OSFreeDevice(PrinterDeviceAddr); //释放打印机
00000166 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000168 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
0000016A FF4A BL OSFreeDevice?T ; T=0x0001 (2)
148: }
0000016C E769 B L_12 ; T=0x00000042
0000016E ; SCOPE-END
149: }
0000016E BC10 POP {R4}
00000170 BC08 POP {R3}
00000172 4718 BX R3
00000174 ENDP ; 'Task2?T'
*** CODE SEGMENT '?PR?Task3?T?Task':
156: void Task3(void)
00000000 B510 PUSH {R4,LR}
157: {
00000002 ; SCOPE-START
160: PrinterDeviceAddr=OSGetDeviceAddr(OS_PRINTER_DEVICE_ID); //获取打印机设备地址
00000002 2001 MOV R0,#0x1
00000004 F7FF BL OSGetDeviceAddr?T ; T=0x0001 (1)
00000006 FFFC BL OSGetDeviceAddr?T ; T=0x0001 (2)
00000008 1C04 MOV R4,R0 ; PrinterDeviceAddr
0000000A ---- Variable 'PrinterDeviceAddr' assigned to Register 'R4' ----
161: OSRequestDevice(PrinterDeviceAddr,0); //申请使用打印机
0000000A 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000000C 2100 MOV R1,#0x0
0000000E F7FF BL OSRequestDevice?T ; T=0x0001 (1)
00000010 FFF7 BL OSRequestDevice?T ; T=0x0001 (2)
163: prints("",1);
00000012 4800 LDR R0,=??S_1 ; ??S_1
00000014 2101 MOV R1,#0x1
00000016 F7FF BL prints?T ; T=0x0001 (1)
00000018 FFF3 BL prints?T ; T=0x0001 (2)
164: prints(OSCurrentPcb->Title,0); //显示任务启动
0000001A 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
0000001C 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
0000001E 3034 ADD R0,#0x34
00000020 2100 MOV R1,#0x0
00000022 F7FF BL prints?T ; T=0x0001 (1)
00000024 FFED BL prints?T ; T=0x0001 (2)
165: prints(" Start..........................",1);
00000026 4800 LDR R0,=??S_2 ; ??S_2
00000028 2101 MOV R1,#0x1
0000002A F7FF BL prints?T ; T=0x0001 (1)
0000002C FFE9 BL prints?T ; T=0x0001 (2)
166: OSFreeDevice(PrinterDeviceAddr); //释放打印机
0000002E 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000030 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000032 FFE6 BL OSFreeDevice?T ; T=0x0001 (2)
168: EN_LED3();
00000034 4800 LDR R1,=0x100000
ARM COMPILER V2.50a, Task 25/08/06 23:22:56 PAGE 13
00000036 4800 LDR R0,=0xE0028018
00000038 6802 LDR R2,[R0,#0x0]
0000003A 430A ORR R2,R1
0000003C 6002 STR R2,[R0,#0x0]
0000003E 4800 LDR R0,=0xE0028014
00000040 6001 STR R1,[R0,#0x0]
169: while(1)
00000042 L_22:
171: OSRequestDevice(PrinterDeviceAddr,0); //申请使用打印机
00000042 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000044 2100 MOV R1,#0x0
00000046 F7FF BL OSRequestDevice?T ; T=0x0001 (1)
00000048 FFDB BL OSRequestDevice?T ; T=0x0001 (2)
172: prints("HaHa,Running in Task3! ",1); //显示信息
0000004A 4800 LDR R0,=??S_10 ; ??S_10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -