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

📄 test.lst

📁 ARM下的多任务操作系统源码:GogotoOS
💻 LST
📖 第 1 页 / 共 3 页
字号:
 00000050  E5D01000  LDRB        R1,[R0,#0x0] ; Data
 00000054  E5100000  LDR         R0,=0xE000C000
 00000058  E5C01000  STRB        R1,[R0,#0x0]
  149:     U0THR = *(((UINT8 *)Data) + 1);
 0000005C  E1A00004  MOV         R0,R4 ; Data
 00000060  E5D01001  LDRB        R1,[R0,#0x1]
 00000064  E5100000  LDR         R0,=0xE000C000
 00000068  E5C01000  STRB        R1,[R0,#0x0]
  150:     U0THR = *(((UINT8 *)Data) + 2);
 0000006C  E1A00004  MOV         R0,R4 ; Data
 00000070  E5D01002  LDRB        R1,[R0,#0x2]
 00000074  E5100000  LDR         R0,=0xE000C000
 00000078  E5C01000  STRB        R1,[R0,#0x0]
  151:     U0THR = *(((UINT8 *)Data) + 3);
 0000007C  E1A00004  MOV         R0,R4 ; Data
 00000080  E5D01003  LDRB        R1,[R0,#0x3]
 00000084  E5100000  LDR         R0,=0xE000C000
 00000088  E5C01000  STRB        R1,[R0,#0x0]
  152:     U0THR = ' ';
 0000008C  E3A01020  MOV         R1,#0x20
 00000090  E5100000  LDR         R0,=0xE000C000
 00000094  E5C01000  STRB        R1,[R0,#0x0]
  153:     U0THR = ' ';
 00000098  E3A01020  MOV         R1,#0x20
 0000009C  E5100000  LDR         R0,=0xE000C000
 000000A0  E5C01000  STRB        R1,[R0,#0x0]
  154:     U0THR = ' ';
 000000A4  E3A01020  MOV         R1,#0x20
 000000A8  E5100000  LDR         R0,=0xE000C000
 000000AC  E5C01000  STRB        R1,[R0,#0x0]
  155:     IsBusy = 0;
 000000B0  E3A01000  MOV         R1,#0x0
 000000B4  E5100000  LDR         R0,=IsBusy ; IsBusy
 000000B8  E5801000  STR         R1,[R0,#0x0] ; IsBusy
  156: }
ARM COMPILER V2.32a,  Test                                                                 28/02/08  23:05:56  PAGE 10  

 000000BC  E8BD0070  LDMIA       R13!,{R4-R6}
 000000C0  E8BD0008  LDMIA       R13!,{R3}
 000000C4  E12FFF13  BX          R3
 000000C8          ENDP ; 'AddDec?A'


*** CODE SEGMENT '?PR?Send?A?Test':
  158: void Send(UINT8 Flag, INT32 *Data)
 00000000  E92D4000  STMDB       R13!,{LR}
 00000004  E1A02001  MOV         R2,R1 ; Data
 00000008  ---- Variable 'Data' assigned to Register 'R2' ----
 00000008  E1A01000  MOV         R1,R0 ; Flag
 0000000C  ---- Variable 'Flag' assigned to Register 'R1' ----
  160:     AddDec(Flag, Data, 2, 1);   
 0000000C  E1A00001  MOV         R0,R1 ; Flag
 00000010  E1A00C00  MOV         R0,R0,LSL #24 ; Flag
 00000014  E1A00C20  MOV         R0,R0,LSR #24
 00000018  E1A01002  MOV         R1,R2 ; Data
 0000001C  E3A02002  MOV         R2,#0x2
 00000020  E3A03001  MOV         R3,#0x1
 00000024  EBFFFFF5  BL          AddDec?A  ; Targ=0x0
  161: }
 00000028  E8BD0008  LDMIA       R13!,{R3}
 0000002C  E12FFF13  BX          R3
 00000030          ENDP ; 'Send?A'


*** CODE SEGMENT '?PR?TaskMain1?A?Test':
  167: void TaskMain1(UINT32 Param)    __task
 00000000  E1A04000  MOV         R4,R0 ; Param
 00000004  ---- Variable 'Param' assigned to Register 'R4' ----
 00000004  E24DD00C  SUB         R13,R13,#0x000C
  168: {
 00000008            ; SCOPE-START
  172:     OSTimerSet(OSTaskSelf(), 1000);
 00000008  EBFFFFFC  BL          OSTaskSelf?A  ; Targ=0x0
 0000000C  E3A01FFA  MOV         R1,#0x3E8
 00000010  EBFFFFFA  BL          OSTimerSet?A  ; Targ=0x0
  173:     ID = OSTimerSet(OSTaskSelf(), 5000);
 00000014  EBFFFFF9  BL          OSTaskSelf?A  ; Targ=0x0
 00000018  E5101000  LDR         R1,=0x1388
 0000001C  EBFFFFF7  BL          OSTimerSet?A  ; Targ=0x0
 00000020  E1A05000  MOV         R5,R0 ; ID
 00000024  ---- Variable 'ID' assigned to Register 'R5' ----
  174:     OSTimerSet(OSTaskSelf(), 10000);
 00000024  EBFFFFF5  BL          OSTaskSelf?A  ; Targ=0x0
 00000028  E5101000  LDR         R1,=0x2710
 0000002C  EBFFFFF3  BL          OSTimerSet?A  ; Targ=0x0
  175:     OSTimerKill(ID);
 00000030  E1A00005  MOV         R0,R5 ; ID
 00000034  EBFFFFF1  BL          OSTimerKill?A  ; Targ=0x0
  178:     while(Param == 156)
 00000038  EA000012  B           L_14  ; Targ=0x88
 0000003C          L_16:
  180:         SetWDT();
 0000003C  EBFFFFEF  BL          SetWDT?A  ; Targ=0x0
  181:         OSTaskDelay(100);
 00000040  E3A00064  MOV         R0,#0x64
 00000044  EBFFFFED  BL          OSTaskDelay?A  ; Targ=0x0
  182:         if(OSTaskMsgPeek(&Msg))
 00000048  E28D0000  ADD         R0,R13,#0x0000
 0000004C  EBFFFFEB  BL          OSTaskMsgPeek?A  ; Targ=0x0
 00000050  E3500000  CMP         R0,#0x0000 ; OSTaskMsgPeek?A
 00000054  0A00000B  BEQ         L_14  ; Targ=0x88
  184:             if(Msg.Msg == 1000)
 00000058  E59D0000  LDR         R0,[R13,#0x0] ; Msg
 0000005C  E3500FFA  CMP         R0,#0x03E8
 00000060  1A000002  BNE         L_19  ; Targ=0x70
  185:                 U0THR = Msg.wParam;
 00000064  E59D1004  LDR         R1,[R13,#0x4] ; Msg
ARM COMPILER V2.32a,  Test                                                                 28/02/08  23:05:56  PAGE 11  

 00000068  E5100000  LDR         R0,=0xE000C000
 0000006C  E5C01000  STRB        R1,[R0,#0x0]
 00000070          L_19:
  186:             if(Msg.Msg == OS_MSG_TIMER)
 00000070  E59D0000  LDR         R0,[R13,#0x0] ; Msg
 00000074  E3500901  CMP         R0,#0x4000
 00000078  1A000002  BNE         L_14  ; Targ=0x88
  187:                 U0THR = 'T';
 0000007C  E3A01054  MOV         R1,#0x54
 00000080  E5100000  LDR         R0,=0xE000C000
 00000084  E5C01000  STRB        R1,[R0,#0x0]
  189:     }
 00000088          L_14:
 00000088  E1A00004  MOV         R0,R4 ; Param
 0000008C  E350009C  CMP         R0,#0x009C ; Param
 00000090  0AFFFFE9  BEQ         L_16  ; Targ=0x3C
 00000094            ; SCOPE-END
  190: }
 00000094  E28DD00C  ADD         R13,R13,#0x000C
 00000098          ENDP ; 'TaskMain1?A'


*** CODE SEGMENT '?PR?TaskMain2?A?Test':
  192: void TaskMain2(UINT32 Param)    __task
 00000000  E1A04000  MOV         R4,R0 ; Param
 00000004  ---- Variable 'Param' assigned to Register 'R4' ----
  194:     while(Param == 158)
 00000004  EA00000D  B           L_21  ; Targ=0x40
 00000008          L_23:
  196:         IOPIN ^= (1 << 27);
 00000008  E5100000  LDR         R0,=0xE0028000
 0000000C  E5901000  LDR         R1,[R0,#0x0]
 00000010  E2211302  EOR         R1,R1,#0x8000000
 00000014  E5801000  STR         R1,[R0,#0x0]
  197:         OSMutWait(&Mut);
 00000018  E5100000  LDR         R0,=Mut ; Mut
 0000001C  EBFFFFF7  BL          OSMutWait?A  ; Targ=0x0
  198:         OSTaskMsgPost(TaskID1, 1000, '2', 0);
 00000020  E5100000  LDR         R0,=TaskID1 ; TaskID1
 00000024  E5900000  LDR         R0,[R0,#0x0] ; TaskID1
 00000028  E3A01FFA  MOV         R1,#0x3E8
 0000002C  E3A02032  MOV         R2,#0x32
 00000030  E3A03000  MOV         R3,#0x0
 00000034  EBFFFFF1  BL          OSTaskMsgPost?A  ; Targ=0x0
  199:         OSMutRelease(&Mut);
 00000038  E5100000  LDR         R0,=Mut ; Mut
 0000003C  EBFFFFEF  BL          OSMutRelease?A  ; Targ=0x0
  200:     }
 00000040          L_21:
 00000040  E1A00004  MOV         R0,R4 ; Param
 00000044  E350009E  CMP         R0,#0x009E ; Param
 00000048  0AFFFFEE  BEQ         L_23  ; Targ=0x8
  201: }
 0000004C          ENDP ; 'TaskMain2?A'


*** CODE SEGMENT '?PR?TaskMain3?A?Test':
  203: void TaskMain3(UINT32 Param)    __task
 00000000  E1A04000  MOV         R4,R0 ; Param
 00000004  ---- Variable 'Param' assigned to Register 'R4' ----
  205:     while(Param == 158)
 00000004  EA000005  B           L_25  ; Targ=0x20
 00000008          L_27:
  207:         OSMutWait(&Mut);
 00000008  E5100000  LDR         R0,=Mut ; Mut
 0000000C  EBFFFFFB  BL          OSMutWait?A  ; Targ=0x0
  208:         OSTaskDelay(4000);
 00000010  E3A00EFA  MOV         R0,#0xFA0
 00000014  EBFFFFF9  BL          OSTaskDelay?A  ; Targ=0x0
  209:         OSMutRelease(&Mut);
ARM COMPILER V2.32a,  Test                                                                 28/02/08  23:05:56  PAGE 12  

 00000018  E5100000  LDR         R0,=Mut ; Mut
 0000001C  EBFFFFF7  BL          OSMutRelease?A  ; Targ=0x0
  210:     }
 00000020          L_25:
 00000020  E1A00004  MOV         R0,R4 ; Param
 00000024  E350009E  CMP         R0,#0x009E ; Param
 00000028  0AFFFFF6  BEQ         L_27  ; Targ=0x8
  211: }
 0000002C          ENDP ; 'TaskMain3?A'


*** CODE SEGMENT '?PR?TaskMain4?A?Test':
  213: void TaskMain4(UINT32 Param)    __task
 00000000  E1A04000  MOV         R4,R0 ; Param
 00000004  ---- Variable 'Param' assigned to Register 'R4' ----
  215:     while(Param == 158)
 00000004  EA00000D  B           L_29  ; Targ=0x40
 00000008          L_31:
  217:         IOPIN ^= (1 << 29);
 00000008  E5100000  LDR         R0,=0xE0028000
 0000000C  E5901000  LDR         R1,[R0,#0x0]
 00000010  E2211202  EOR         R1,R1,#0x20000000
 00000014  E5801000  STR         R1,[R0,#0x0]
  218:         OSMutWait(&Mut);
 00000018  E5100000  LDR         R0,=Mut ; Mut
 0000001C  EBFFFFF7  BL          OSMutWait?A  ; Targ=0x0
  219:         OSTaskMsgPost(TaskID1, 1000, '4', 0);
 00000020  E5100000  LDR         R0,=TaskID1 ; TaskID1
 00000024  E5900000  LDR         R0,[R0,#0x0] ; TaskID1
 00000028  E3A01FFA  MOV         R1,#0x3E8
 0000002C  E3A02034  MOV         R2,#0x34
 00000030  E3A03000  MOV         R3,#0x0
 00000034  EBFFFFF1  BL          OSTaskMsgPost?A  ; Targ=0x0
  220:         OSMutRelease(&Mut);
 00000038  E5100000  LDR         R0,=Mut ; Mut
 0000003C  EBFFFFEF  BL          OSMutRelease?A  ; Targ=0x0
  221:     }
 00000040          L_29:
 00000040  E1A00004  MOV         R0,R4 ; Param
 00000044  E350009E  CMP         R0,#0x009E ; Param
 00000048  0AFFFFEE  BEQ         L_31  ; Targ=0x8
  222: }
 0000004C          ENDP ; 'TaskMain4?A'


*** CODE SEGMENT '?PR?TaskUasrMain?A?Test':
  227:     IODIR |= ((1 << 27) | (1 << 28) | (1 << 29) | (1 << 19));
 00000000  E5102000  LDR         R2,=0x38080000
 00000004  E5100000  LDR         R0,=0xE0028008
 00000008  E5901000  LDR         R1,[R0,#0x0]
 0000000C  E1811002  ORR         R1,R1,R2
 00000010  E5801000  STR         R1,[R0,#0x0]
  228:     IOCLR =  ((1 << 27) | (1 << 28) | (1 << 29) | (1 << 19));
 00000014  E5101000  LDR         R1,=0x38080000
 00000018  E5100000  LDR         R0,=0xE002800C
 0000001C  E5801000  STR         R1,[R0,#0x0]
  229:     InitUart0();
 00000020  EBFFFFF6  BL          InitUart0?A  ; Targ=0x0
  230:     U0THR = 'R';
 00000024  E3A01052  MOV         R1,#0x52
 00000028  E5100000  LDR         R0,=0xE000C000
 0000002C  E5C01000  STRB        R1,[R0,#0x0]
  231:     OSMutInit(&Mut);
 00000030  E5100000  LDR         R0,=Mut ; Mut
 00000034  EBFFFFF1  BL          OSMutInit?A  ; Targ=0x0
  232:     TaskID1 = OSTaskCreate(TaskMain1, 255, 156);
 00000038  E5100000  LDR         R0,=TaskMain1?A ; TaskMain1?A
 0000003C  E3A010FF  MOV         R1,#0xFF
 00000040  E3A0209C  MOV         R2,#0x9C
 00000044  EBFFFFED  BL          OSTaskCreate?A  ; Targ=0x0
ARM COMPILER V2.32a,  Test                                                                 28/02/08  23:05:56  PAGE 13  

 00000048  E5101000  LDR         R1,=TaskID1 ; TaskID1
 0000004C  E5810000  STR         R0,[R1,#0x0] ; TaskID1
  233:     OSTaskCreate(TaskMain2, 254, 158);
 00000050  E5100000  LDR         R0,=TaskMain2?A ; TaskMain2?A
 00000054  E3A010FE  MOV         R1,#0xFE
 00000058  E3A0209E  MOV         R2,#0x9E
 0000005C  EBFFFFE7  BL          OSTaskCreate?A  ; Targ=0x0
  234:     OSTaskCreate(TaskMain3, 255, 158);
 00000060  E5100000  LDR         R0,=TaskMain3?A ; TaskMain3?A
 00000064  E3A010FF  MOV         R1,#0xFF
 00000068  E3A0209E  MOV         R2,#0x9E
 0000006C  EBFFFFE3  BL          OSTaskCreate?A  ; Targ=0x0
  235:     OSTaskCreate(TaskMain4, 255, 158);
 00000070  E5100000  LDR         R0,=TaskMain4?A ; TaskMain4?A
 00000074  E3A010FF  MOV         R1,#0xFF
 00000078  E3A0209E  MOV         R2,#0x9E
 0000007C  EBFFFFDF  BL          OSTaskCreate?A  ; Targ=0x0
  237:     while(1);
 00000080          L_33:
 00000080  EAFFFFFE  B           L_33  ; Targ=0x80
  238: }
 00000084          ENDP ; 'TaskUasrMain?A'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =       129
  const size           =    ------
End of Module Information.


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

⌨️ 快捷键说明

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