📄 vcomuser.lst
字号:
0000004A 0E12 LSR R2,R2,#0x18
420: U1LCR = lcr | ConfigValue;
0000004C 1C08 MOV R0,R1 ; ConfigValue
0000004E 0600 LSL R0,R0,#0x18 ; ConfigValue
00000050 0E00 LSR R0,R0,#0x18
00000052 1C11 MOV R1,R2 ; lcr
00000054 0609 LSL R1,R1,#0x18 ; lcr
00000056 0E09 LSR R1,R1,#0x18
00000058 4301 ORR R1,R0
0000005A 0609 LSL R1,R1,#0x18
0000005C 0E09 LSR R1,R1,#0x18
0000005E 4800 LDR R0,=0xE001000C
00000060 7001 STRB R1,[R0,#0x0]
421: }
00000062 L_27:
00000062 ; SCOPE-END
422: }
00000062 BC10 POP {R4}
00000064 4770 BX R14
00000066 ENDP ; 'SetSIODataBit?T'
*** CODE SEGMENT '?PR?SetSIOParity?T?VCOMuser':
424: void SetSIOParity( BYTE channelNum, BYTE ConfigValue )
00000000 B410 PUSH {R4}
00000002 ---- Variable 'ConfigValue' assigned to Register 'R1' ----
00000002 1C03 MOV R3,R0 ; channelNum
00000004 ---- Variable 'channelNum' assigned to Register 'R3' ----
00000004 ---- Variable 'lcr' assigned to Register 'R2' ----
425: {
00000004 ; SCOPE-START
428: if ( channelNum == 0 ) {
00000004 1C18 MOV R0,R3 ; channelNum
00000006 0600 LSL R0,R0,#0x18 ; channelNum
00000008 0E00 LSR R0,R0,#0x18
0000000A 2800 CMP R0,#0x0
0000000C D113 BNE L_29 ; T=0x00000036
429: lcr = U0LCR & 0xCF;
0000000E 4800 LDR R0,=0xE000C00C
00000010 7800 LDRB R0,[R0,#0x0]
00000012 1C02 MOV R2,R0
00000014 20CF MOV R0,#0xCF
00000016 4002 AND R2,R0
00000018 0612 LSL R2,R2,#0x18
0000001A 0E12 LSR R2,R2,#0x18
430: U0LCR = lcr | (ConfigValue << 4);
0000001C 1C08 MOV R0,R1 ; ConfigValue
0000001E 0600 LSL R0,R0,#0x18 ; ConfigValue
00000020 0E00 LSR R0,R0,#0x18
00000022 0100 LSL R0,R0,#0x4
00000024 1C14 MOV R4,R2 ; lcr
00000026 0624 LSL R4,R4,#0x18 ; lcr
00000028 0E24 LSR R4,R4,#0x18
0000002A 4304 ORR R4,R0
0000002C 0624 LSL R4,R4,#0x18
0000002E 0E24 LSR R4,R4,#0x18
00000030 4800 LDR R0,=0xE000C00C
ARM COMPILER V2.53, VCOMuser 09/06/07 15:42:25 PAGE 19
00000032 7004 STRB R4,[R0,#0x0]
431: }
00000034 E017 B L_30 ; T=0x00000066
00000036 L_29:
432: else if ( channelNum == 1 ) {
00000036 1C18 MOV R0,R3 ; channelNum
00000038 0600 LSL R0,R0,#0x18 ; channelNum
0000003A 0E00 LSR R0,R0,#0x18
0000003C 2801 CMP R0,#0x1
0000003E D112 BNE L_30 ; T=0x00000066
433: lcr = U1LCR & 0xCF;
00000040 4800 LDR R0,=0xE001000C
00000042 7800 LDRB R0,[R0,#0x0]
00000044 1C02 MOV R2,R0
00000046 20CF MOV R0,#0xCF
00000048 4002 AND R2,R0
0000004A 0612 LSL R2,R2,#0x18
0000004C 0E12 LSR R2,R2,#0x18
434: U1LCR = lcr | (ConfigValue << 4);
0000004E 1C08 MOV R0,R1 ; ConfigValue
00000050 0600 LSL R0,R0,#0x18 ; ConfigValue
00000052 0E00 LSR R0,R0,#0x18
00000054 0100 LSL R0,R0,#0x4
00000056 1C11 MOV R1,R2 ; lcr
00000058 0609 LSL R1,R1,#0x18 ; lcr
0000005A 0E09 LSR R1,R1,#0x18
0000005C 4301 ORR R1,R0
0000005E 0609 LSL R1,R1,#0x18
00000060 0E09 LSR R1,R1,#0x18
00000062 4800 LDR R0,=0xE001000C
00000064 7001 STRB R1,[R0,#0x0]
435: }
00000066 L_30:
00000066 ; SCOPE-END
436: }
00000066 BC10 POP {R4}
00000068 4770 BX R14
0000006A ENDP ; 'SetSIOParity?T'
*** CODE SEGMENT '?PR?SetSIOFlowControl?T?VCOMuser':
447: }
00000000 4770 BX R14
00000002 ENDP ; 'SetSIOFlowControl?T'
*** CODE SEGMENT '?PR?SetSIODTR?T?VCOMuser':
449: void SetSIODTR( BYTE channelNum, BYTE ConfigValue )
00000000 ---- Variable 'ConfigValue' assigned to Register 'R1' ----
00000000 1C02 MOV R2,R0 ; channelNum
00000002 ---- Variable 'channelNum' assigned to Register 'R2' ----
450: {
00000002 ; SCOPE-START
453: if ( channelNum == 1 ) {
00000002 1C10 MOV R0,R2 ; channelNum
00000004 0600 LSL R0,R0,#0x18 ; channelNum
00000006 0E00 LSR R0,R0,#0x18
00000008 2801 CMP R0,#0x1
0000000A D111 BNE L_35 ; T=0x00000030
454: mcr = U1MCR & 0xFE;
0000000C 4800 LDR R0,=0xE0010010
0000000E 7800 LDRB R0,[R0,#0x0]
00000010 1C02 MOV R2,R0
00000012 20FE MOV R0,#0xFE
00000014 4002 AND R2,R0
00000016 0612 LSL R2,R2,#0x18
00000018 0E12 LSR R2,R2,#0x18
0000001A ---- Variable 'mcr' assigned to Register 'R2' ----
455: U1MCR = mcr | ConfigValue;
0000001A 1C08 MOV R0,R1 ; ConfigValue
ARM COMPILER V2.53, VCOMuser 09/06/07 15:42:25 PAGE 20
0000001C 0600 LSL R0,R0,#0x18 ; ConfigValue
0000001E 0E00 LSR R0,R0,#0x18
00000020 1C11 MOV R1,R2 ; mcr
00000022 0609 LSL R1,R1,#0x18 ; mcr
00000024 0E09 LSR R1,R1,#0x18
00000026 4301 ORR R1,R0
00000028 0609 LSL R1,R1,#0x18
0000002A 0E09 LSR R1,R1,#0x18
0000002C 4800 LDR R0,=0xE0010010
0000002E 7001 STRB R1,[R0,#0x0]
456: }
00000030 L_35:
00000030 ; SCOPE-END
457: }
00000030 4770 BX R14
00000032 ENDP ; 'SetSIODTR?T'
*** CODE SEGMENT '?PR?SetSIORTS?T?VCOMuser':
459: void SetSIORTS( BYTE channelNum, BYTE ConfigValue )
00000000 ---- Variable 'ConfigValue' assigned to Register 'R1' ----
00000000 1C02 MOV R2,R0 ; channelNum
00000002 ---- Variable 'channelNum' assigned to Register 'R2' ----
460: {
00000002 ; SCOPE-START
464: if ( channelNum == 1 ) {
00000002 1C10 MOV R0,R2 ; channelNum
00000004 0600 LSL R0,R0,#0x18 ; channelNum
00000006 0E00 LSR R0,R0,#0x18
00000008 2801 CMP R0,#0x1
0000000A D112 BNE L_36 ; T=0x00000032
465: mcr = U1MCR & 0xFD;
0000000C 4800 LDR R0,=0xE0010010
0000000E 7800 LDRB R0,[R0,#0x0]
00000010 1C02 MOV R2,R0
00000012 20FD MOV R0,#0xFD
00000014 4002 AND R2,R0
00000016 0612 LSL R2,R2,#0x18
00000018 0E12 LSR R2,R2,#0x18
0000001A ---- Variable 'mcr' assigned to Register 'R2' ----
466: U1MCR = mcr | (ConfigValue << 1);
0000001A 1C08 MOV R0,R1 ; ConfigValue
0000001C 0600 LSL R0,R0,#0x18 ; ConfigValue
0000001E 0E00 LSR R0,R0,#0x18
00000020 0040 LSL R0,R0,#0x1
00000022 1C11 MOV R1,R2 ; mcr
00000024 0609 LSL R1,R1,#0x18 ; mcr
00000026 0E09 LSR R1,R1,#0x18
00000028 4301 ORR R1,R0
0000002A 0609 LSL R1,R1,#0x18
0000002C 0E09 LSR R1,R1,#0x18
0000002E 4800 LDR R0,=0xE0010010
00000030 7001 STRB R1,[R0,#0x0]
467: }
00000032 L_36:
00000032 ; SCOPE-END
468: }
00000032 4770 BX R14
00000034 ENDP ; 'SetSIORTS?T'
*** CODE SEGMENT '?PR?GetSIOModemStatus?T?VCOMuser':
473: }
00000000 4770 BX R14
00000002 ENDP ; 'GetSIOModemStatus?T'
*** CODE SEGMENT '?PR?VCOM_GetSIOSetup?T?VCOMuser':
483: return (TRUE);
00000000 2001 MOV R0,#0x1
484: }
00000002 4770 BX R14
ARM COMPILER V2.53, VCOMuser 09/06/07 15:42:25 PAGE 21
00000004 ENDP ; 'VCOM_GetSIOSetup?T'
*** CODE SEGMENT '?PR?VCOM_SetSIOSetup?T?VCOMuser':
493: BOOL VCOM_SetSIOSetup( BYTE Cmd, BYTE Data ) {
00000000 B530 PUSH {R4-R5,LR}
00000002 1C0D MOV R5,R1 ; Data
00000004 ---- Variable 'Data' assigned to Register 'R5' ----
00000004 1C01 MOV R1,R0 ; Cmd
00000006 ---- Variable 'Cmd' assigned to Register 'R1' ----
00000006 ---- Variable 'ChannelNum' assigned to Register 'R4' ----
00000006 ; SCOPE-START
499: if ( !(Cmd & 0x20) )
00000006 1C08 MOV R0,R1 ; Cmd
00000008 0600 LSL R0,R0,#0x18 ; Cmd
0000000A 0E00 LSR R0,R0,#0x18
0000000C 2220 MOV R2,#0x20
0000000E 4210 TST R0,R2
00000010 D101 BNE L_38 ; T=0x00000016
500: ChannelNum = 0;
00000012 2400 MOV R4,#0x0
00000014 E000 B L_39 ; T=0x00000018
00000016 L_38:
502: ChannelNum = 1;
00000016 2401 MOV R4,#0x1
00000018 L_39:
504: Cmd &= ~0x20; /* clear bit 5, use all cmd for channel 0 */
00000018 20DF MOV R0,#0xDF
0000001A 4001 AND R1,R0
505: switch ( Cmd ) {
0000001C 1C08 MOV R0,R1 ; Cmd
0000001E 2804 CMP R0,#0x4 ; Cmd
00000020 D018 BEQ L_43 ; T=0x00000054
00000022 2805 CMP R0,#0x5 ; Cmd
00000024 D01F BEQ L_44 ; T=0x00000066
00000026 2806 CMP R0,#0x6 ; Cmd
00000028 D026 BEQ L_45 ; T=0x00000078
0000002A 2807 CMP R0,#0x7 ; Cmd
0000002C D02D BEQ L_46 ; T=0x0000008A
0000002E 2808 CMP R0,#0x8 ; Cmd
00000030 D034 BEQ L_47 ; T=0x0000009C
00000032 2809 CMP R0,#0x9 ; Cmd
00000034 D03B BEQ L_48 ; T=0x000000AE
00000036 280B CMP R0,#0xB ; Cmd
00000038 D04A BEQ L_40 ; T=0x000000D0
0000003A 280C CMP R0,#0xC ; Cmd
0000003C D040 BEQ L_50 ; T=0x000000C0
0000003E 2803 CMP R0,#0x3 ; Cmd
00000040 D144 BNE L_42 ; T=0x000000CC
506: case BAUDRATE_SETUP:
00000042 L_41:
507: SetSIOBaudrate( ChannelNum, Data );
00000042 1C20 MOV R0,R4 ; ChannelNum
00000044 0600 LSL R0,R0,#0x18 ; ChannelNum
00000046 0E00 LSR R0,R0,#0x18
00000048 1C29 MOV R1,R5 ; Data
0000004A 0609 LSL R1,R1,#0x18 ; Data
0000004C 0E09 LSR R1,R1,#0x18
0000004E F7FF BL SetSIOBaudrate?T ; T=0x0001 (1)
00000050 FFD7 BL SetSIOBaudrate?T ; T=0x0001 (2)
508: break;
00000052 E03D B L_40 ; T=0x000000D0
509: case STOPBIT_SETUP:
00000054 L_43:
510: SetSIOStopBit( ChannelNum, Data );
00000054 1C20 MOV R0,R4 ; ChannelNum
00000056 0600 LSL R0,R0,#0x18 ; ChannelNum
00000058 0E00 LSR R0,R0,#0x18
ARM COMPILER V2.53, VCOMuser 09/06/07 15:42:25 PAGE 22
0000005A 1C29 MOV R1,R5 ; Data
0000005C 0609 LSL R1,R1,#0x18 ; Data
0000005E 0E09 LSR R1,R1,#0x18
00000060 F7FF BL SetSIOStopBit?T ; T=0x0001 (1)
00000062 FFCE BL SetSIOStopBit?T ; T=0x0001 (2)
511: break;
00000064 E034 B L_40 ; T=0x000000D0
512: case DATABIT_SETUP:
00000066 L_44:
513: SetSIODataBit( ChannelNum, Data );
00000066 1C20 MOV R0,R4 ; ChannelNum
00000068 0600 LSL R0,R0,#0x18 ; ChannelNum
0000006A 0E00 LSR R0,R0,#0x18
0000006C 1C29 MOV R1,R5 ; Data
0000006E 0609 LSL R1,R1,#0x18 ; Data
00000070 0E09 LSR R1,R1,#0x18
00000072 F7FF BL SetSIODataBit?T ; T=0x0001 (1)
00000074 FFC5 BL SetSIODataBit?T ; T=0x0001 (2)
514: break;
00000076 E02B B L_40 ; T=0x000000D0
515: case PARITY_SETUP:
00000078 L_45:
516: SetSIOParity( ChannelNum, Data );
00000078 1C20 MOV R0,R4 ; ChannelNum
0000007A 0600 LSL R0,R0,#0x18 ; ChannelNum
0000007C 0E00 LSR R0,R0,#0x18
0000007E 1C29 MOV R1,R5 ; Data
00000080 0609 LSL R1,R1,#0x18 ; Data
00000082 0E09 LSR R1,R1,#0x18
00000084 F7FF BL SetSIOParity?T ; T=0x0001 (1)
00000086 FFBC BL SetSIOParity?T ; T=0x0001 (2)
517: break;
00000088 E022 B L_40 ; T=0x000000D0
518: case FLOWCTRL_SETUP:
0000008A L_46:
519: SetSIOFlowControl( ChannelNum, Data );
0000008A 1C20 MOV R0,R4 ; ChannelNum
0000008C 0600 LSL R0,R0,#0x18 ; ChannelNum
0000008E 0E00 LSR R0,R0,#0x18
00000090 1C29 MOV R1,R5 ; Data
00000092 0609 LSL R1,R1,#0x18 ; Data
00000094 0E09 LSR R1,R1,#0x18
00000096 F7FF BL SetSIOFlowControl?T ; T=0x0001 (1)
00000098 FFB3 BL SetSIOFlowControl?T ; T=0x0001 (2)
520: break;
0000009A E019 B L_40 ; T=0x000000D0
521: case DTR_SETUP:
0000009C L_47:
522: SetSIODTR( ChannelNum, Data );
0000009C 1C20 MOV R0,R4 ; ChannelNum
0000009E 0600 LSL R0,R0,#0x18 ; ChannelNum
000000A0 0E00 LSR R0,R0,#0x18
000000A2 1C29 MOV R1,R5 ; Data
000000A4 0609 LSL R1,R1,#0x18 ; Data
000000A6 0E09 LSR R1,R1,#0x18
000000A8 F7FF BL SetSIODTR?T ; T=0x0001 (1)
000000AA FFAA BL SetSIODTR?T ; T=0x0001 (2)
523: break;
000000AC E010 B L_40 ; T=0x000000D0
524: case RTS_SETUP:
000000AE L_48:
525: SetSIORTS( ChannelNum, Data );
000000AE 1C20 MOV R0,R4 ; ChannelNum
000000B0 0600 LSL R0,R0,#0x18 ; ChannelNum
000000B2 0E00 LSR R0,R0,#0x18
000000B4 1C29 MOV R1,R5 ; Data
ARM COMPILER V2.53, VCOMuser 09/06/07 15:42:25 PAGE 23
000000B6 0609 LSL R1,R1,#0x18 ; Data
000000B8 0E09 LSR R1,R1,#0x18
000000BA F7FF BL SetSIORTS?T ; T=0x0001 (1)
000000BC FFA1 BL SetSIORTS?T ; T=0x0001 (2)
526: break;
000000BE E007 B L_40 ; T=0x000000D0
529: case MODEM_SETUP:
000000C0 L_50:
530: GetSIOModemStatus( ChannelNum );
000000C0 1C20 MOV R0,R4 ; ChannelNum
000000C2 0600 LSL R0,R0,#0x18 ; ChannelNum
000000C4 0E00 LSR R0,R0,#0x18
000000C6 F7FF BL GetSIOModemStatus?T ; T=0x0001 (1)
000000C8 FF9B BL GetSIOModemStatus?T ; T=0x0001 (2)
531: break;
000000CA E001 B L_40 ; T=0x000000D0
532: default:
000000CC L_42:
535: return (FALSE);
000000CC 2000 MOV R0,#0x0
000000CE E000 B L_51 ; T=0x000000D2
536: }
000000D0 L_40:
537: return (TRUE);
000000D0 2001 MOV R0,#0x1
000000D2 ; SCOPE-END
538: }
000000D2 L_51:
000000D2 BC30 POP {R4-R5}
000000D4 BC08 POP {R3}
000000D6 4718 BX R3
000000D8 ENDP ; 'VCOM_SetSIOSetup?T'
Module Information Static
----------------------------------
code size = ------
data size = 68
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 + -