⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task.lst

📁 uCOS在LPC213X上的移植。适合ARM嵌入式系统初学者。
💻 LST
📖 第 1 页 / 共 4 页
字号:
 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 + -