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

📄 task.lst

📁 是实时操作系统uc/os的原代码,写了头文件
💻 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  D069      BEQ         L_14  ; T=0x00000126
  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
ARM COMPILER V2.50a,  Task                                                                 28/08/06  09:18:55  PAGE 10  

 0000007A  F7FF      BL          prints?T  ; T=0x0001  (1)
 0000007C  FFC1      BL          prints?T  ; T=0x0001  (2)
  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-0x40000000);  //显示消息发送者的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  4800      LDR         R1,=0x40000000
 000000AA  1A40      SUB         R0,R1
 000000AC  F7FF      BL          print_uint32?T  ; T=0x0001  (1)
 000000AE  FFA8      BL          print_uint32?T  ; T=0x0001  (2)
  119:      prints("",1);
 000000B0  4800      LDR         R0,=??S_1 ; ??S_1
 000000B2  2101      MOV         R1,#0x1
 000000B4  F7FF      BL          prints?T  ; T=0x0001  (1)
 000000B6  FFA4      BL          prints?T  ; T=0x0001  (2)
  120:      prints("The message type is:",0);
 000000B8  4800      LDR         R0,=??S_6 ; ??S_6
 000000BA  2100      MOV         R1,#0x0
 000000BC  F7FF      BL          prints?T  ; T=0x0001  (1)
 000000BE  FFA0      BL          prints?T  ; T=0x0001  (2)
  121:      print_uint32(OSCurrentPcb->Msg->MsgType);    //显示消息的类型
 000000C0  4800      LDR         R0,=OSCurrentPcb ; OSCurrentPcb
 000000C2  6800      LDR         R0,[R0,#0x0] ; OSCurrentPcb
 000000C4  6B00      LDR         R0,[R0,#0x30]
 000000C6  6800      LDR         R0,[R0,#0x0]
 000000C8  F7FF      BL          print_uint32?T  ; T=0x0001  (1)
 000000CA  FF9A      BL          print_uint32?T  ; T=0x0001  (2)
  122:      prints("",1);
 000000CC  4800      LDR         R0,=??S_1 ; ??S_1
 000000CE  2101      MOV         R1,#0x1
 000000D0  F7FF      BL          prints?T  ; T=0x0001  (1)
 000000D2  FF96      BL          prints?T  ; T=0x0001  (2)
  123:      prints("The message value is",0);
 000000D4  4800      LDR         R0,=??S_7 ; ??S_7
 000000D6  2100      MOV         R1,#0x0
 000000D8  F7FF      BL          prints?T  ; T=0x0001  (1)
 000000DA  FF92      BL          prints?T  ; T=0x0001  (2)
  124:      print_uint32(*(OSCurrentPcb->Msg->pMsg));   //显示消息
 000000DC  4800      LDR         R0,=OSCurrentPcb ; OSCurrentPcb
 000000DE  6800      LDR         R0,[R0,#0x0] ; OSCurrentPcb
 000000E0  6B00      LDR         R0,[R0,#0x30]
 000000E2  68C0      LDR         R0,[R0,#0xC]
 000000E4  6800      LDR         R0,[R0,#0x0]
 000000E6  F7FF      BL          print_uint32?T  ; T=0x0001  (1)
 000000E8  FF8B      BL          print_uint32?T  ; T=0x0001  (2)
ARM COMPILER V2.50a,  Task                                                                 28/08/06  09:18:55  PAGE 11  

  125:      prints("",1);
 000000EA  4800      LDR         R0,=??S_1 ; ??S_1
 000000EC  2101      MOV         R1,#0x1
 000000EE  F7FF      BL          prints?T  ; T=0x0001  (1)
 000000F0  FF87      BL          prints?T  ; T=0x0001  (2)
  126:      prints("",1);
 000000F2  4800      LDR         R0,=??S_1 ; ??S_1
 000000F4  2101      MOV         R1,#0x1
 000000F6  F7FF      BL          prints?T  ; T=0x0001  (1)
 000000F8  FF83      BL          prints?T  ; T=0x0001  (2)
  127:      OSFreeDevice(PrinterDeviceAddr);    //释放打印机
 000000FA  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 000000FC  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
 000000FE  FF80      BL          OSFreeDevice?T  ; T=0x0001  (2)
  128:      switch(*(OSCurrentPcb->Msg->pMsg))     //键值散转
 00000100  4800      LDR         R0,=OSCurrentPcb ; OSCurrentPcb
 00000102  6801      LDR         R1,[R0,#0x0] ; OSCurrentPcb
 00000104  6B08      LDR         R0,[R1,#0x30]
 00000106  68C0      LDR         R0,[R0,#0xC]
 00000108  6800      LDR         R0,[R0,#0x0]
 0000010A  2804      CMP         R0,#0x4
 0000010C  D005      BEQ         L_18  ; T=0x0000011A
 0000010E  2803      CMP         R0,#0x3
 00000110  D106      BNE         L_15  ; T=0x00000120
  130:        case KEY3: ON_LED2();break;    //如果是按键3按下,则点亮LED2
 00000112          L_16:
 00000112  4800      LDR         R2,=0x80000
 00000114  4800      LDR         R0,=0xE002801C
 00000116  6002      STR         R2,[R0,#0x0]
 00000118  E002      B           L_15  ; T=0x00000120
  131:        case KEY4: OFF_LED2();break;   //如果是按键4按下,则熄灭LED2
 0000011A          L_18:
 0000011A  4800      LDR         R2,=0x80000
 0000011C  4800      LDR         R0,=0xE0028014
 0000011E  6002      STR         R2,[R0,#0x0]
  133:       }
 00000120          L_15:
  134:      OSCurrentPcb->Msg=0;     //消息处理完毕
 00000120  2000      MOV         R0,#0x0
 00000122  6308      STR         R0,[R1,#0x30]
  135:     }
 00000124  E78D      B           L_12  ; T=0x00000042
 00000126          L_14:
  138:      OSRequestDevice(PrinterDeviceAddr,0);    //申请使用打印机
 00000126  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 00000128  2100      MOV         R1,#0x0
 0000012A  F7FF      BL          OSRequestDevice?T  ; T=0x0001  (1)
 0000012C  FF69      BL          OSRequestDevice?T  ; T=0x0001  (2)
  139:      prints("",1);
 0000012E  4800      LDR         R0,=??S_1 ; ??S_1
 00000130  2101      MOV         R1,#0x1
 00000132  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000134  FF65      BL          prints?T  ; T=0x0001  (2)
  140:      prints("",1);
 00000136  4800      LDR         R0,=??S_1 ; ??S_1
 00000138  2101      MOV         R1,#0x1
 0000013A  F7FF      BL          prints?T  ; T=0x0001  (1)
 0000013C  FF61      BL          prints?T  ; T=0x0001  (2)
  141:      prints(OSCurrentPcb->Title,0);   //显示任务的标题
 0000013E  4800      LDR         R0,=OSCurrentPcb ; OSCurrentPcb
 00000140  6800      LDR         R0,[R0,#0x0] ; OSCurrentPcb
 00000142  3034      ADD         R0,#0x34
 00000144  2100      MOV         R1,#0x0
 00000146  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000148  FF5B      BL          prints?T  ; T=0x0001  (2)
  142:      prints(":",1);
ARM COMPILER V2.50a,  Task                                                                 28/08/06  09:18:55  PAGE 12  

 0000014A  4800      LDR         R0,=??S_3 ; ??S_3
 0000014C  2101      MOV         R1,#0x1
 0000014E  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000150  FF57      BL          prints?T  ; T=0x0001  (2)
  143:      prints("I have not got a message in 1 second!",1);  //显示未收到消息
 00000152  4800      LDR         R0,=??S_8 ; ??S_8
 00000154  2101      MOV         R1,#0x1
 00000156  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000158  FF53      BL          prints?T  ; T=0x0001  (2)
  144:      prints("Time out!",1);  //超时
 0000015A  4800      LDR         R0,=??S_9 ; ??S_9
 0000015C  2101      MOV         R1,#0x1
 0000015E  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000160  FF4F      BL          prints?T  ; T=0x0001  (2)
  145:      prints("",1);
 00000162  4800      LDR         R0,=??S_1 ; ??S_1
 00000164  2101      MOV         R1,#0x1
 00000166  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000168  FF4B      BL          prints?T  ; T=0x0001  (2)
  146:      OSFreeDevice(PrinterDeviceAddr);   //释放打印机
 0000016A  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 0000016C  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
 0000016E  FF48      BL          OSFreeDevice?T  ; T=0x0001  (2)
  148:   }
 00000170  E767      B           L_12  ; T=0x00000042
 00000172            ; SCOPE-END
  149: }
 00000172  BC10      POP         {R4}
 00000174  BC08      POP         {R3}
 00000176  4718      BX          R3
 00000178          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
ARM COMPILER V2.50a,  Task                                                                 28/08/06  09:18:55  PAGE 13  

 00000030  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
 00000032  FFE6      BL          OSFreeDevice?T  ; T=0x0001  (2)
  168:  EN_LED3();
 00000034  4800      LDR         R1,=0x100000
 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);  //显示信息

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -