mca-pendel/sketches/djhgfjh/WS2812B_Atmega.lst
2018-03-26 21:22:43 +02:00

314 lines
10 KiB
Plaintext

1 .file "WS2812B_Atmega.c"
2 __SP_H__ = 0x3e
3 __SP_L__ = 0x3d
4 __SREG__ = 0x3f
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
9 .text
10 .Ltext0:
103 .global writeZero
105 writeZero:
106 .stabd 46,0,0
1:WS2812B_Atmega.c **** #include "WS2812B_Atmega.h"
2:WS2812B_Atmega.c ****
3:WS2812B_Atmega.c **** inline void writeZero() {
108 .LM0:
109 .LFBB1:
110 /* prologue: function */
111 /* frame size = 0 */
112 /* stack size = 0 */
113 .L__stack_usage = 0
4:WS2812B_Atmega.c **** DATAPIN = 1;
115 .LM1:
116 0000 81E0 ldi r24,lo8(1)
117 0002 88B9 out 0x8,r24
5:WS2812B_Atmega.c **** wait6;
119 .LM2:
120 /* #APP */
121 ; 5 "WS2812B_Atmega.c" 1
122 0004 00C0 rjmp .+0
123
124 ; 0 "" 2
125 ; 5 "WS2812B_Atmega.c" 1
126 0006 00C0 rjmp .+0
127
128 ; 0 "" 2
129 ; 5 "WS2812B_Atmega.c" 1
130 0008 00C0 rjmp .+0
131
132 ; 0 "" 2
6:WS2812B_Atmega.c **** DATAPIN = 0;
134 .LM3:
135 /* #NOAPP */
136 000a 18B8 out 0x8,__zero_reg__
7:WS2812B_Atmega.c **** wait15;
138 .LM4:
139 /* #APP */
140 ; 7 "WS2812B_Atmega.c" 1
141 000c 00C0 rjmp .+0
142
143 ; 0 "" 2
144 ; 7 "WS2812B_Atmega.c" 1
145 000e 00C0 rjmp .+0
146
147 ; 0 "" 2
148 ; 7 "WS2812B_Atmega.c" 1
149 0010 00C0 rjmp .+0
150
151 ; 0 "" 2
152 ; 7 "WS2812B_Atmega.c" 1
153 0012 00C0 rjmp .+0
154
155 ; 0 "" 2
156 ; 7 "WS2812B_Atmega.c" 1
157 0014 00C0 rjmp .+0
158
159 ; 0 "" 2
160 ; 7 "WS2812B_Atmega.c" 1
161 0016 00C0 rjmp .+0
162
163 ; 0 "" 2
164 ; 7 "WS2812B_Atmega.c" 1
165 0018 00C0 rjmp .+0
166
167 ; 0 "" 2
168 ; 7 "WS2812B_Atmega.c" 1
169 001a 0000 nop
170
171 ; 0 "" 2
172 /* #NOAPP */
173 001c 0895 ret
175 .Lscope1:
177 .stabd 78,0,0
179 .global writeOne
181 writeOne:
182 .stabd 46,0,0
8:WS2812B_Atmega.c **** }
9:WS2812B_Atmega.c ****
10:WS2812B_Atmega.c **** inline void writeOne() {
184 .LM5:
185 .LFBB2:
186 /* prologue: function */
187 /* frame size = 0 */
188 /* stack size = 0 */
189 .L__stack_usage = 0
11:WS2812B_Atmega.c **** DATAPIN = 1;
191 .LM6:
192 001e 81E0 ldi r24,lo8(1)
193 0020 88B9 out 0x8,r24
12:WS2812B_Atmega.c **** wait14;
195 .LM7:
196 /* #APP */
197 ; 12 "WS2812B_Atmega.c" 1
198 0022 00C0 rjmp .+0
199
200 ; 0 "" 2
201 ; 12 "WS2812B_Atmega.c" 1
202 0024 00C0 rjmp .+0
203
204 ; 0 "" 2
205 ; 12 "WS2812B_Atmega.c" 1
206 0026 00C0 rjmp .+0
207
208 ; 0 "" 2
209 ; 12 "WS2812B_Atmega.c" 1
210 0028 00C0 rjmp .+0
211
212 ; 0 "" 2
213 ; 12 "WS2812B_Atmega.c" 1
214 002a 00C0 rjmp .+0
215
216 ; 0 "" 2
217 ; 12 "WS2812B_Atmega.c" 1
218 002c 00C0 rjmp .+0
219
220 ; 0 "" 2
221 ; 12 "WS2812B_Atmega.c" 1
222 002e 00C0 rjmp .+0
223
224 ; 0 "" 2
13:WS2812B_Atmega.c **** DATAPIN = 0;
226 .LM8:
227 /* #NOAPP */
228 0030 18B8 out 0x8,__zero_reg__
14:WS2812B_Atmega.c **** wait8;
230 .LM9:
231 /* #APP */
232 ; 14 "WS2812B_Atmega.c" 1
233 0032 00C0 rjmp .+0
234
235 ; 0 "" 2
236 ; 14 "WS2812B_Atmega.c" 1
237 0034 00C0 rjmp .+0
238
239 ; 0 "" 2
240 ; 14 "WS2812B_Atmega.c" 1
241 0036 00C0 rjmp .+0
242
243 ; 0 "" 2
244 ; 14 "WS2812B_Atmega.c" 1
245 0038 00C0 rjmp .+0
246
247 ; 0 "" 2
248 /* #NOAPP */
249 003a 0895 ret
251 .Lscope2:
253 .stabd 78,0,0
258 .global writeRGB
260 writeRGB:
261 .stabd 46,0,0
15:WS2812B_Atmega.c **** }
16:WS2812B_Atmega.c ****
17:WS2812B_Atmega.c **** void writeRGB(uint8_t r, uint8_t g, uint8_t b) {
263 .LM10:
264 .LFBB3:
265 003c AF92 push r10
266 003e BF92 push r11
267 0040 CF92 push r12
268 0042 DF92 push r13
269 0044 EF92 push r14
270 0046 FF92 push r15
271 0048 0F93 push r16
272 004a 1F93 push r17
273 004c CF93 push r28
274 004e DF93 push r29
275 /* prologue: function */
276 /* frame size = 0 */
277 /* stack size = 10 */
278 .L__stack_usage = 10
279 0050 C82E mov r12,r24
280 0052 E42E mov r14,r20
282 .LM11:
283 0054 C8E0 ldi r28,lo8(8)
284 0056 D0E0 ldi r29,0
18:WS2812B_Atmega.c **** int i;
19:WS2812B_Atmega.c ****
20:WS2812B_Atmega.c **** for( i = 128; i > 0; i >>= 1 ) {
286 .LM12:
287 0058 00E8 ldi r16,lo8(-128)
288 005a 10E0 ldi r17,0
21:WS2812B_Atmega.c **** if( g & i ){
290 .LM13:
291 005c A62E mov r10,r22
292 005e B12C mov r11,__zero_reg__
293 .L6:
294 0060 C801 movw r24,r16
295 0062 8A21 and r24,r10
296 0064 9B21 and r25,r11
297 0066 892B or r24,r25
298 0068 01F0 breq .L4
22:WS2812B_Atmega.c **** writeOne();
300 .LM14:
301 006a 0E94 0000 call writeOne
302 006e 00C0 rjmp .L5
303 .L4:
23:WS2812B_Atmega.c **** } else {
24:WS2812B_Atmega.c **** writeZero();
305 .LM15:
306 0070 0E94 0000 call writeZero
307 .L5:
20:WS2812B_Atmega.c **** if( g & i ){
309 .LM16:
310 0074 1595 asr r17
311 0076 0795 ror r16
312 0078 2197 sbiw r28,1
313 007a 01F4 brne .L6
314 007c C8E0 ldi r28,lo8(8)
315 007e D0E0 ldi r29,0
316 0080 00E8 ldi r16,lo8(-128)
317 0082 10E0 ldi r17,0
25:WS2812B_Atmega.c **** }
26:WS2812B_Atmega.c **** }
27:WS2812B_Atmega.c ****
28:WS2812B_Atmega.c **** for( i = 128; i > 0; i >>= 1 ) {
29:WS2812B_Atmega.c **** if( r & i ){
319 .LM17:
320 0084 D12C mov r13,__zero_reg__
321 .L9:
322 0086 C801 movw r24,r16
323 0088 8C21 and r24,r12
324 008a 9D21 and r25,r13
325 008c 892B or r24,r25
326 008e 01F0 breq .L7
30:WS2812B_Atmega.c **** writeOne();
328 .LM18:
329 0090 0E94 0000 call writeOne
330 0094 00C0 rjmp .L8
331 .L7:
31:WS2812B_Atmega.c **** } else {
32:WS2812B_Atmega.c **** writeZero();
333 .LM19:
334 0096 0E94 0000 call writeZero
335 .L8:
28:WS2812B_Atmega.c **** if( r & i ){
337 .LM20:
338 009a 1595 asr r17
339 009c 0795 ror r16
340 009e 2197 sbiw r28,1
341 00a0 01F4 brne .L9
342 00a2 C8E0 ldi r28,lo8(8)
343 00a4 D0E0 ldi r29,0
344 00a6 00E8 ldi r16,lo8(-128)
345 00a8 10E0 ldi r17,0
33:WS2812B_Atmega.c **** }
34:WS2812B_Atmega.c **** }
35:WS2812B_Atmega.c ****
36:WS2812B_Atmega.c **** for( i = 128; i > 0; i >>= 1 ) {
37:WS2812B_Atmega.c **** if( b & i ){
347 .LM21:
348 00aa F12C mov r15,__zero_reg__
349 .L12:
350 00ac C801 movw r24,r16
351 00ae 8E21 and r24,r14
352 00b0 9F21 and r25,r15
353 00b2 892B or r24,r25
354 00b4 01F0 breq .L10
38:WS2812B_Atmega.c **** writeOne();
356 .LM22:
357 00b6 0E94 0000 call writeOne
358 00ba 00C0 rjmp .L11
359 .L10:
39:WS2812B_Atmega.c **** } else {
40:WS2812B_Atmega.c **** writeZero();
361 .LM23:
362 00bc 0E94 0000 call writeZero
363 .L11:
36:WS2812B_Atmega.c **** if( b & i ){
365 .LM24:
366 00c0 1595 asr r17
367 00c2 0795 ror r16
368 00c4 2197 sbiw r28,1
369 00c6 01F4 brne .L12
370 /* epilogue start */
41:WS2812B_Atmega.c **** }
42:WS2812B_Atmega.c **** }
43:WS2812B_Atmega.c **** }
372 .LM25:
373 00c8 DF91 pop r29
374 00ca CF91 pop r28
375 00cc 1F91 pop r17
376 00ce 0F91 pop r16
377 00d0 FF90 pop r15
378 00d2 EF90 pop r14
379 00d4 DF90 pop r13
380 00d6 CF90 pop r12
381 00d8 BF90 pop r11
382 00da AF90 pop r10
383 00dc 0895 ret
385 .Lscope3:
387 .stabd 78,0,0
389 .Letext0:
390 .ident "GCC: (GNU) 4.9.2"
DEFINED SYMBOLS
*ABS*:0000000000000000 WS2812B_Atmega.c
/tmp/cc4evma8.s:2 *ABS*:000000000000003e __SP_H__
/tmp/cc4evma8.s:3 *ABS*:000000000000003d __SP_L__
/tmp/cc4evma8.s:4 *ABS*:000000000000003f __SREG__
/tmp/cc4evma8.s:5 *ABS*:0000000000000000 __tmp_reg__
/tmp/cc4evma8.s:6 *ABS*:0000000000000001 __zero_reg__
/tmp/cc4evma8.s:105 .text:0000000000000000 writeZero
/tmp/cc4evma8.s:181 .text:000000000000001e writeOne
/tmp/cc4evma8.s:260 .text:000000000000003c writeRGB
NO UNDEFINED SYMBOLS