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

📄 task.lst

📁 arm7上的操作系统 任务按优先级调度
💻 LST
📖 第 1 页 / 共 4 页
字号:
 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 + -