?? task.lst
字號:
00000028 2101 MOV R1,#0x1
0000002A F7FF BL prints?T ; T=0x0001 (1)
0000002C FFE9 BL prints?T ; T=0x0001 (2)
101: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
0000002E 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000030 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000032 FFE6 BL OSFreeDevice?T ; T=0x0001 (2)
103: EN_LED5();
00000034 22F0 MOV R2,#0xF0
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,=0x2000000
00000040 4800 LDR R0,=0xFFFFF450
00000042 6801 LDR R1,[R0,#0x0]
00000044 4311 ORR R1,R2
00000046 6001 STR R1,[R0,#0x0]
104: while(1)
00000048 L_12:
106: OSTaskDelay(100); //延時等待消息的到來
00000048 2064 MOV R0,#0x64
0000004A F7FF BL OSTaskDelay?T ; T=0x0001 (1)
0000004C FFD9 BL OSTaskDelay?T ; T=0x0001 (2)
107: if(OSCurrentPcb->Msg) //如果收到了消息
0000004E 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
00000050 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
00000052 6B00 LDR R0,[R0,#0x30]
00000054 2800 CMP R0,#0x0
00000056 D067 BEQ L_14 ; T=0x00000128
109: OSRequestDevice(PrinterDeviceAddr,0); //申請使用打印機
00000058 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000005A 2100 MOV R1,#0x0
0000005C F7FF BL OSRequestDevice?T ; T=0x0001 (1)
0000005E FFD0 BL OSRequestDevice?T ; T=0x0001 (2)
110: prints("",1);
00000060 4800 LDR R0,=??S_1 ; ??S_1
00000062 2101 MOV R1,#0x1
00000064 F7FF BL prints?T ; T=0x0001 (1)
00000066 FFCC BL prints?T ; T=0x0001 (2)
111: prints("",1);
00000068 4800 LDR R0,=??S_1 ; ??S_1
0000006A 2101 MOV R1,#0x1
0000006C F7FF BL prints?T ; T=0x0001 (1)
0000006E FFC8 BL prints?T ; T=0x0001 (2)
112: prints(OSCurrentPcb->Title,0); //顯示任務的標題
00000070 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
00000072 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
00000074 3034 ADD R0,#0x34
00000076 2100 MOV R1,#0x0
00000078 F7FF BL prints?T ; T=0x0001 (1)
ARM COMPILER V2.50a, Task 16/05/06 14:55:46 PAGE 10
0000007A FFC2 BL prints?T ; T=0x0001 (2)
113: prints(":",1);
0000007C 4800 LDR R0,=??S_3 ; ??S_3
0000007E 2101 MOV R1,#0x1
00000080 F7FF BL prints?T ; T=0x0001 (1)
00000082 FFBE BL prints?T ; T=0x0001 (2)
114: prints("Haha,I have got a message from: ",0);
00000084 4800 LDR R0,=??S_4 ; ??S_4
00000086 2100 MOV R1,#0x0
00000088 F7FF BL prints?T ; T=0x0001 (1)
0000008A FFBA BL prints?T ; T=0x0001 (2)
115: prints(OSCurrentPcb->Msg->Sender->Title,1); //顯示消息發送者的標題
0000008C 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
0000008E 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
00000090 6B00 LDR R0,[R0,#0x30]
00000092 6880 LDR R0,[R0,#0x8]
00000094 3034 ADD R0,#0x34
00000096 2101 MOV R1,#0x1
00000098 F7FF BL prints?T ; T=0x0001 (1)
0000009A FFB2 BL prints?T ; T=0x0001 (2)
116: prints("The sender's PID is: ",0);
0000009C 4800 LDR R0,=??S_5 ; ??S_5
0000009E 2100 MOV R1,#0x0
000000A0 F7FF BL prints?T ; T=0x0001 (1)
000000A2 FFAE BL prints?T ; T=0x0001 (2)
117: print_uint32(OSCurrentPcb->Msg->Sender->PID); //顯示消息發送者的PID
000000A4 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
000000A6 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
000000A8 6B00 LDR R0,[R0,#0x30]
000000AA 6880 LDR R0,[R0,#0x8]
000000AC 6880 LDR R0,[R0,#0x8]
000000AE F7FF BL print_uint32?T ; T=0x0001 (1)
000000B0 FFA7 BL print_uint32?T ; T=0x0001 (2)
118: prints("",1);
000000B2 4800 LDR R0,=??S_1 ; ??S_1
000000B4 2101 MOV R1,#0x1
000000B6 F7FF BL prints?T ; T=0x0001 (1)
000000B8 FFA3 BL prints?T ; T=0x0001 (2)
119: prints("The message type is:",0);
000000BA 4800 LDR R0,=??S_6 ; ??S_6
000000BC 2100 MOV R1,#0x0
000000BE F7FF BL prints?T ; T=0x0001 (1)
000000C0 FF9F BL prints?T ; T=0x0001 (2)
120: print_uint32(OSCurrentPcb->Msg->MsgType); //顯示消息的類型
000000C2 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
000000C4 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
000000C6 6B00 LDR R0,[R0,#0x30]
000000C8 6800 LDR R0,[R0,#0x0]
000000CA F7FF BL print_uint32?T ; T=0x0001 (1)
000000CC FF99 BL print_uint32?T ; T=0x0001 (2)
121: prints("",1);
000000CE 4800 LDR R0,=??S_1 ; ??S_1
000000D0 2101 MOV R1,#0x1
000000D2 F7FF BL prints?T ; T=0x0001 (1)
000000D4 FF95 BL prints?T ; T=0x0001 (2)
122: prints("The message value is",0);
000000D6 4800 LDR R0,=??S_7 ; ??S_7
000000D8 2100 MOV R1,#0x0
000000DA F7FF BL prints?T ; T=0x0001 (1)
000000DC FF91 BL prints?T ; T=0x0001 (2)
123: print_uint32(*(OSCurrentPcb->Msg->pMsg)); //顯示消息
000000DE 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
000000E0 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
000000E2 6B00 LDR R0,[R0,#0x30]
000000E4 68C0 LDR R0,[R0,#0xC]
000000E6 6800 LDR R0,[R0,#0x0]
ARM COMPILER V2.50a, Task 16/05/06 14:55:46 PAGE 11
000000E8 F7FF BL print_uint32?T ; T=0x0001 (1)
000000EA FF8A BL print_uint32?T ; T=0x0001 (2)
124: prints("",1);
000000EC 4800 LDR R0,=??S_1 ; ??S_1
000000EE 2101 MOV R1,#0x1
000000F0 F7FF BL prints?T ; T=0x0001 (1)
000000F2 FF86 BL prints?T ; T=0x0001 (2)
125: prints("",1);
000000F4 4800 LDR R0,=??S_1 ; ??S_1
000000F6 2101 MOV R1,#0x1
000000F8 F7FF BL prints?T ; T=0x0001 (1)
000000FA FF82 BL prints?T ; T=0x0001 (2)
126: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
000000FC 1C20 MOV R0,R4 ; PrinterDeviceAddr
000000FE F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000100 FF7F BL OSFreeDevice?T ; T=0x0001 (2)
127: switch(*(OSCurrentPcb->Msg->pMsg)) //鍵值散轉
00000102 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
00000104 6801 LDR R1,[R0,#0x0] ; OSCurrentPcb
00000106 6B08 LDR R0,[R1,#0x30]
00000108 68C0 LDR R0,[R0,#0xC]
0000010A 6800 LDR R0,[R0,#0x0]
0000010C 2804 CMP R0,#0x4
0000010E D005 BEQ L_18 ; T=0x0000011C
00000110 2803 CMP R0,#0x3
00000112 D106 BNE L_15 ; T=0x00000122
129: case KEY3: ON_LED5();break; //如果是按鍵3按下,則點亮LED5
00000114 L_16:
00000114 4800 LDR R2,=0x20000
00000116 4800 LDR R0,=0xFFFFF458
00000118 6002 STR R2,[R0,#0x0]
0000011A E002 B L_15 ; T=0x00000122
130: case KEY4: OFF_LED5();break; //如果是按鍵4按下,則熄滅LED5
0000011C L_18:
0000011C 4800 LDR R2,=0x20000
0000011E 4800 LDR R0,=0xFFFFF454
00000120 6002 STR R2,[R0,#0x0]
132: }
00000122 L_15:
133: OSCurrentPcb->Msg=0; //消息處理完畢
00000122 2000 MOV R0,#0x0
00000124 6308 STR R0,[R1,#0x30]
134: }
00000126 E78F B L_12 ; T=0x00000048
00000128 L_14:
137: OSRequestDevice(PrinterDeviceAddr,0); //申請使用打印機
00000128 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000012A 2100 MOV R1,#0x0
0000012C F7FF BL OSRequestDevice?T ; T=0x0001 (1)
0000012E FF68 BL OSRequestDevice?T ; T=0x0001 (2)
138: prints("",1);
00000130 4800 LDR R0,=??S_1 ; ??S_1
00000132 2101 MOV R1,#0x1
00000134 F7FF BL prints?T ; T=0x0001 (1)
00000136 FF64 BL prints?T ; T=0x0001 (2)
139: prints("",1);
00000138 4800 LDR R0,=??S_1 ; ??S_1
0000013A 2101 MOV R1,#0x1
0000013C F7FF BL prints?T ; T=0x0001 (1)
0000013E FF60 BL prints?T ; T=0x0001 (2)
140: prints(OSCurrentPcb->Title,0); //顯示任務的標題
00000140 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
00000142 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
00000144 3034 ADD R0,#0x34
00000146 2100 MOV R1,#0x0
00000148 F7FF BL prints?T ; T=0x0001 (1)
ARM COMPILER V2.50a, Task 16/05/06 14:55:46 PAGE 12
0000014A FF5A BL prints?T ; T=0x0001 (2)
141: prints(":",1);
0000014C 4800 LDR R0,=??S_3 ; ??S_3
0000014E 2101 MOV R1,#0x1
00000150 F7FF BL prints?T ; T=0x0001 (1)
00000152 FF56 BL prints?T ; T=0x0001 (2)
142: prints("I have not got a message in 1 second!",1); //顯示未收到消息
00000154 4800 LDR R0,=??S_8 ; ??S_8
00000156 2101 MOV R1,#0x1
00000158 F7FF BL prints?T ; T=0x0001 (1)
0000015A FF52 BL prints?T ; T=0x0001 (2)
143: prints("Time out!",1); //超時
0000015C 4800 LDR R0,=??S_9 ; ??S_9
0000015E 2101 MOV R1,#0x1
00000160 F7FF BL prints?T ; T=0x0001 (1)
00000162 FF4E BL prints?T ; T=0x0001 (2)
144: prints("",1);
00000164 4800 LDR R0,=??S_1 ; ??S_1
00000166 2101 MOV R1,#0x1
00000168 F7FF BL prints?T ; T=0x0001 (1)
0000016A FF4A BL prints?T ; T=0x0001 (2)
145: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
0000016C 1C20 MOV R0,R4 ; PrinterDeviceAddr
0000016E F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000170 FF47 BL OSFreeDevice?T ; T=0x0001 (2)
147: }
00000172 E769 B L_12 ; T=0x00000048
00000174 ; SCOPE-END
148: }
00000174 BC10 POP {R4}
00000176 BC08 POP {R3}
00000178 4718 BX R3
0000017A ENDP ; 'Task2?T'
*** CODE SEGMENT '?PR?Task3?T?Task':
155: void Task3(void)
00000000 B510 PUSH {R4,LR}
156: {
00000002 ; SCOPE-START
159: 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' ----
160: 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)
162: 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)
163: 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)
164: 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)
ARM COMPILER V2.50a, Task 16/05/06 14:55:46 PAGE 13
165: OSFreeDevice(PrinterDeviceAddr); //釋放打印機
0000002E 1C20 MOV R0,R4 ; PrinterDeviceAddr
00000030 F7FF BL OSFreeDevice?T ; T=0x0001 (1)
00000032 FFE6 BL OSFreeDevice?T ; T=0x0001 (2)
167: EN_LED6();
00000034 4800 LDR R2,=0xF00
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,=0x4000000
00000040 4800 LDR R0,=0xFFFFF450
00000042 6801 LDR R1,[R0,#0x0]
00000044 4311 ORR R1,R2
00000046 6001 STR R1,[R0,#0x0]
168: while(1)
00000048 L_22:
170: 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)
171: prints("HaHa,Task3! ",1); //顯示信息
00000050 4800 LDR R0,=??S_10 ; ??S_10
00000052 2101 MOV R1,#0x1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -