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

📄 task.lst

📁 arm7上的操作系统 任务按优先级调度
💻 LST
📖 第 1 页 / 共 4 页
字号:
 00000054  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000056  FFD4      BL          prints?T  ; T=0x0001  (2)
  172:    OSFreeDevice(PrinterDeviceAddr);       //释放打印机
 00000058  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 0000005A  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
 0000005C  FFD1      BL          OSFreeDevice?T  ; T=0x0001  (2)
  173:    OSTaskDelay(50);           //延时50个时钟节拍
 0000005E  2032      MOV         R0,#0x32
 00000060  F7FF      BL          OSTaskDelay?T  ; T=0x0001  (1)
 00000062  FFCE      BL          OSTaskDelay?T  ; T=0x0001  (2)
  174:    ON_LED6();                 //开LED6
 00000064  4800      LDR         R1,=0x40000
 00000066  4800      LDR         R0,=0xFFFFF458
 00000068  6001      STR         R1,[R0,#0x0]
  175:    OSRequestDevice(PrinterDeviceAddr,0);    //申请使用打印机
 0000006A  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 0000006C  2100      MOV         R1,#0x0
 0000006E  F7FF      BL          OSRequestDevice?T  ; T=0x0001  (1)
 00000070  FFC7      BL          OSRequestDevice?T  ; T=0x0001  (2)
  176:    prints("HaHa,Task3! ",1);  //显示信息
 00000072  4800      LDR         R0,=??S_10 ; ??S_10
 00000074  2101      MOV         R1,#0x1
 00000076  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000078  FFC3      BL          prints?T  ; T=0x0001  (2)
  177:    OSFreeDevice(PrinterDeviceAddr);       //释放打印机
 0000007A  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 0000007C  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
 0000007E  FFC0      BL          OSFreeDevice?T  ; T=0x0001  (2)
  178:    OSTaskDelay(50);           //延时50个时钟节拍
 00000080  2032      MOV         R0,#0x32
 00000082  F7FF      BL          OSTaskDelay?T  ; T=0x0001  (1)
 00000084  FFBD      BL          OSTaskDelay?T  ; T=0x0001  (2)
  179:    OFF_LED6();                //关LED6
 00000086  4800      LDR         R1,=0x40000
 00000088  4800      LDR         R0,=0xFFFFF454
 0000008A  6001      STR         R1,[R0,#0x0]
  180:   }
 0000008C  E7DC      B           L_22  ; T=0x00000048
 0000008E            ; SCOPE-END
  181: }
 0000008E  BC10      POP         {R4}
ARM COMPILER V2.50a,  Task                                                                 16/05/06  14:55:46  PAGE 14  

 00000090  BC08      POP         {R3}
 00000092  4718      BX          R3
 00000094          ENDP ; 'Task3?T'


*** CODE SEGMENT '?PR?Task4?T?Task':
  188: void Task4(void)
 00000000  B510      PUSH        {R4,LR}
  189: {
 00000002            ; SCOPE-START
  192:  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' ----
  193:  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)
  195:  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)
  196:  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)
  197:  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)
  198:  OSFreeDevice(PrinterDeviceAddr);   //释放打印机
 0000002E  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 00000030  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
 00000032  FFE6      BL          OSFreeDevice?T  ; T=0x0001  (2)
  199:  EN_LED7();
 00000034  4800      LDR         R2,=0xF000
 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,=0x8000000
 00000040  4800      LDR         R0,=0xFFFFF450
 00000042  6801      LDR         R1,[R0,#0x0]
 00000044  4311      ORR         R1,R2
 00000046  6001      STR         R1,[R0,#0x0]
  200:  while(1)
 00000048          L_26:
  202:    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)
  203:    prints("HaHa,Task4! ",1);      //显示信息
 00000050  4800      LDR         R0,=??S_11 ; ??S_11
 00000052  2101      MOV         R1,#0x1
 00000054  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000056  FFD4      BL          prints?T  ; T=0x0001  (2)
  204:    OSFreeDevice(PrinterDeviceAddr);           //释放打印机
 00000058  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 0000005A  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
ARM COMPILER V2.50a,  Task                                                                 16/05/06  14:55:46  PAGE 15  

 0000005C  FFD1      BL          OSFreeDevice?T  ; T=0x0001  (2)
  205:    OSTaskDelay(100);              //延时100个时钟节拍
 0000005E  2064      MOV         R0,#0x64
 00000060  F7FF      BL          OSTaskDelay?T  ; T=0x0001  (1)
 00000062  FFCE      BL          OSTaskDelay?T  ; T=0x0001  (2)
  206:    ON_LED7();                     //开LED7
 00000064  4800      LDR         R1,=0x80000
 00000066  4800      LDR         R0,=0xFFFFF458
 00000068  6001      STR         R1,[R0,#0x0]
  207:    OSRequestDevice(PrinterDeviceAddr,0);     //申请使用打印机
 0000006A  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 0000006C  2100      MOV         R1,#0x0
 0000006E  F7FF      BL          OSRequestDevice?T  ; T=0x0001  (1)
 00000070  FFC7      BL          OSRequestDevice?T  ; T=0x0001  (2)
  208:    prints("HaHa,Task4! ",1);      //显示信息
 00000072  4800      LDR         R0,=??S_11 ; ??S_11
 00000074  2101      MOV         R1,#0x1
 00000076  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000078  FFC3      BL          prints?T  ; T=0x0001  (2)
  209:    OSFreeDevice(PrinterDeviceAddr);     //释放打印机
 0000007A  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 0000007C  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
 0000007E  FFC0      BL          OSFreeDevice?T  ; T=0x0001  (2)
  210:    OSTaskDelay(100);              //延时100个时钟节拍
 00000080  2064      MOV         R0,#0x64
 00000082  F7FF      BL          OSTaskDelay?T  ; T=0x0001  (1)
 00000084  FFBD      BL          OSTaskDelay?T  ; T=0x0001  (2)
  211:    OFF_LED7();                    //关LED7
 00000086  4800      LDR         R1,=0x80000
 00000088  4800      LDR         R0,=0xFFFFF454
 0000008A  6001      STR         R1,[R0,#0x0]
  212:   }
 0000008C  E7DC      B           L_26  ; T=0x00000048
 0000008E            ; SCOPE-END
  213: }
 0000008E  BC10      POP         {R4}
 00000090  BC08      POP         {R3}
 00000092  4718      BX          R3
 00000094          ENDP ; 'Task4?T'


*** CODE SEGMENT '?PR?Task5?T?Task':
  220: void Task5(void)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  B085      SUB         R13,#0x14
  221: {
 00000004            ; SCOPE-START
  227:  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' ----
  228:  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)
  230:  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)
  231:  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
