?? task.lst
字號:
0000004A 4800 LDR R0,=??S_10 ; ??S_10
0000004C 2101 MOV R1,#0x1
0000004E F7FF BL prints?T ; T=0x0001 (1)
00000050 FFD7 BL prints?T ; T=0x0001 (2)
173: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
00000052 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000054 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000056 FFD4 BL OSFreeDevice?T ; T=0x0001 (2)
174: OSTaskDelay(50); //延時50個時鐘節拍
00000058 2032 MOV R0,#0x32
0000005A F7FF BL OSTaskDelay?T ; T=0x0001 (1)
0000005C FFD1 BL OSTaskDelay?T ; T=0x0001 (2)
175: ON_LED3(); //開LED3
0000005E 4800 LDR R1,=0x100000
00000060 4800 LDR R0,=0xE002801C
00000062 6001 STR R1,[R0,#0x0]
176: OSRequestDevice(PrinterDeviceAddr,0); //申請使用打印機
00000064 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000066 2100 MOV R1,#0x0
00000068 F7FF BL OSRequestDevice?T ; T=0x0001 (1)
0000006A FFCA BL OSRequestDevice?T ; T=0x0001 (2)
177: prints("HaHa,Running in Task3! ",1); //顯示信息
0000006C 4800 LDR R0,=??S_10 ; ??S_10
0000006E 2101 MOV R1,#0x1
00000070 F7FF BL prints?T ; T=0x0001 (1)
00000072 FFC6 BL prints?T ; T=0x0001 (2)
178: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
00000074 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000076 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000078 FFC3 BL OSFreeDevice?T ; T=0x0001 (2)
179: OSTaskDelay(50); //延時50個時鐘節拍
0000007A 2032 MOV R0,#0x32
0000007C F7FF BL OSTaskDelay?T ; T=0x0001 (1)
0000007E FFC0 BL OSTaskDelay?T ; T=0x0001 (2)
180: OFF_LED3(); //關LED3
00000080 4800 LDR R1,=0x100000
00000082 4800 LDR R0,=0xE0028014
00000084 6001 STR R1,[R0,#0x0]
181: }
00000086 E7DC B L_22 ; T=0x00000042
00000088 ; SCOPE-END
182: }
00000088 BC10 POP {R4}
0000008A BC08 POP {R3}
0000008C 4718 BX R3
0000008E ENDP ; 'Task3?T'
*** CODE SEGMENT '?PR?Task4?T?Task':
189: void Task4(void)
ARM COMPILER V2.50a, Task 28/08/06 09:18:55 PAGE 14
00000000 B510 PUSH {R4,LR}
190: {
00000002 ; SCOPE-START
193: 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' ----
194: 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)
196: 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)
197: 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)
198: 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)
199: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
0000002E 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000030 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000032 FFE6 BL OSFreeDevice?T ; T=0x0001 (2)
200: EN_LED4();
00000034 4800 LDR R1,=0x200000
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]
201: while(1)
00000042 L_26:
203: 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)
204: prints("HaHa,Running in Task4! ",1); //顯示信息
0000004A 4800 LDR R0,=??S_11 ; ??S_11
0000004C 2101 MOV R1,#0x1
0000004E F7FF BL prints?T ; T=0x0001 (1)
00000050 FFD7 BL prints?T ; T=0x0001 (2)
205: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
00000052 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000054 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000056 FFD4 BL OSFreeDevice?T ; T=0x0001 (2)
206: OSTaskDelay(100); //延時100個時鐘節拍
00000058 2064 MOV R0,#0x64
0000005A F7FF BL OSTaskDelay?T ; T=0x0001 (1)
0000005C FFD1 BL OSTaskDelay?T ; T=0x0001 (2)
207: ON_LED4(); //開LED4
0000005E 4800 LDR R1,=0x200000
00000060 4800 LDR R0,=0xE002801C
ARM COMPILER V2.50a, Task 28/08/06 09:18:55 PAGE 15
00000062 6001 STR R1,[R0,#0x0]
208: OSRequestDevice(PrinterDeviceAddr,0); //申請使用打印機
00000064 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000066 2100 MOV R1,#0x0
00000068 F7FF BL OSRequestDevice?T ; T=0x0001 (1)
0000006A FFCA BL OSRequestDevice?T ; T=0x0001 (2)
209: prints("HaHa,Running in Task4! ",1); //顯示信息
0000006C 4800 LDR R0,=??S_11 ; ??S_11
0000006E 2101 MOV R1,#0x1
00000070 F7FF BL prints?T ; T=0x0001 (1)
00000072 FFC6 BL prints?T ; T=0x0001 (2)
210: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
00000074 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000076 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000078 FFC3 BL OSFreeDevice?T ; T=0x0001 (2)
211: OSTaskDelay(100); //延時100個時鐘節拍
0000007A 2064 MOV R0,#0x64
0000007C F7FF BL OSTaskDelay?T ; T=0x0001 (1)
0000007E FFC0 BL OSTaskDelay?T ; T=0x0001 (2)
212: OFF_LED4(); //關LED4
00000080 4800 LDR R1,=0x200000
00000082 4800 LDR R0,=0xE0028014
00000084 6001 STR R1,[R0,#0x0]
213: }
00000086 E7DC B L_26 ; T=0x00000042
00000088 ; SCOPE-END
214: }
00000088 BC10 POP {R4}
0000008A BC08 POP {R3}
0000008C 4718 BX R3
0000008E ENDP ; 'Task4?T'
*** CODE SEGMENT '?PR?Task5?T?Task':
221: void Task5(void)
00000000 B530 PUSH {R4-R5,LR}
00000002 B085 SUB R13,#0x14
222: {
00000004 ; SCOPE-START
228: 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' ----
229: 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)
231: 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)
232: 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
00000024 F7FF BL prints?T ; T=0x0001 (1)
00000026 FFEC BL prints?T ; T=0x0001 (2)
233: 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)
234: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
ARM COMPILER V2.50a, Task 28/08/06 09:18:55 PAGE 16
00000030 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000032 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000034 FFE5 BL OSFreeDevice?T ; T=0x0001 (2)
236: 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' ----
237: 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' ----
239: while(1)
0000005E L_30:
241: OSTaskDelay(1); //延遲10ms
0000005E 2001 MOV R0,#0x1
00000060 F7FF BL OSTaskDelay?T ; T=0x0001 (1)
00000062 FFCE BL OSTaskDelay?T ; T=0x0001 (2)
242: ScanKey(); //鍵盤掃描
00000064 F7FF BL ScanKey?T ; T=0x0001 (1)
00000066 FFCC BL ScanKey?T ; T=0x0001 (2)
243: 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
245: MsgValue=Key.Value; //保存按鍵值
00000070 4800 LDR R0,=Key ; Key
00000072 6800 LDR R0,[R0,#0x0] ; Key
00000074 9004 STR R0,[R13,#0x10] ; MsgValue
247: (&Msg)->MsgType=KEYBOARD_MSG; //設置要發送的消息類型
00000076 2002 MOV R0,#0x2
00000078 9000 STR R0,[R13,#0x0] ; Msg
248: (&Msg)->pMsg=&MsgValue; //設置要發送的消息的值
0000007A A804 ADD R0,R13,#0x10
0000007C 9003 STR R0,[R13,#0xC] ; Msg
249: (&Msg)->Length=1; //設置消息的長度
0000007E 2001 MOV R0,#0x1
00000080 9001 STR R0,[R13,#0x4] ; Msg
251: OSSendMsg(Task1Pcb,&Msg); //將消息發送給任務1
00000082 1C28 MOV R0,R5 ; Task1Pcb
00000084 A900 ADD R1,R13,#0x0
00000086 F7FF BL OSSendMsg?T ; T=0x0001 (1)
00000088 FFBB BL OSSendMsg?T ; T=0x0001 (2)
252: 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)
253: Key.Value=0; //清除鍵值,表示該次按鍵已經處理
00000092 2100 MOV R1,#0x0
ARM COMPILER V2.50a, Task 28/08/06 09:18:55 PAGE 17
00000094 4800 LDR R0,=Key ; Key
00000096 6001 STR R1,[R0,#0x0] ; Key
255: }
00000098 E7E1 B L_30 ; T=0x0000005E
0000009A ; SCOPE-END
256: }
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 = 241
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -