257 lines
9.5 KiB
Plaintext
257 lines
9.5 KiB
Plaintext
1 .file "uart.c"
|
|
2 __SP_H__ = 0x3e
|
|
3 __SP_L__ = 0x3d
|
|
4 __SREG__ = 0x3f
|
|
5 __tmp_reg__ = 0
|
|
6 __zero_reg__ = 1
|
|
7 .text
|
|
8 .global __vector_11
|
|
10 __vector_11:
|
|
11 0000 1F92 push r1
|
|
12 0002 0F92 push r0
|
|
13 0004 0FB6 in r0,__SREG__
|
|
14 0006 0F92 push r0
|
|
15 0008 1124 clr __zero_reg__
|
|
16 000a 2F93 push r18
|
|
17 000c 8F93 push r24
|
|
18 000e 9F93 push r25
|
|
19 0010 EF93 push r30
|
|
20 0012 FF93 push r31
|
|
21 /* prologue: Signal */
|
|
22 /* frame size = 0 */
|
|
23 /* stack size = 8 */
|
|
24 .L__stack_usage = 8
|
|
25 0014 8BB1 in r24,0xb
|
|
26 0016 9CB1 in r25,0xc
|
|
27 0018 8871 andi r24,lo8(24)
|
|
28 001a E091 0000 lds r30,UART_RxHead
|
|
29 001e EF5F subi r30,lo8(-(1))
|
|
30 0020 EF71 andi r30,lo8(31)
|
|
31 0022 2091 0000 lds r18,UART_RxTail
|
|
32 0026 E217 cp r30,r18
|
|
33 0028 01F0 breq .L3
|
|
34 002a E093 0000 sts UART_RxHead,r30
|
|
35 002e F0E0 ldi r31,0
|
|
36 0030 E050 subi r30,lo8(-(UART_RxBuf))
|
|
37 0032 F040 sbci r31,hi8(-(UART_RxBuf))
|
|
38 0034 9083 st Z,r25
|
|
39 0036 00C0 rjmp .L2
|
|
40 .L3:
|
|
41 0038 82E0 ldi r24,lo8(2)
|
|
42 .L2:
|
|
43 003a 9091 0000 lds r25,UART_LastRxError
|
|
44 003e 982B or r25,r24
|
|
45 0040 9093 0000 sts UART_LastRxError,r25
|
|
46 /* epilogue start */
|
|
47 0044 FF91 pop r31
|
|
48 0046 EF91 pop r30
|
|
49 0048 9F91 pop r25
|
|
50 004a 8F91 pop r24
|
|
51 004c 2F91 pop r18
|
|
52 004e 0F90 pop r0
|
|
53 0050 0FBE out __SREG__,r0
|
|
54 0052 0F90 pop r0
|
|
55 0054 1F90 pop r1
|
|
56 0056 1895 reti
|
|
58 .global __vector_12
|
|
60 __vector_12:
|
|
61 0058 1F92 push r1
|
|
62 005a 0F92 push r0
|
|
63 005c 0FB6 in r0,__SREG__
|
|
64 005e 0F92 push r0
|
|
65 0060 1124 clr __zero_reg__
|
|
66 0062 8F93 push r24
|
|
67 0064 9F93 push r25
|
|
68 0066 EF93 push r30
|
|
69 0068 FF93 push r31
|
|
70 /* prologue: Signal */
|
|
71 /* frame size = 0 */
|
|
72 /* stack size = 7 */
|
|
73 .L__stack_usage = 7
|
|
74 006a 9091 0000 lds r25,UART_TxHead
|
|
75 006e 8091 0000 lds r24,UART_TxTail
|
|
76 0072 9817 cp r25,r24
|
|
77 0074 01F0 breq .L5
|
|
78 0076 E091 0000 lds r30,UART_TxTail
|
|
79 007a EF5F subi r30,lo8(-(1))
|
|
80 007c EF71 andi r30,lo8(31)
|
|
81 007e E093 0000 sts UART_TxTail,r30
|
|
82 0082 F0E0 ldi r31,0
|
|
83 0084 E050 subi r30,lo8(-(UART_TxBuf))
|
|
84 0086 F040 sbci r31,hi8(-(UART_TxBuf))
|
|
85 0088 8081 ld r24,Z
|
|
86 008a 8CB9 out 0xc,r24
|
|
87 008c 00C0 rjmp .L4
|
|
88 .L5:
|
|
89 008e 5598 cbi 0xa,5
|
|
90 .L4:
|
|
91 /* epilogue start */
|
|
92 0090 FF91 pop r31
|
|
93 0092 EF91 pop r30
|
|
94 0094 9F91 pop r25
|
|
95 0096 8F91 pop r24
|
|
96 0098 0F90 pop r0
|
|
97 009a 0FBE out __SREG__,r0
|
|
98 009c 0F90 pop r0
|
|
99 009e 1F90 pop r1
|
|
100 00a0 1895 reti
|
|
102 .global uart_init
|
|
104 uart_init:
|
|
105 /* prologue: function */
|
|
106 /* frame size = 0 */
|
|
107 /* stack size = 0 */
|
|
108 .L__stack_usage = 0
|
|
109 00a2 1092 0000 sts UART_TxHead,__zero_reg__
|
|
110 00a6 1092 0000 sts UART_TxTail,__zero_reg__
|
|
111 00aa 1092 0000 sts UART_RxHead,__zero_reg__
|
|
112 00ae 1092 0000 sts UART_RxTail,__zero_reg__
|
|
113 00b2 97FF sbrs r25,7
|
|
114 00b4 00C0 rjmp .L8
|
|
115 00b6 22E0 ldi r18,lo8(2)
|
|
116 00b8 2BB9 out 0xb,r18
|
|
117 00ba 9F77 andi r25,127
|
|
118 .L8:
|
|
119 00bc 90BD out 0x20,r25
|
|
120 00be 89B9 out 0x9,r24
|
|
121 00c0 88E9 ldi r24,lo8(-104)
|
|
122 00c2 8AB9 out 0xa,r24
|
|
123 00c4 86E8 ldi r24,lo8(-122)
|
|
124 00c6 80BD out 0x20,r24
|
|
125 00c8 0895 ret
|
|
127 .global uart_getc
|
|
129 uart_getc:
|
|
130 /* prologue: function */
|
|
131 /* frame size = 0 */
|
|
132 /* stack size = 0 */
|
|
133 .L__stack_usage = 0
|
|
134 00ca 9091 0000 lds r25,UART_RxHead
|
|
135 00ce 8091 0000 lds r24,UART_RxTail
|
|
136 00d2 9817 cp r25,r24
|
|
137 00d4 01F0 breq .L11
|
|
138 00d6 E091 0000 lds r30,UART_RxTail
|
|
139 00da EF5F subi r30,lo8(-(1))
|
|
140 00dc EF71 andi r30,lo8(31)
|
|
141 00de E093 0000 sts UART_RxTail,r30
|
|
142 00e2 F0E0 ldi r31,0
|
|
143 00e4 E050 subi r30,lo8(-(UART_RxBuf))
|
|
144 00e6 F040 sbci r31,hi8(-(UART_RxBuf))
|
|
145 00e8 2081 ld r18,Z
|
|
146 00ea 8091 0000 lds r24,UART_LastRxError
|
|
147 00ee 1092 0000 sts UART_LastRxError,__zero_reg__
|
|
148 00f2 30E0 ldi r19,0
|
|
149 00f4 00C0 rjmp .L10
|
|
150 .L11:
|
|
151 00f6 20E0 ldi r18,0
|
|
152 00f8 31E0 ldi r19,lo8(1)
|
|
153 .L10:
|
|
154 00fa C901 movw r24,r18
|
|
155 00fc 0895 ret
|
|
157 .global uart_putc
|
|
159 uart_putc:
|
|
160 /* prologue: function */
|
|
161 /* frame size = 0 */
|
|
162 /* stack size = 0 */
|
|
163 .L__stack_usage = 0
|
|
164 00fe 9091 0000 lds r25,UART_TxHead
|
|
165 0102 9F5F subi r25,lo8(-(1))
|
|
166 0104 9F71 andi r25,lo8(31)
|
|
167 .L13:
|
|
168 0106 2091 0000 lds r18,UART_TxTail
|
|
169 010a 9217 cp r25,r18
|
|
170 010c 01F0 breq .L13
|
|
171 010e E92F mov r30,r25
|
|
172 0110 F0E0 ldi r31,0
|
|
173 0112 E050 subi r30,lo8(-(UART_TxBuf))
|
|
174 0114 F040 sbci r31,hi8(-(UART_TxBuf))
|
|
175 0116 8083 st Z,r24
|
|
176 0118 9093 0000 sts UART_TxHead,r25
|
|
177 011c 559A sbi 0xa,5
|
|
178 011e 0895 ret
|
|
180 .global uart_puts
|
|
182 uart_puts:
|
|
183 0120 CF93 push r28
|
|
184 0122 DF93 push r29
|
|
185 /* prologue: function */
|
|
186 /* frame size = 0 */
|
|
187 /* stack size = 2 */
|
|
188 .L__stack_usage = 2
|
|
189 0124 EC01 movw r28,r24
|
|
190 0126 00C0 rjmp .L16
|
|
191 .L17:
|
|
192 0128 00D0 rcall uart_putc
|
|
193 .L16:
|
|
194 012a 8991 ld r24,Y+
|
|
195 012c 8111 cpse r24,__zero_reg__
|
|
196 012e 00C0 rjmp .L17
|
|
197 /* epilogue start */
|
|
198 0130 DF91 pop r29
|
|
199 0132 CF91 pop r28
|
|
200 0134 0895 ret
|
|
202 .global uart_puts_p
|
|
204 uart_puts_p:
|
|
205 0136 CF93 push r28
|
|
206 0138 DF93 push r29
|
|
207 /* prologue: function */
|
|
208 /* frame size = 0 */
|
|
209 /* stack size = 2 */
|
|
210 .L__stack_usage = 2
|
|
211 013a EC01 movw r28,r24
|
|
212 013c 00C0 rjmp .L19
|
|
213 .L20:
|
|
214 013e 00D0 rcall uart_putc
|
|
215 .L19:
|
|
216 0140 FE01 movw r30,r28
|
|
217 0142 2196 adiw r28,1
|
|
218 /* #APP */
|
|
219 ; 474 "src/uart.c" 1
|
|
220 0144 8491 lpm r24, Z
|
|
221
|
|
222 ; 0 "" 2
|
|
223 /* #NOAPP */
|
|
224 0146 8111 cpse r24,__zero_reg__
|
|
225 0148 00C0 rjmp .L20
|
|
226 /* epilogue start */
|
|
227 014a DF91 pop r29
|
|
228 014c CF91 pop r28
|
|
229 014e 0895 ret
|
|
231 .local UART_LastRxError
|
|
232 .comm UART_LastRxError,1,1
|
|
233 .local UART_RxTail
|
|
234 .comm UART_RxTail,1,1
|
|
235 .local UART_RxHead
|
|
236 .comm UART_RxHead,1,1
|
|
237 .local UART_TxTail
|
|
238 .comm UART_TxTail,1,1
|
|
239 .local UART_TxHead
|
|
240 .comm UART_TxHead,1,1
|
|
241 .local UART_RxBuf
|
|
242 .comm UART_RxBuf,32,1
|
|
243 .local UART_TxBuf
|
|
244 .comm UART_TxBuf,32,1
|
|
245 .ident "GCC: (GNU) 4.7.2"
|
|
246 .global __do_clear_bss
|
|
DEFINED SYMBOLS
|
|
*ABS*:0000000000000000 uart.c
|
|
/tmp/ccbMxLMX.s:2 *ABS*:000000000000003e __SP_H__
|
|
/tmp/ccbMxLMX.s:3 *ABS*:000000000000003d __SP_L__
|
|
/tmp/ccbMxLMX.s:4 *ABS*:000000000000003f __SREG__
|
|
/tmp/ccbMxLMX.s:5 *ABS*:0000000000000000 __tmp_reg__
|
|
/tmp/ccbMxLMX.s:6 *ABS*:0000000000000001 __zero_reg__
|
|
/tmp/ccbMxLMX.s:10 .text:0000000000000000 __vector_11
|
|
/tmp/ccbMxLMX.s:234 .bss:0000000000000002 UART_RxHead
|
|
/tmp/ccbMxLMX.s:232 .bss:0000000000000001 UART_RxTail
|
|
/tmp/ccbMxLMX.s:240 .bss:0000000000000005 UART_RxBuf
|
|
.bss:0000000000000000 UART_LastRxError
|
|
/tmp/ccbMxLMX.s:60 .text:0000000000000058 __vector_12
|
|
/tmp/ccbMxLMX.s:238 .bss:0000000000000004 UART_TxHead
|
|
/tmp/ccbMxLMX.s:236 .bss:0000000000000003 UART_TxTail
|
|
/tmp/ccbMxLMX.s:242 .bss:0000000000000025 UART_TxBuf
|
|
/tmp/ccbMxLMX.s:104 .text:00000000000000a2 uart_init
|
|
/tmp/ccbMxLMX.s:129 .text:00000000000000ca uart_getc
|
|
/tmp/ccbMxLMX.s:159 .text:00000000000000fe uart_putc
|
|
/tmp/ccbMxLMX.s:182 .text:0000000000000120 uart_puts
|
|
/tmp/ccbMxLMX.s:204 .text:0000000000000136 uart_puts_p
|
|
|
|
UNDEFINED SYMBOLS
|
|
__do_clear_bss
|