ARM COMPILER V2.50a,  Task                                                                 16/05/06  14:55:46  PAGE 16  

 00000024  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000026  FFEC      BL          prints?T  ; T=0x0001  (2)
  232:  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)
  233:  OSFreeDevice(PrinterDeviceAddr);   //释放打印机
 00000030  1C20      MOV         R0,R4 ; PrinterDeviceAddr
 00000032  F7FF      BL          OSFreeDevice?T  ; T=0x0001  (1)
 00000034  FFE5      BL          OSFreeDevice?T  ; T=0x0001  (2)
  235:  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' ----
  236:  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' ----
  238:  while(1)
 0000005E          L_30:
  240:    OSTaskDelay(1);   //延迟10ms
 0000005E  2001      MOV         R0,#0x1
 00000060  F7FF      BL          OSTaskDelay?T  ; T=0x0001  (1)
 00000062  FFCE      BL          OSTaskDelay?T  ; T=0x0001  (2)
  241:    ScanKey();       //键盘扫描
 00000064  F7FF      BL          ScanKey?T  ; T=0x0001  (1)
 00000066  FFCC      BL          ScanKey?T  ; T=0x0001  (2)
  242:    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
  244:      MsgValue=Key.Value;      //保存按键值
 00000070  4800      LDR         R0,=Key ; Key
 00000072  6800      LDR         R0,[R0,#0x0] ; Key
 00000074  9004      STR         R0,[R13,#0x10] ; MsgValue
  246:      (&Msg)->MsgType=KEYBOARD_MSG; //设置要发送的消息类型
 00000076  2002      MOV         R0,#0x2
 00000078  9000      STR         R0,[R13,#0x0] ; Msg
  247:      (&Msg)->pMsg=&MsgValue;       //设置要发送的消息的值
 0000007A  A804      ADD         R0,R13,#0x10
 0000007C  9003      STR         R0,[R13,#0xC] ; Msg
  248:      (&Msg)->Length=1;             //设置消息的长度
 0000007E  2001      MOV         R0,#0x1
 00000080  9001      STR         R0,[R13,#0x4] ; Msg
  250:      OSSendMsg(Task1Pcb,&Msg);     //将消息发送给任务1
 00000082  1C28      MOV         R0,R5 ; Task1Pcb
 00000084  A900      ADD         R1,R13,#0x0
 00000086  F7FF      BL          OSSendMsg?T  ; T=0x0001  (1)
ARM COMPILER V2.50a,  Task                                                                 16/05/06  14:55:46  PAGE 17  

 00000088  FFBB      BL          OSSendMsg?T  ; T=0x0001  (2)
  251:      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)
  252:      Key.Value=0;                  //清除键值,表示该次按键已经处理
 00000092  2100      MOV         R1,#0x0
 00000094  4800      LDR         R0,=Key ; Key
 00000096  6001      STR         R1,[R0,#0x0] ; Key
  254:   }
 00000098  E7E1      B           L_30  ; T=0x0000005E
 0000009A            ; SCOPE-END
  255: }
 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           =       194
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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