📄 rs232.lst
字号:
\ 0000001E 1A49 LDR R1,??UART1Initialize_0 ;; 0xe001000c
\ 00000020 0978 LDRB R1,[R1, #+0]
\ 00000022 FB22 MOVS R2,#+251
\ 00000024 0A40 ANDS R2,R2,R1
\ 00000026 1849 LDR R1,??UART1Initialize_0 ;; 0xe001000c
\ 00000028 0A70 STRB R2,[R1, #+0]
50 U1LCR_bit.PE = 0x0; // 无校验
\ 0000002A 1749 LDR R1,??UART1Initialize_0 ;; 0xe001000c
\ 0000002C 0978 LDRB R1,[R1, #+0]
\ 0000002E F722 MOVS R2,#+247
\ 00000030 0A40 ANDS R2,R2,R1
\ 00000032 1549 LDR R1,??UART1Initialize_0 ;; 0xe001000c
\ 00000034 0A70 STRB R2,[R1, #+0]
51 U1LCR_bit.DLAB = 0x1; // 允许DLAB
\ 00000036 1449 LDR R1,??UART1Initialize_0 ;; 0xe001000c
\ 00000038 0978 LDRB R1,[R1, #+0]
\ 0000003A 8022 MOVS R2,#+128
\ 0000003C 0A43 ORRS R2,R2,R1
\ 0000003E 1249 LDR R1,??UART1Initialize_0 ;; 0xe001000c
\ 00000040 0A70 STRB R2,[R1, #+0]
52
53 // 除法因子
54 U1DLL = divisor & 0xFF;
\ 00000042 .... LDR R1,??DataTable25 ;; 0xe0010000
\ 00000044 0200 MOVS R2,R0
\ 00000046 0A70 STRB R2,[R1, #+0]
55 U1DLM = (divisor >> 8) & 0xFF;
\ 00000048 000A LSRS R0,R0,#+8
\ 0000004A 0006 LSLS R0,R0,#+24 ;; ZeroExtS R0,R0,#+24,#+24
\ 0000004C 000E LSRS R0,R0,#+24
\ 0000004E 0F49 LDR R1,??UART1Initialize_0+0x4 ;; 0xe0010004
\ 00000050 0860 STR R0,[R1, #+0]
56 U1LCR &= ~0x80;
\ 00000052 0D48 LDR R0,??UART1Initialize_0 ;; 0xe001000c
\ 00000054 0078 LDRB R0,[R0, #+0]
\ 00000056 4006 LSLS R0,R0,#+25 ;; ZeroExtS R0,R0,#+25,#+25
\ 00000058 400E LSRS R0,R0,#+25
\ 0000005A 0B49 LDR R1,??UART1Initialize_0 ;; 0xe001000c
\ 0000005C 0870 STRB R0,[R1, #+0]
57
58 //配置引脚功能: port0.8 -> TX1, port0.9 -> RXD1
59 PINSEL0_bit.P0_8 = 0x1;
\ 0000005E .... LDR R0,??DataTable17 ;; 0xe002c000
\ 00000060 0068 LDR R0,[R0, #+0]
\ 00000062 0B49 LDR R1,??UART1Initialize_0+0x8 ;; 0xfffcffff
\ 00000064 0140 ANDS R1,R1,R0
\ 00000066 8020 MOVS R0,#+128
\ 00000068 4002 LSLS R0,R0,#+9 ;; #+65536
\ 0000006A 0843 ORRS R0,R0,R1
\ 0000006C .... LDR R1,??DataTable17 ;; 0xe002c000
\ 0000006E 0860 STR R0,[R1, #+0]
60 PINSEL0_bit.P0_9 = 0x1;
\ 00000070 .... LDR R0,??DataTable17 ;; 0xe002c000
\ 00000072 0068 LDR R0,[R0, #+0]
\ 00000074 0749 LDR R1,??UART1Initialize_0+0xC ;; 0xfff3ffff
\ 00000076 0140 ANDS R1,R1,R0
\ 00000078 8020 MOVS R0,#+128
\ 0000007A C002 LSLS R0,R0,#+11 ;; #+262144
\ 0000007C 0843 ORRS R0,R0,R1
\ 0000007E .... LDR R1,??DataTable17 ;; 0xe002c000
\ 00000080 0860 STR R0,[R1, #+0]
61 }
\ 00000082 10BC POP {R4}
\ 00000084 01BC POP {R0}
\ 00000086 0047 BX R0 ;; return
\ ??UART1Initialize_0:
\ 00000088 0C0001E0 DC32 0xe001000c
\ 0000008C 040001E0 DC32 0xe0010004
\ 00000090 FFFFFCFF DC32 0xfffcffff
\ 00000094 FFFFF3FF DC32 0xfff3ffff
\ 00000098 REQUIRE _A_PINSEL0
\ 00000098 REQUIRE U1RBRTHR
\ 00000098 REQUIRE _A_U1IER
\ 00000098 REQUIRE _A_U1LCR
62
\ In section .text, align 4, keep-with-next
63 void UART1WriteChar(unsigned char ch0) {
\ UART1WriteChar:
\ 00000000 01B5 PUSH {R0,LR}
64 //当 U1LSR_bit.THRE = 0 时, U1THR 包含有效数据
65 while (U1LSR_bit.THRE == 0);
\ ??UART1WriteChar_0:
\ 00000002 .... LDR R1,??DataTable24 ;; 0xe0010014
\ 00000004 0978 LDRB R1,[R1, #+0]
\ 00000006 8906 LSLS R1,R1,#+26
\ 00000008 FBD5 BPL ??UART1WriteChar_0
66 U1THR = ch0;
\ 0000000A .... LDR R1,??DataTable25 ;; 0xe0010000
\ 0000000C 0870 STRB R0,[R1, #+0]
67 }
\ 0000000E 08BC POP {R3}
\ 00000010 01BC POP {R0}
\ 00000012 0047 BX R0 ;; return
\ 00000014 REQUIRE U1RBRTHR
\ 00000014 REQUIRE _A_U1LSR
68
\ In section .text, align 4, keep-with-next
69 unsigned char UART1ReadChar(void) {
\ UART1ReadChar:
\ 00000000 01B5 PUSH {R0,LR}
70 //当 U1LSR_bit.THRE = 0 时, U1RBR 包含有效数据
71 while (U1LSR_bit.DR == 0);
\ ??UART1ReadChar_0:
\ 00000002 .... LDR R0,??DataTable24 ;; 0xe0010014
\ 00000004 0078 LDRB R0,[R0, #+0]
\ 00000006 C007 LSLS R0,R0,#+31
\ 00000008 FBD5 BPL ??UART1ReadChar_0
72 return U1RBR;
\ 0000000A .... LDR R0,??DataTable25 ;; 0xe0010000
\ 0000000C 0078 LDRB R0,[R0, #+0]
\ 0000000E 0006 LSLS R0,R0,#+24 ;; ZeroExtS R0,R0,#+24,#+24
\ 00000010 000E LSRS R0,R0,#+24
\ 00000012 08BC POP {R3}
\ 00000014 02BC POP {R1}
\ 00000016 0847 BX R1 ;; return
\ 00000018 REQUIRE U1RBRTHR
\ 00000018 REQUIRE _A_U1LSR
73 }
74
75
\ In section .text, align 4, keep-with-next
76 unsigned char UART1ReadChar_nostop(void) {
\ UART1ReadChar_nostop:
\ 00000000 01B5 PUSH {R0,LR}
77 //当 U1LSR_bit.DR = 1 时, U1RBR 包含有效数据
78 if(U1LSR_bit.DR == 1) return U1RBR;
\ 00000002 .... LDR R0,??DataTable24 ;; 0xe0010014
\ 00000004 0078 LDRB R0,[R0, #+0]
\ 00000006 C007 LSLS R0,R0,#+31
\ 00000008 04D5 BPL ??UART1ReadChar_nostop_0
\ 0000000A .... LDR R0,??DataTable25 ;; 0xe0010000
\ 0000000C 0078 LDRB R0,[R0, #+0]
\ 0000000E 0006 LSLS R0,R0,#+24 ;; ZeroExtS R0,R0,#+24,#+24
\ 00000010 000E LSRS R0,R0,#+24
\ 00000012 00E0 B ??UART1ReadChar_nostop_1
79 else return 0;
\ ??UART1ReadChar_nostop_0:
\ 00000014 0020 MOVS R0,#+0
\ ??UART1ReadChar_nostop_1:
\ 00000016 08BC POP {R3}
\ 00000018 02BC POP {R1}
\ 0000001A 0847 BX R1 ;; return
\ 0000001C REQUIRE U1RBRTHR
\ 0000001C REQUIRE _A_U1LSR
80 }
81
\ In section .text, align 4, keep-with-next
82 void UART1WriteChar_nostop(unsigned char ch0) {
\ UART1WriteChar_nostop:
\ 00000000 01B5 PUSH {R0,LR}
83 //当 U1LSR_bit.THRE = 0 时, U1THR 包含有效数据
84 if(U1LSR_bit.THRE == 1) U1THR = ch0;
\ 00000002 .... LDR R1,??DataTable24 ;; 0xe0010014
\ 00000004 0978 LDRB R1,[R1, #+0]
\ 00000006 8906 LSLS R1,R1,#+26
\ 00000008 01D5 BPL ??UART1WriteChar_nostop_0
\ 0000000A .... LDR R1,??DataTable25 ;; 0xe0010000
\ 0000000C 0870 STRB R0,[R1, #+0]
85 }
\ ??UART1WriteChar_nostop_0:
\ 0000000E 08BC POP {R3}
\ 00000010 01BC POP {R0}
\ 00000012 0047 BX R0 ;; return
\ 00000014 REQUIRE U1RBRTHR
\ 00000014 REQUIRE _A_U1LSR
\ In section .text, align 4, keep-with-next
\ ??DataTable11:
\ 00000000 14C000E0 DC32 0xe000c014
\ In section .text, align 4, keep-with-next
\ ??DataTable12:
\ 00000000 00C000E0 DC32 0xe000c000
\ In section .text, align 4, keep-with-next
\ ??DataTable17:
\ 00000000 00C002E0 DC32 0xe002c000
\ In section .text, align 4, keep-with-next
\ ??DataTable24:
\ 00000000 140001E0 DC32 0xe0010014
\ In section .text, align 4, keep-with-next
\ ??DataTable25:
\ 00000000 000001E0 DC32 0xe0010000
86
87
88
Maximum stack usage in bytes:
Function .cstack
-------- -------
UART0Initialize 8
UART0ReadChar 8
UART0ReadChar_nostop 8
UART0WriteChar 8
UART0WriteChar_nostop 8
UART1Initialize 8
UART1ReadChar 8
UART1ReadChar_nostop 8
UART1WriteChar 8
UART1WriteChar_nostop 8
Section sizes:
Function/Label Bytes
-------------- -----
UART0Initialize 140
UART0WriteChar 20
UART0ReadChar 24
UART0ReadChar_nostop 28
UART0WriteChar_nostop 20
UART1Initialize 152
UART1WriteChar 20
UART1ReadChar 24
UART1ReadChar_nostop 28
UART1WriteChar_nostop 20
??DataTable11 4
??DataTable12 4
??DataTable17 4
??DataTable24 4
??DataTable25 4
496 bytes in section .text
496 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -