📄 task.lst
字号:
00000054 F7FF BL prints?T ; T=0x0001 (1)
00000056 FFD4 BL prints?T ; T=0x0001 (2)
172: OSFreeDevice(PrinterDeviceAddr); //释放打印机
00000058 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000005A F7FF BL OSFreeDevice?T ; T=0x0001 (1)
0000005C FFD1 BL OSFreeDevice?T ; T=0x0001 (2)
173: OSTaskDelay(50); //延时50个时钟节拍
0000005E 2032 MOV R0,#0x32
00000060 F7FF BL OSTaskDelay?T ; T=0x0001 (1)
00000062 FFCE BL OSTaskDelay?T ; T=0x0001 (2)
174: ON_LED6(); //开LED6
00000064 4800 LDR R1,=0x40000
00000066 4800 LDR R0,=0xFFFFF458
00000068 6001 STR R1,[R0,#0x0]
175: OSRequestDevice(PrinterDeviceAddr,0); //申请使用打印机
0000006A 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000006C 2100 MOV R1,#0x0
0000006E F7FF BL OSRequestDevice?T ; T=0x0001 (1)
00000070 FFC7 BL OSRequestDevice?T ; T=0x0001 (2)
176: prints("HaHa,Task3! ",1); //显示信息
00000072 4800 LDR R0,=??S_10 ; ??S_10
00000074 2101 MOV R1,#0x1
00000076 F7FF BL prints?T ; T=0x0001 (1)
00000078 FFC3 BL prints?T ; T=0x0001 (2)
177: OSFreeDevice(PrinterDeviceAddr); //释放打印机
0000007A 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000007C F7FF BL OSFreeDevice?T ; T=0x0001 (1)
0000007E FFC0 BL OSFreeDevice?T ; T=0x0001 (2)
178: OSTaskDelay(50); //延时50个时钟节拍
00000080 2032 MOV R0,#0x32
00000082 F7FF BL OSTaskDelay?T ; T=0x0001 (1)
00000084 FFBD BL OSTaskDelay?T ; T=0x0001 (2)
179: OFF_LED6(); //关LED6
00000086 4800 LDR R1,=0x40000
00000088 4800 LDR R0,=0xFFFFF454
0000008A 6001 STR R1,[R0,#0x0]
180: }
0000008C E7DC B L_22 ; T=0x00000048
0000008E ; SCOPE-END
181: }
0000008E BC10 POP {R4}
ARM COMPILER V2.50a, Task 16/05/06 14:55:46 PAGE 14
00000090 BC08 POP {R3}
00000092 4718 BX R3
00000094 ENDP ; 'Task3?T'
*** CODE SEGMENT '?PR?Task4?T?Task':
188: void Task4(void)
00000000 B510 PUSH {R4,LR}
189: {
00000002 ; SCOPE-START
192: 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' ----
193: 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)
195: 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)
196: 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)
197: 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)
198: OSFreeDevice(PrinterDeviceAddr); //释放打印机
0000002E 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000030 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000032 FFE6 BL OSFreeDevice?T ; T=0x0001 (2)
199: EN_LED7();
00000034 4800 LDR R2,=0xF000
00000036 4800 LDR R0,=0xFFFFF40C
00000038 6801 LDR R1,[R0,#0x0]
0000003A 4391 BIC R1,R2
0000003C 6001 STR R1,[R0,#0x0]
0000003E 4800 LDR R2,=0x8000000
00000040 4800 LDR R0,=0xFFFFF450
00000042 6801 LDR R1,[R0,#0x0]
00000044 4311 ORR R1,R2
00000046 6001 STR R1,[R0,#0x0]
200: while(1)
00000048 L_26:
202: OSRequestDevice(PrinterDeviceAddr,0); //申请使用打印机
00000048 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000004A 2100 MOV R1,#0x0
0000004C F7FF BL OSRequestDevice?T ; T=0x0001 (1)
0000004E FFD8 BL OSRequestDevice?T ; T=0x0001 (2)
203: prints("HaHa,Task4! ",1); //显示信息
00000050 4800 LDR R0,=??S_11 ; ??S_11
00000052 2101 MOV R1,#0x1
00000054 F7FF BL prints?T ; T=0x0001 (1)
00000056 FFD4 BL prints?T ; T=0x0001 (2)
204: OSFreeDevice(PrinterDeviceAddr); //释放打印机
00000058 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000005A F7FF BL OSFreeDevice?T ; T=0x0001 (1)
ARM COMPILER V2.50a, Task 16/05/06 14:55:46 PAGE 15
0000005C FFD1 BL OSFreeDevice?T ; T=0x0001 (2)
205: OSTaskDelay(100); //延时100个时钟节拍
0000005E 2064 MOV R0,#0x64
00000060 F7FF BL OSTaskDelay?T ; T=0x0001 (1)
00000062 FFCE BL OSTaskDelay?T ; T=0x0001 (2)
206: ON_LED7(); //开LED7
00000064 4800 LDR R1,=0x80000
00000066 4800 LDR R0,=0xFFFFF458
00000068 6001 STR R1,[R0,#0x0]
207: OSRequestDevice(PrinterDeviceAddr,0); //申请使用打印机
0000006A 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000006C 2100 MOV R1,#0x0
0000006E F7FF BL OSRequestDevice?T ; T=0x0001 (1)
00000070 FFC7 BL OSRequestDevice?T ; T=0x0001 (2)
208: prints("HaHa,Task4! ",1); //显示信息
00000072 4800 LDR R0,=??S_11 ; ??S_11
00000074 2101 MOV R1,#0x1
00000076 F7FF BL prints?T ; T=0x0001 (1)
00000078 FFC3 BL prints?T ; T=0x0001 (2)
209: OSFreeDevice(PrinterDeviceAddr); //释放打印机
0000007A 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000007C F7FF BL OSFreeDevice?T ; T=0x0001 (1)
0000007E FFC0 BL OSFreeDevice?T ; T=0x0001 (2)
210: OSTaskDelay(100); //延时100个时钟节拍
00000080 2064 MOV R0,#0x64
00000082 F7FF BL OSTaskDelay?T ; T=0x0001 (1)
00000084 FFBD BL OSTaskDelay?T ; T=0x0001 (2)
211: OFF_LED7(); //关LED7
00000086 4800 LDR R1,=0x80000
00000088 4800 LDR R0,=0xFFFFF454
0000008A 6001 STR R1,[R0,#0x0]
212: }
0000008C E7DC B L_26 ; T=0x00000048
0000008E ; SCOPE-END
213: }
0000008E BC10 POP {R4}
00000090 BC08 POP {R3}
00000092 4718 BX R3
00000094 ENDP ; 'Task4?T'
*** CODE SEGMENT '?PR?Task5?T?Task':
220: void Task5(void)
00000000 B530 PUSH {R4-R5,LR}
00000002 B085 SUB R13,#0x14
221: {
00000004 ; SCOPE-START
227: PrinterDeviceAddr=OSGetDeviceAddr(OS_PRINTER_DEVICE_ID); //获取打印机设备地址
00000004 2001 MOV R0,#0x1
00000006 F7FF BL OSGetDeviceAddr?T ; T=0x0001 (1)
00000008 FFFB BL OSGetDeviceAddr?T ; T=0x0001 (2)
0000000A 1C04 MOV R4,R0 ; PrinterDeviceAddr
0000000C ---- Variable 'PrinterDeviceAddr' assigned to Register 'R4' ----
228: OSRequestDevice(PrinterDeviceAddr,0); //申请使用打印机
0000000C 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000000E 2100 MOV R1,#0x0
00000010 F7FF BL OSRequestDevice?T ; T=0x0001 (1)
00000012 FFF6 BL OSRequestDevice?T ; T=0x0001 (2)
230: prints("",1);
00000014 4800 LDR R0,=??S_1 ; ??S_1
00000016 2101 MOV R1,#0x1
00000018 F7FF BL prints?T ; T=0x0001 (1)
0000001A FFF2 BL prints?T ; T=0x0001 (2)
231: prints(OSCurrentPcb->Title,0); //显示任务启动
0000001C 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
0000001E 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
00000020 3034 ADD R0,#0x34
00000022 2100 MOV R1,#0x0
ARM COMPILER V2.50a, Task 16/05/06 14:55:46 PAGE 16
00000024 F7FF BL prints?T ; T=0x0001 (1)
00000026 FFEC BL prints?T ; T=0x0001 (2)
232: prints(" Start.",1);
00000028 4800 LDR R0,=??S_2 ; ??S_2
0000002A 2101 MOV R1,#0x1
0000002C F7FF BL prints?T ; T=0x0001 (1)
0000002E FFE8 BL prints?T ; T=0x0001 (2)
233: OSFreeDevice(PrinterDeviceAddr); //释放打印机
00000030 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000032 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000034 FFE5 BL OSFreeDevice?T ; T=0x0001 (2)
235: Task1Pcb=(OSpcb *)(uint32)OSTaskCreat((uint32)Task1,256,4,OS_THUMB_MODE,"Task1"); //创建任务1
00000036 4800 LDR R0,=??S_12 ; ??S_12
00000038 B401 PUSH {R0}
0000003A 4800 LDR R0,=Task1?T ; Task1?T
0000003C 4940 LDR R1,=0x100
0000003E 2204 MOV R2,#0x4
00000040 2320 MOV R3,#0x20
00000042 F7FF BL OSTaskCreat?T ; T=0x0001 (1)
00000044 FFDD BL OSTaskCreat?T ; T=0x0001 (2)
00000046 B001 ADD R13,#0x4
00000048 1C05 MOV R5,R0
0000004A ---- Variable 'Task1Pcb' assigned to Register 'R5' ----
236: Task2Pcb=(OSpcb *)(uint32)OSTaskCreat((uint32)Task2,256,5,OS_THUMB_MODE,"Task2"); //创建任务2
0000004A 4800 LDR R0,=??S_13 ; ??S_13
0000004C B401 PUSH {R0}
0000004E 4800 LDR R0,=Task2?T ; Task2?T
00000050 4940 LDR R1,=0x100
00000052 2205 MOV R2,#0x5
00000054 2320 MOV R3,#0x20
00000056 F7FF BL OSTaskCreat?T ; T=0x0001 (1)
00000058 FFD3 BL OSTaskCreat?T ; T=0x0001 (2)
0000005A B001 ADD R13,#0x4
0000005C 1C04 MOV R4,R0
0000005E ---- Variable 'Task2Pcb' assigned to Register 'R4' ----
238: while(1)
0000005E L_30:
240: OSTaskDelay(1); //延迟10ms
0000005E 2001 MOV R0,#0x1
00000060 F7FF BL OSTaskDelay?T ; T=0x0001 (1)
00000062 FFCE BL OSTaskDelay?T ; T=0x0001 (2)
241: ScanKey(); //键盘扫描
00000064 F7FF BL ScanKey?T ; T=0x0001 (1)
00000066 FFCC BL ScanKey?T ; T=0x0001 (2)
242: if(Key.Value) //如果有键按下
00000068 4800 LDR R0,=Key ; Key
0000006A 6800 LDR R0,[R0,#0x0] ; Key
0000006C 2800 CMP R0,#0x0
0000006E D0F6 BEQ L_30 ; T=0x0000005E
244: MsgValue=Key.Value; //保存按键值
00000070 4800 LDR R0,=Key ; Key
00000072 6800 LDR R0,[R0,#0x0] ; Key
00000074 9004 STR R0,[R13,#0x10] ; MsgValue
246: (&Msg)->MsgType=KEYBOARD_MSG; //设置要发送的消息类型
00000076 2002 MOV R0,#0x2
00000078 9000 STR R0,[R13,#0x0] ; Msg
247: (&Msg)->pMsg=&MsgValue; //设置要发送的消息的值
0000007A A804 ADD R0,R13,#0x10
0000007C 9003 STR R0,[R13,#0xC] ; Msg
248: (&Msg)->Length=1; //设置消息的长度
0000007E 2001 MOV R0,#0x1
00000080 9001 STR R0,[R13,#0x4] ; Msg
250: OSSendMsg(Task1Pcb,&Msg); //将消息发送给任务1
00000082 1C28 MOV R0,R5 ; Task1Pcb
00000084 A900 ADD R1,R13,#0x0
00000086 F7FF BL OSSendMsg?T ; T=0x0001 (1)
ARM COMPILER V2.50a, Task 16/05/06 14:55:46 PAGE 17
00000088 FFBB BL OSSendMsg?T ; T=0x0001 (2)
251: OSSendMsg(Task2Pcb,&Msg); //将消息发送给任务2
0000008A 1C20 MOV R0,R4 ; Task2Pcb
0000008C A900 ADD R1,R13,#0x0
0000008E F7FF BL OSSendMsg?T ; T=0x0001 (1)
00000090 FFB7 BL OSSendMsg?T ; T=0x0001 (2)
252: Key.Value=0; //清除键值,表示该次按键已经处理
00000092 2100 MOV R1,#0x0
00000094 4800 LDR R0,=Key ; Key
00000096 6001 STR R1,[R0,#0x0] ; Key
254: }
00000098 E7E1 B L_30 ; T=0x0000005E
0000009A ; SCOPE-END
255: }
0000009A B005 ADD R13,#0x14
0000009C BC30 POP {R4-R5}
0000009E BC08 POP {R3}
000000A0 4718 BX R3
000000A2 ENDP ; 'Task5?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = 194
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -