📄 interrupt_usart.lst
字号:
73 .loc 1 59 0
59:interrupt_Usart.c **** AT91PS_USART USART_pt = COM0;
74 4, .L20
75 0006 3B4C ldr r6, [r4]
76 0008 2668 .LVL1:
77 .loc 1 63 0
60:interrupt_Usart.c **** unsigned int status;
61:interrupt_Usart.c ****
62:interrupt_Usart.c **** //* get Usart status register and active interrupt
63:interrupt_Usart.c **** status = USART_pt->US_CSR ;
78 r2, [r6, #20]
79 000a 7269 .LVL2:
80 .loc 1 64 0
64:interrupt_Usart.c **** status &= USART_pt->US_IMR;
81 r r3, [r6, #16]
82 000c 3369 mov r5, r2
83 000e 151C .LVL3:
84 and r5, r5, r3
85 0010 1D40 .loc 1 66 0
65:interrupt_Usart.c ****
66:interrupt_Usart.c **** if ( status & AT91C_US_RXBUFF){
86 r2, r5, #19
87 0012 EA04 bpl .L9
88 0014 2BD5 .LVL4:
89 .loc 1 68 0
67:interrupt_Usart.c **** //* Toggel LED
68:interrupt_Usart.c **** Trace_Toggel_LED( AT91B_LED3) ;
90 r0, #4
91 0016 0420 bl Trace_Toggel_LED
92 0018 FFF7FEFF .loc 1 70 0
69:interrupt_Usart.c **** //* transfert the char to DBGU
70:interrupt_Usart.c **** if ( first == 0){
93 r r7, .L20+4
94 001c 364F ldr r3, [r7]
95 001e 3B68 cmp r3, #0
96 0020 002B bne .L11
97 0022 11D1 .loc 1 71 0
71:interrupt_Usart.c **** COM0->US_RPR = (unsigned int) buff_rx1;
98 r1, [r4]
99 0024 2168 ldr r2, .L20+8
100 0026 354A mov r3, #128
101 0028 8023 lsl r3, r3, #1
102 002a 5B00 str r2, [r1, r3]
103 002c CA50 .loc 1 72 0
72:interrupt_Usart.c **** COM0->US_RCR = 100;
104 1, [r4]
105 002e 2168 mov r3, #130
106 0030 8223 lsl r3, r3, #1
107 0032 5B00 mov r2, #100
108 0034 6422 str r2, [r1, r3]
109 0036 CA50 .loc 1 73 0
73:interrupt_Usart.c **** pCDC.Write(&pCDC, buff_rx,100);
110 0, .L20+12
111 0038 3148 ldr r1, .L20+16
112 003a 3249 ldr r3, [r0, #16]
113 003c 0369 bl .L22
114 003e 00F063F8 .loc 1 74 0
74:interrupt_Usart.c **** first =1;
115 r3, #1
116 0042 0123 str r3, [r7]
117 0044 3B60 b .L9
118 0046 12E0 .L11:
119 .loc 1 76 0
75:interrupt_Usart.c **** }else{
76:interrupt_Usart.c **** COM0->US_RPR = (unsigned int) buff_rx;
120 r1, .L20
121 0048 2A49 ldr r0, [r1]
122 004a 0868 ldr r2, .L20+16
123 004c 2D4A mov r3, #128
124 004e 8023 lsl r3, r3, #1
125 0050 5B00 str r2, [r0, r3]
126 0052 C250 .loc 1 77 0
77:interrupt_Usart.c **** COM0->US_RCR = 100;
127 , [r1]
128 0054 0968 mov r3, #130
129 0056 8223 lsl r3, r3, #1
130 0058 5B00 mov r2, #100
131 005a 6422 str r2, [r1, r3]
132 005c CA50 .loc 1 78 0
78:interrupt_Usart.c **** pCDC.Write(&pCDC, buff_rx1,100);
133 0, .L20+12
134 005e 2848 ldr r1, .L20+8
135 0060 2649 ldr r3, [r0, #16]
136 0062 0369 bl .L22
137 0064 00F050F8 .loc 1 79 0
79:interrupt_Usart.c **** first=0;
138 r2, .L20+4
139 0068 234A mov r3, #0
140 006a 0023 str r3, [r2]
141 006c 1360 .L9:
142 .loc 1 84 0
80:interrupt_Usart.c **** }
81:interrupt_Usart.c **** }
82:interrupt_Usart.c **** //* Check error
83:interrupt_Usart.c ****
84:interrupt_Usart.c **** if ( status & AT91C_US_TIMEOUT){
143 r4, #128
144 006e 8024 lsl r4, r4, #1
145 0070 6400 tst r5, r4
146 0072 2542 beq .L13
147 0074 36D0 .loc 1 85 0
85:interrupt_Usart.c **** Trace_Toggel_LED( AT91B_LED4) ;
148 r0, #8
149 0076 0820 bl Trace_Toggel_LED
150 0078 FFF7FEFF .loc 1 86 0
86:interrupt_Usart.c **** status = 100 - COM0->US_RCR;
151 r r0, .L20
152 007c 1D48 ldr r1, [r0]
153 007e 0168 mov r2, #130
154 0080 8222 lsl r2, r2, #1
155 0082 5200 ldr r3, [r1, r2]
156 0084 8B58 mov r7, #100
157 0086 6427 sub r5, r7, r3
158 0088 FD1A .LVL5:
159 .loc 1 87 0
87:interrupt_Usart.c **** if (status !=0){
160 #0
161 008a 002D beq .L13
162 008c 2AD0 .loc 1 88 0
88:interrupt_Usart.c **** if ( first == 0){
163 r r3, .L20+4
164 008e 1A4B mov r8, r3
165 0090 9846 ldr r3, [r3]
166 0092 1B68 cmp r3, #0
167 0094 002B bne .L16
168 0096 0DD1 .loc 1 89 0
89:interrupt_Usart.c **** COM0->US_RPR = (unsigned int) buff_rx1;
169 3, .L20+8
170 0098 184B str r3, [r1, r4]
171 009a 0B51 .loc 1 90 0
90:interrupt_Usart.c **** COM0->US_RCR = 100;
172 r r3, [r0]
173 009c 0368 str r7, [r3, r2]
174 009e 9F50 .loc 1 91 0
91:interrupt_Usart.c **** pCDC.Write(&pCDC, buff_rx,status);
175 r r0, .L20+12
176 00a0 1748 ldr r1, .L20+16
177 00a2 1849 ldr r3, [r0, #16]
178 00a4 0369 mov r2, r5
179 00a6 2A1C bl .L22
180 00a8 00F02EF8 .loc 1 92 0
92:interrupt_Usart.c **** first =1;
181 3, #1
182 00ac 0123 mov r2, r8
183 00ae 4246 str r3, [r2]
184 00b0 1360 b .L18
185 00b2 12E0 .L16:
186 .loc 1 94 0
93:interrupt_Usart.c **** }else{
94:interrupt_Usart.c **** COM0->US_RPR = (unsigned int) buff_rx;
187 2, .L20+16
188 00b4 134A mov r3, #128
189 00b6 8023 lsl r3, r3, #1
190 00b8 5B00 str r2, [r1, r3]
191 00ba CA50 .loc 1 95 0
95:interrupt_Usart.c **** COM0->US_RCR = 100;
192 r3, .L20
193 00bc 0D4B ldr r1, [r3]
194 00be 1968 mov r3, #130
195 00c0 8223 lsl r3, r3, #1
196 00c2 5B00 mov r2, #100
197 00c4 6422 str r2, [r1, r3]
198 00c6 CA50 .loc 1 96 0
96:interrupt_Usart.c **** pCDC.Write(&pCDC, buff_rx1,status);
199 , .L20+12
200 00c8 0D48 ldr r1, .L20+8
201 00ca 0C49 ldr r3, [r0, #16]
202 00cc 0369 mov r2, r5
203 00ce 2A1C bl .L22
204 00d0 00F01AF8 .loc 1 97 0
97:interrupt_Usart.c **** first=0;
205 2, .L20+4
206 00d4 084A mov r3, #0
207 00d6 0023 str r3, [r2]
208 00d8 1360 .L18:
209 .loc 1 99 0
98:interrupt_Usart.c **** }
99:interrupt_Usart.c **** COM0->US_CR = AT91C_US_STTTO;
210 r3, .L20
211 00da 064B ldr r2, [r3]
212 00dc 1A68 mov r3, #128
21
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -