So ein Schmutz!

This commit is contained in:
Gast 2018-03-27 22:01:57 +02:00
parent 0f2b6c2e30
commit 468e113a30
13 changed files with 51 additions and 4783 deletions

View File

@ -1,3 +0,0 @@
color_hsv.o: color_hsv.c color_hsv.h
color_hsv.h:

View File

@ -1,3 +0,0 @@
pendulum.o: pendulum.c color_hsv.h
color_hsv.h:

View File

@ -1,662 +0,0 @@
1 .file "color_hsv.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 interpolate
105 interpolate:
106 .stabd 46,0,0
1:color_hsv.c **** #include "color_hsv.h"
2:color_hsv.c ****
3:color_hsv.c **** void interpolate(hsv_t start, hsv_t end, size_t steps, hsv_t *colors) {
108 .LM0:
109 .LFBB1:
110 0000 2F92 push r2
111 0002 3F92 push r3
112 0004 4F92 push r4
113 0006 5F92 push r5
114 0008 6F92 push r6
115 000a 7F92 push r7
116 000c 8F92 push r8
117 000e 9F92 push r9
118 0010 AF92 push r10
119 0012 BF92 push r11
120 0014 CF92 push r12
121 0016 DF92 push r13
122 0018 EF92 push r14
123 001a FF92 push r15
124 001c 0F93 push r16
125 001e 1F93 push r17
126 0020 CF93 push r28
127 0022 DF93 push r29
128 0024 CDB7 in r28,__SP_L__
129 0026 DEB7 in r29,__SP_H__
130 0028 2A97 sbiw r28,10
131 002a 0FB6 in __tmp_reg__,__SREG__
132 002c F894 cli
133 002e DEBF out __SP_H__,r29
134 0030 0FBE out __SREG__,__tmp_reg__
135 0032 CDBF out __SP_L__,r28
136 /* prologue: function */
137 /* frame size = 10 */
138 /* stack size = 28 */
139 .L__stack_usage = 28
140 0034 D82E mov r13,r24
141 0036 C92E mov r12,r25
142 0038 F701 movw r30,r14
4:color_hsv.c **** if( steps == 1 ) {
144 .LM1:
145 003a 0130 cpi r16,1
146 003c 1105 cpc r17,__zero_reg__
147 003e 01F0 breq .L2
148 .LBB2:
149 .LBB3:
5:color_hsv.c **** colors[0] = start;
6:color_hsv.c **** return;
7:color_hsv.c **** }
8:color_hsv.c ****
9:color_hsv.c **** for( size_t i = 0; i < steps; i++ ) {
10:color_hsv.c **** hsv_t tmp;
11:color_hsv.c **** tmp.hue = (uint16_t)((int16_t)start.hue + ((int16_t)end.hue - (int16_t)start.hue) * (int16_t)i /
151 .LM2:
152 0040 3B01 movw r6,r22
153 0042 2901 movw r4,r18
154 0044 461A sub r4,r22
155 0046 570A sbc r5,r23
156 0048 842F mov r24,r20
157 004a 90E0 ldi r25,0
12:color_hsv.c **** tmp.sat = (uint8_t)((int16_t)start.sat + ((int16_t)end.sat - (int16_t)start.sat) * (int16_t)i / (
159 .LM3:
160 004c BC01 movw r22,r24
161 004e 6D19 sub r22,r13
162 0050 7109 sbc r23,__zero_reg__
163 0052 7E83 std Y+6,r23
164 0054 6D83 std Y+5,r22
165 0056 852F mov r24,r21
166 0058 90E0 ldi r25,0
13:color_hsv.c **** tmp.val = (uint8_t)((int16_t)start.val + ((int16_t)end.val - (int16_t)start.val) * (int16_t)i / (
168 .LM4:
169 005a 9C01 movw r18,r24
170 005c 2C19 sub r18,r12
171 005e 3109 sbc r19,__zero_reg__
172 0060 3887 std Y+8,r19
173 0062 2F83 std Y+7,r18
174 0064 3396 adiw r30,3
175 0066 1A86 std Y+10,__zero_reg__
176 0068 1986 std Y+9,__zero_reg__
177 006a E12C mov r14,__zero_reg__
178 006c F12C mov r15,__zero_reg__
179 006e 80E0 ldi r24,0
180 0070 90E0 ldi r25,0
181 0072 20E0 ldi r18,0
182 0074 30E0 ldi r19,0
11:color_hsv.c **** tmp.sat = (uint8_t)((int16_t)start.sat + ((int16_t)end.sat - (int16_t)start.sat) * (int16_t)i / (
184 .LM5:
185 0076 5801 movw r10,r16
186 0078 41E0 ldi r20,1
187 007a A41A sub r10,r20
188 007c B108 sbc r11,__zero_reg__
189 007e 00C0 rjmp .L3
190 .L2:
191 .LBE3:
192 .LBE2:
5:color_hsv.c **** return;
194 .LM6:
195 0080 6083 st Z,r22
196 0082 7183 std Z+1,r23
197 0084 8283 std Z+2,r24
198 0086 9383 std Z+3,r25
6:color_hsv.c **** }
200 .LM7:
201 0088 00C0 rjmp .L1
202 .L3:
203 008a 1C01 movw r2,r24
204 008c 240C add r2,r4
205 008e 351C adc r3,r5
206 0090 4D81 ldd r20,Y+5
207 0092 5E81 ldd r21,Y+6
208 0094 4E0D add r20,r14
209 0096 5F1D adc r21,r15
210 0098 5A83 std Y+2,r21
211 009a 4983 std Y+1,r20
212 009c 4F81 ldd r20,Y+7
213 009e 5885 ldd r21,Y+8
214 00a0 6985 ldd r22,Y+9
215 00a2 7A85 ldd r23,Y+10
216 00a4 460F add r20,r22
217 00a6 571F adc r21,r23
218 00a8 5C83 std Y+4,r21
219 00aa 4B83 std Y+3,r20
220 .LBB5:
9:color_hsv.c **** hsv_t tmp;
222 .LM8:
223 00ac 2017 cp r18,r16
224 00ae 3107 cpc r19,r17
225 00b0 01F0 breq .L1
226 00b2 4F01 movw r8,r30
227 00b4 53E0 ldi r21,3
228 00b6 851A sub r8,r21
229 00b8 9108 sbc r9,__zero_reg__
230 .LBB4:
11:color_hsv.c **** tmp.sat = (uint8_t)((int16_t)start.sat + ((int16_t)end.sat - (int16_t)start.sat) * (int16_t)i / (
232 .LM9:
233 00ba B501 movw r22,r10
234 00bc 0E94 0000 call __divmodhi4
235 00c0 660D add r22,r6
236 00c2 771D adc r23,r7
14:color_hsv.c **** colors[i] = tmp;
238 .LM10:
239 00c4 D401 movw r26,r8
240 00c6 6D93 st X+,r22
241 00c8 7C93 st X,r23
242 00ca 4F01 movw r8,r30
243 00cc B1E0 ldi r27,1
244 00ce 8B1A sub r8,r27
245 00d0 9108 sbc r9,__zero_reg__
12:color_hsv.c **** tmp.val = (uint8_t)((int16_t)start.val + ((int16_t)end.val - (int16_t)start.val) * (int16_t)i / (
247 .LM11:
248 00d2 C701 movw r24,r14
249 00d4 B501 movw r22,r10
250 00d6 0E94 0000 call __divmodhi4
251 00da 6D0D add r22,r13
253 .LM12:
254 00dc D401 movw r26,r8
255 00de 6C93 st X,r22
13:color_hsv.c **** colors[i] = tmp;
257 .LM13:
258 00e0 8985 ldd r24,Y+9
259 00e2 9A85 ldd r25,Y+10
260 00e4 B501 movw r22,r10
261 00e6 0E94 0000 call __divmodhi4
262 00ea 6C0D add r22,r12
264 .LM14:
265 00ec 6083 st Z,r22
266 .LBE4:
9:color_hsv.c **** hsv_t tmp;
268 .LM15:
269 00ee 2F5F subi r18,-1
270 00f0 3F4F sbci r19,-1
271 00f2 3496 adiw r30,4
272 00f4 4B81 ldd r20,Y+3
273 00f6 5C81 ldd r21,Y+4
274 00f8 5A87 std Y+10,r21
275 00fa 4987 std Y+9,r20
276 00fc E980 ldd r14,Y+1
277 00fe FA80 ldd r15,Y+2
278 0100 C101 movw r24,r2
279 0102 00C0 rjmp .L3
280 .L1:
281 /* epilogue start */
282 .LBE5:
15:color_hsv.c **** }
16:color_hsv.c **** }
284 .LM16:
285 0104 2A96 adiw r28,10
286 0106 0FB6 in __tmp_reg__,__SREG__
287 0108 F894 cli
288 010a DEBF out __SP_H__,r29
289 010c 0FBE out __SREG__,__tmp_reg__
290 010e CDBF out __SP_L__,r28
291 0110 DF91 pop r29
292 0112 CF91 pop r28
293 0114 1F91 pop r17
294 0116 0F91 pop r16
295 0118 FF90 pop r15
296 011a EF90 pop r14
297 011c DF90 pop r13
298 011e CF90 pop r12
299 0120 BF90 pop r11
300 0122 AF90 pop r10
301 0124 9F90 pop r9
302 0126 8F90 pop r8
303 0128 7F90 pop r7
304 012a 6F90 pop r6
305 012c 5F90 pop r5
306 012e 4F90 pop r4
307 0130 3F90 pop r3
308 0132 2F90 pop r2
309 0134 0895 ret
317 .Lscope1:
319 .stabd 78,0,0
320 .global __floatunsisf
321 .global __divsf3
322 .global __fixunssfsi
323 .global __floatsisf
324 .global __subsf3
325 .global __mulsf3
328 .global hsv2rgb
330 hsv2rgb:
331 .stabd 46,0,0
17:color_hsv.c ****
18:color_hsv.c **** void hsv2rgbList(hsv_t* hsvList, rgb_t* rgbList, size_t count) {
19:color_hsv.c **** for(size_t i = 0; i < count; ++i) {
20:color_hsv.c **** rgbList[i] = hsv2rgb(&hsvList[i]);
21:color_hsv.c **** }
22:color_hsv.c **** }
23:color_hsv.c ****
24:color_hsv.c **** rgb_t hsv2rgb(hsv_t* hsv) {
333 .LM17:
334 .LFBB2:
335 0136 2F92 push r2
336 0138 3F92 push r3
337 013a 4F92 push r4
338 013c 5F92 push r5
339 013e 6F92 push r6
340 0140 7F92 push r7
341 0142 8F92 push r8
342 0144 9F92 push r9
343 0146 AF92 push r10
344 0148 BF92 push r11
345 014a CF92 push r12
346 014c DF92 push r13
347 014e EF92 push r14
348 0150 FF92 push r15
349 0152 0F93 push r16
350 0154 1F93 push r17
351 0156 CF93 push r28
352 0158 DF93 push r29
353 015a 00D0 rcall .
354 015c 00D0 rcall .
355 015e CDB7 in r28,__SP_L__
356 0160 DEB7 in r29,__SP_H__
357 /* prologue: function */
358 /* frame size = 4 */
359 /* stack size = 22 */
360 .L__stack_usage = 22
25:color_hsv.c **** rgb_t res;
26:color_hsv.c ****
27:color_hsv.c **** if(hsv->sat == 0) {
362 .LM18:
363 0162 FC01 movw r30,r24
364 0164 B280 ldd r11,Z+2
365 0166 3380 ldd r3,Z+3
366 0168 B110 cpse r11,__zero_reg__
367 016a 00C0 rjmp .L8
28:color_hsv.c **** res.r = res.g = res.b = hsv->val;
369 .LM19:
370 016c 232C mov r2,r3
371 016e 3B82 std Y+3,r3
372 0170 3C82 std Y+4,r3
373 0172 00C0 rjmp .L9
374 .L8:
375 0174 FC01 movw r30,r24
376 .LBB6:
29:color_hsv.c **** } else {
30:color_hsv.c **** float hue = (float) (hsv->hue<360?hsv->hue:hsv->hue-360);
378 .LM20:
379 0176 0081 ld r16,Z
380 0178 1181 ldd r17,Z+1
381 017a B801 movw r22,r16
382 017c 0836 cpi r16,104
383 017e F1E0 ldi r31,1
384 0180 1F07 cpc r17,r31
385 0182 00F0 brlo .L20
387 .LM21:
388 0184 6856 subi r22,104
389 0186 7140 sbci r23,1
390 .L20:
391 0188 80E0 ldi r24,0
392 018a 90E0 ldi r25,0
393 018c 0E94 0000 call __floatunsisf
394 0190 2B01 movw r4,r22
395 0192 3C01 movw r6,r24
31:color_hsv.c **** float val = ((float) hsv->val ) / 100.0;
397 .LM22:
398 0194 632D mov r22,r3
399 0196 70E0 ldi r23,0
400 0198 80E0 ldi r24,0
401 019a 90E0 ldi r25,0
402 019c 0E94 0000 call __floatunsisf
403 01a0 20E0 ldi r18,0
404 01a2 30E0 ldi r19,0
405 01a4 48EC ldi r20,lo8(-56)
406 01a6 52E4 ldi r21,lo8(66)
407 01a8 0E94 0000 call __divsf3
408 01ac 6B01 movw r12,r22
409 01ae 7C01 movw r14,r24
32:color_hsv.c **** float sat = ((float) hsv->sat ) / 100.0;
411 .LM23:
412 01b0 6B2D mov r22,r11
413 01b2 70E0 ldi r23,0
414 01b4 80E0 ldi r24,0
415 01b6 90E0 ldi r25,0
416 01b8 0E94 0000 call __floatunsisf
417 01bc 20E0 ldi r18,0
418 01be 30E0 ldi r19,0
419 01c0 48EC ldi r20,lo8(-56)
420 01c2 52E4 ldi r21,lo8(66)
421 01c4 0E94 0000 call __divsf3
422 01c8 4B01 movw r8,r22
423 01ca 5C01 movw r10,r24
33:color_hsv.c ****
34:color_hsv.c **** uint8_t h = hue / 60;
425 .LM24:
426 01cc 20E0 ldi r18,0
427 01ce 30E0 ldi r19,0
428 01d0 40E7 ldi r20,lo8(112)
429 01d2 52E4 ldi r21,lo8(66)
430 01d4 C301 movw r24,r6
431 01d6 B201 movw r22,r4
432 01d8 0E94 0000 call __divsf3
433 01dc 2B01 movw r4,r22
434 01de 3C01 movw r6,r24
435 01e0 0E94 0000 call __fixunssfsi
436 01e4 6A83 std Y+2,r22
35:color_hsv.c **** float f = ( hue / 60 ) - h;
438 .LM25:
439 01e6 70E0 ldi r23,0
440 01e8 80E0 ldi r24,0
441 01ea 90E0 ldi r25,0
442 01ec 0E94 0000 call __floatsisf
443 01f0 9B01 movw r18,r22
444 01f2 AC01 movw r20,r24
445 01f4 C301 movw r24,r6
446 01f6 B201 movw r22,r4
447 01f8 0E94 0000 call __subsf3
448 01fc 2B01 movw r4,r22
449 01fe 3C01 movw r6,r24
36:color_hsv.c ****
37:color_hsv.c **** uint8_t p = RGB_MAX * ( val * ( 1 - sat ));
451 .LM26:
452 0200 A501 movw r20,r10
453 0202 9401 movw r18,r8
454 0204 60E0 ldi r22,0
455 0206 70E0 ldi r23,0
456 0208 80E8 ldi r24,lo8(-128)
457 020a 9FE3 ldi r25,lo8(63)
458 020c 0E94 0000 call __subsf3
459 0210 9B01 movw r18,r22
460 0212 AC01 movw r20,r24
461 0214 C701 movw r24,r14
462 0216 B601 movw r22,r12
463 0218 0E94 0000 call __mulsf3
464 021c 20E0 ldi r18,0
465 021e 30E0 ldi r19,0
466 0220 40E0 ldi r20,0
467 0222 53E4 ldi r21,lo8(67)
468 0224 0E94 0000 call __mulsf3
469 0228 0E94 0000 call __fixunssfsi
470 022c 262E mov r2,r22
38:color_hsv.c **** uint8_t q = RGB_MAX * ( val * ( 1 - sat * f ));
472 .LM27:
473 022e A301 movw r20,r6
474 0230 9201 movw r18,r4
475 0232 C501 movw r24,r10
476 0234 B401 movw r22,r8
477 0236 0E94 0000 call __mulsf3
478 023a 9B01 movw r18,r22
479 023c AC01 movw r20,r24
480 023e 60E0 ldi r22,0
481 0240 70E0 ldi r23,0
482 0242 80E8 ldi r24,lo8(-128)
483 0244 9FE3 ldi r25,lo8(63)
484 0246 0E94 0000 call __subsf3
485 024a 9B01 movw r18,r22
486 024c AC01 movw r20,r24
487 024e C701 movw r24,r14
488 0250 B601 movw r22,r12
489 0252 0E94 0000 call __mulsf3
490 0256 20E0 ldi r18,0
491 0258 30E0 ldi r19,0
492 025a 40E0 ldi r20,0
493 025c 53E4 ldi r21,lo8(67)
494 025e 0E94 0000 call __mulsf3
495 0262 0E94 0000 call __fixunssfsi
496 0266 6983 std Y+1,r22
39:color_hsv.c **** uint8_t t = RGB_MAX * ( val * ( 1 - sat * ( 1 - f )));
498 .LM28:
499 0268 A301 movw r20,r6
500 026a 9201 movw r18,r4
501 026c 60E0 ldi r22,0
502 026e 70E0 ldi r23,0
503 0270 80E8 ldi r24,lo8(-128)
504 0272 9FE3 ldi r25,lo8(63)
505 0274 0E94 0000 call __subsf3
506 0278 9B01 movw r18,r22
507 027a AC01 movw r20,r24
508 027c C501 movw r24,r10
509 027e B401 movw r22,r8
510 0280 0E94 0000 call __mulsf3
511 0284 9B01 movw r18,r22
512 0286 AC01 movw r20,r24
513 0288 60E0 ldi r22,0
514 028a 70E0 ldi r23,0
515 028c 80E8 ldi r24,lo8(-128)
516 028e 9FE3 ldi r25,lo8(63)
517 0290 0E94 0000 call __subsf3
518 0294 9B01 movw r18,r22
519 0296 AC01 movw r20,r24
520 0298 C701 movw r24,r14
521 029a B601 movw r22,r12
522 029c 0E94 0000 call __mulsf3
523 02a0 20E0 ldi r18,0
524 02a2 30E0 ldi r19,0
525 02a4 40E0 ldi r20,0
526 02a6 53E4 ldi r21,lo8(67)
527 02a8 0E94 0000 call __mulsf3
528 02ac 0E94 0000 call __fixunssfsi
40:color_hsv.c ****
41:color_hsv.c **** switch(h) {
530 .LM29:
531 02b0 2A81 ldd r18,Y+2
532 02b2 822F mov r24,r18
533 02b4 90E0 ldi r25,0
534 02b6 8730 cpi r24,7
535 02b8 9105 cpc r25,__zero_reg__
536 02ba 00F4 brsh .L19
538 .LM30:
539 02bc FC01 movw r30,r24
540 02be E050 subi r30,lo8(-(gs(.L13)))
541 02c0 F040 sbci r31,hi8(-(gs(.L13)))
542 02c2 0C94 0000 jmp __tablejump2__
543 .section .progmem.gcc_sw_table,"a",@progbits
544 .p2align 1
545 .L13:
546 0000 0000 .word gs(.L12)
547 0002 0000 .word gs(.L14)
548 0004 0000 .word gs(.L15)
549 0006 0000 .word gs(.L16)
550 0008 0000 .word gs(.L17)
551 000a 0000 .word gs(.L18)
552 000c 0000 .word gs(.L12)
553 .text
554 .L12:
42:color_hsv.c **** case 0:
43:color_hsv.c **** case 6: res.r = hsv->val; res.g = t; res.b = p; break;
556 .LM31:
557 02c6 2B82 std Y+3,r2
558 02c8 6C83 std Y+4,r22
559 02ca 232C mov r2,r3
560 02cc 00C0 rjmp .L9
561 .L14:
44:color_hsv.c **** case 1: res.r = q; res.g = hsv->val; res.b = p; break;
563 .LM32:
564 02ce 2B82 std Y+3,r2
565 02d0 3C82 std Y+4,r3
566 02d2 2980 ldd r2,Y+1
567 02d4 00C0 rjmp .L9
568 .L15:
45:color_hsv.c **** case 2: res.r = p; res.g = hsv->val; res.b = t; break;
570 .LM33:
571 02d6 6B83 std Y+3,r22
572 02d8 3C82 std Y+4,r3
573 02da 00C0 rjmp .L9
574 .L16:
46:color_hsv.c **** case 3: res.r = p; res.g = q; res.b = hsv->val; break;
576 .LM34:
577 02dc 3B82 std Y+3,r3
578 02de 8981 ldd r24,Y+1
579 02e0 8C83 std Y+4,r24
580 02e2 00C0 rjmp .L9
581 .L17:
47:color_hsv.c **** case 4: res.r = t; res.g = p; res.b = hsv->val; break;
583 .LM35:
584 02e4 3B82 std Y+3,r3
585 02e6 2C82 std Y+4,r2
586 02e8 262E mov r2,r22
587 02ea 00C0 rjmp .L9
588 .L18:
48:color_hsv.c **** case 5: res.r = hsv->hue; res.g = p; res.b = q; break;
590 .LM36:
591 02ec E981 ldd r30,Y+1
592 02ee EB83 std Y+3,r30
593 02f0 2C82 std Y+4,r2
594 02f2 202E mov r2,r16
595 02f4 00C0 rjmp .L9
596 .L19:
41:color_hsv.c **** case 0:
598 .LM37:
599 02f6 212C mov r2,__zero_reg__
600 .L9:
601 .LBE6:
49:color_hsv.c ****
50:color_hsv.c **** }
51:color_hsv.c **** }
52:color_hsv.c **** return res;
53:color_hsv.c **** }
603 .LM38:
604 02f8 622D mov r22,r2
605 02fa 7C81 ldd r23,Y+4
606 02fc 8B81 ldd r24,Y+3
607 /* epilogue start */
608 02fe 0F90 pop __tmp_reg__
609 0300 0F90 pop __tmp_reg__
610 0302 0F90 pop __tmp_reg__
611 0304 0F90 pop __tmp_reg__
612 0306 DF91 pop r29
613 0308 CF91 pop r28
614 030a 1F91 pop r17
615 030c 0F91 pop r16
616 030e FF90 pop r15
617 0310 EF90 pop r14
618 0312 DF90 pop r13
619 0314 CF90 pop r12
620 0316 BF90 pop r11
621 0318 AF90 pop r10
622 031a 9F90 pop r9
623 031c 8F90 pop r8
624 031e 7F90 pop r7
625 0320 6F90 pop r6
626 0322 5F90 pop r5
627 0324 4F90 pop r4
628 0326 3F90 pop r3
629 0328 2F90 pop r2
630 032a 0895 ret
635 .Lscope2:
637 .stabd 78,0,0
641 .global hsv2rgbList
643 hsv2rgbList:
644 .stabd 46,0,0
18:color_hsv.c **** for(size_t i = 0; i < count; ++i) {
646 .LM39:
647 .LFBB3:
648 032c CF92 push r12
649 032e DF92 push r13
650 0330 EF92 push r14
651 0332 FF92 push r15
652 0334 0F93 push r16
653 0336 1F93 push r17
654 0338 CF93 push r28
655 033a DF93 push r29
656 /* prologue: function */
657 /* frame size = 0 */
658 /* stack size = 8 */
659 .L__stack_usage = 8
660 033c 6A01 movw r12,r20
661 033e EB01 movw r28,r22
662 0340 7C01 movw r14,r24
663 .LBB7:
19:color_hsv.c **** rgbList[i] = hsv2rgb(&hsvList[i]);
665 .LM40:
666 0342 00E0 ldi r16,0
667 0344 10E0 ldi r17,0
668 .L22:
19:color_hsv.c **** rgbList[i] = hsv2rgb(&hsvList[i]);
670 .LM41:
671 0346 0C15 cp r16,r12
672 0348 1D05 cpc r17,r13
673 034a 01F0 breq .L24
20:color_hsv.c **** }
675 .LM42:
676 034c C701 movw r24,r14
677 034e 0E94 0000 call hsv2rgb
678 0352 6993 st Y+,r22
679 0354 7993 st Y+,r23
680 0356 8993 st Y+,r24
19:color_hsv.c **** rgbList[i] = hsv2rgb(&hsvList[i]);
682 .LM43:
683 0358 0F5F subi r16,-1
684 035a 1F4F sbci r17,-1
685 035c 84E0 ldi r24,4
686 035e E80E add r14,r24
687 0360 F11C adc r15,__zero_reg__
688 0362 00C0 rjmp .L22
689 .L24:
690 /* epilogue start */
691 .LBE7:
22:color_hsv.c ****
693 .LM44:
694 0364 DF91 pop r29
695 0366 CF91 pop r28
696 0368 1F91 pop r17
697 036a 0F91 pop r16
698 036c FF90 pop r15
699 036e EF90 pop r14
700 0370 DF90 pop r13
701 0372 CF90 pop r12
702 0374 0895 ret
707 .Lscope3:
709 .stabd 78,0,0
713 .global init_hsv_t
715 init_hsv_t:
716 .stabd 46,0,0
54:color_hsv.c ****
55:color_hsv.c **** hsv_t init_hsv_t(uint16_t hue, uint8_t sat, uint8_t val) {
718 .LM45:
719 .LFBB4:
720 /* prologue: function */
721 /* frame size = 0 */
722 /* stack size = 0 */
723 .L__stack_usage = 0
724 0376 282F mov r18,r24
725 0378 862F mov r24,r22
56:color_hsv.c **** hsv_t tmp;
57:color_hsv.c **** tmp.hue = hue;
58:color_hsv.c **** tmp.sat = sat;
59:color_hsv.c **** tmp.val = val;
60:color_hsv.c ****
61:color_hsv.c **** return tmp;
62:color_hsv.c **** }
727 .LM46:
728 037a 622F mov r22,r18
729 037c 792F mov r23,r25
730 037e 942F mov r25,r20
731 0380 0895 ret
733 .Lscope4:
735 .stabd 78,0,0
737 .Letext0:
738 .ident "GCC: (GNU) 4.9.2"
DEFINED SYMBOLS
*ABS*:0000000000000000 color_hsv.c
/tmp/cclIci1E.s:2 *ABS*:000000000000003e __SP_H__
/tmp/cclIci1E.s:3 *ABS*:000000000000003d __SP_L__
/tmp/cclIci1E.s:4 *ABS*:000000000000003f __SREG__
/tmp/cclIci1E.s:5 *ABS*:0000000000000000 __tmp_reg__
/tmp/cclIci1E.s:6 *ABS*:0000000000000001 __zero_reg__
/tmp/cclIci1E.s:105 .text:0000000000000000 interpolate
/tmp/cclIci1E.s:330 .text:0000000000000136 hsv2rgb
/tmp/cclIci1E.s:643 .text:000000000000032c hsv2rgbList
/tmp/cclIci1E.s:715 .text:0000000000000376 init_hsv_t
UNDEFINED SYMBOLS
__divmodhi4
__floatunsisf
__divsf3
__fixunssfsi
__floatsisf
__subsf3
__mulsf3
__tablejump2__

Binary file not shown.

View File

@ -32,16 +32,23 @@ uint16_t volatile max = HUE_MID;
uint32_t volatile time = 0;
uint32_t volatile T_half = 0;
uint32_t volatile oldTime = 0;
uint32_t volatile cooldown = 0;
uint32_t volatile cooldown = 14000000;
//~ uint32_t volatile delay = 0;
// On External Interrupt:
ISR(INT1_vect) {
EIMSK &= 0xfd; // Disable INT1
PORTC &= 0xef; // Turn LED off while INT1 disabled
//~ uint64_t time2 = TCNT2;
//~ uint64_t time1 = TCNT1;
//~ uint64_t time0 = TCNT0;
//~ T_half = time2 | (time1 << 9) | (time0 << 26);
T_half = time + TCNT1;
//~ delay = T_half / 16;
cooldown = T_half / 2;
//~ delay = T_half / 16; //Delay for the next possible external interrupt
//~ cooldown = T_half / 2;
TCNT2 = 0; // Reset Timer/Counter2
TCNT1 = 0; // Reset Timer/Counter1
TCNT0 = 0; // Reset Timer/Counter0
time = 0;
oldTime = 0;
PORTC ^= 0x02;
@ -50,7 +57,7 @@ ISR(INT1_vect) {
//~ status = (status == 1 ? -1 : 1);
}
// On Timer Overflow Interrupt:
//~ // On Timer Overflow Interrupt:
ISR(TIMER1_OVF_vect) {
time += 0x00010000;
}
@ -67,18 +74,47 @@ int main(void) {
TCCR1B |= 0x01; // Timer/Counter1 Control Register B
// Prescale Factor 1
SREG |= 0x80; // Status Register
// Enable global interrupts
DDRC = 0x3f; // Digital Direction PORTC[5:0] = output
PORTC = 0x00;
// Timer concatenation
// Timer 2 (8 Bit, 50 ns)
//~ DDRB |= 0x08; // Digital Direction PORTB3 = output (PIN17 OC2A)
//~ PORTB |= 0x08; // POTRB3 = HIGH
//~ TCNT2 = 0x00; // Timer/Counter2 value register clear
//~ OCR2A = 0xff; // Timer/Counter2 output compare register A
//~ TIMSK2 |= 0x02; // Timer/Counter2 Interrupt Mask Register
//~ // Enable compare A match interrupt
//~ TCCR2A |= 0x40; // Timer/Counter2 Control Register A
//~ // Toggle OC2A on compare match
//~ TCCR2B |= 0x01; // Timer/Counter2 Control Register B
//~ // Prescale Factor 1
//~ // Timer 1 (16 Bit, 25.55 µs)
//~ DDRB |= 0x02; // Digital Direction PORTB1 = output (PIN15 OC1A)
//~ PORTB |= 0x02; // POTRB1 = HIGH
//~ TCNT1 = 0x0000; // Timer/Counter1 value register clear
//~ OCR1A = 0xffff; // Timer/Counter1 output compare register A
//~ TIMSK1 |= 0x02; // Timer/Counter1 Interrupt Mask Register
//~ // Enable compare register A match interrupt
//~ TCCR1A |= 0x40; // Timer/Counter1 Control Register A
//~ // Toggle OC1A on compare match
//~ TCCR1B |= 0x07; // Timer/Counter1 Control Register B
//~ // External Clock Source on T1 (PIN11) on rising edge
//~ // Timer 0 (8 Bit, 3,34891515 s)
//~ TCNT0 = 0x00; // Timer/Counter0 value register clear
//~ TCCR0B |= 0x07; // Timer/Counter0 Control Register B
//~ // External clock source on T0 (PIN6, PD4) on rising edge
// Init color
hsv_t colorsHSV[LEDS];
rgb_t colorsRGB[LEDS];
interpolate(
init_hsv_t(min, HUE_SAT, HUE_VAL), // from color
init_hsv_t(max, HUE_SAT, HUE_VAL), // to color
init_hsv_t(max, HUE_SAT, HUE_VAL), // to color
LEDS,
colorsHSV
);
@ -93,14 +129,18 @@ int main(void) {
min += sign * HUE_STEP;
max -= sign * HUE_STEP;
interpolate(
init_hsv_t(min, HUE_SAT, HUE_VAL),// from color
init_hsv_t(max, HUE_SAT, HUE_VAL), // to color
init_hsv_t(min, HUE_SAT, HUE_VAL), // from color
init_hsv_t(max, HUE_SAT, HUE_VAL), // to color
LEDS,
colorsHSV
);
hsv2rgbList(colorsHSV, colorsRGB, LEDS);
while(1) {
//~ uint64_t time2 = TCNT2;
//~ uint64_t time1 = TCNT1;
//~ uint64_t time0 = TCNT0;
//~ uint64_t now = time2 | (time1 << 9) | (time0 << 26);
uint32_t now = time + TCNT1;
//~ if(now > delay) {
//~ PORTC |= 0x08; // PORTC3 = HIGH
@ -110,7 +150,8 @@ int main(void) {
//~ }
if(now > cooldown) {
EIMSK |= 0x02; // Enable INT1
EIMSK |= 0x02; // Enable INT1
PORTC |= 0x10; // Turn on LED while INT1 enabled
}
uint32_t T_step = T_half / colorSteps;
@ -120,11 +161,11 @@ int main(void) {
oldTime += T_step;
PORTC ^= 0x04;
// Assign color
cli();
//~ EIMSK &= 0xfd; //~ cli();
for(int i = 0; i < LEDS; i++) {
writeRGB( colorsRGB[i].r, colorsRGB[i].g, colorsRGB[i].b);
}
sei();
//~ EIMSK |= 0x02; //~ sei();
//~ _delay_us(51);
// Next color

View File

@ -1 +0,0 @@
:00000001FF

Binary file not shown.

View File

@ -1,216 +0,0 @@
:100000000C943B000C9458000C945A000C9458002B
:100010000C9458000C9458000C9458000C94580000
:100020000C9458000C9458000C9458000C945800F0
:100030000C9458000C94B7000C9458000C94580081
:100040000C9458000C9458000C9458000C945800D0
:100050000C9458000C9458000C9458000C945800C0
:100060000C9458000C945800AA02AE02B202B502D9
:10007000B902BD02AA0211241FBECFEFD8E0DEBF35
:10008000CDBF11E0A0E0B1E0E0E6FDE002C00590E8
:100090000D92AA30B107D9F721E0AAE0B1E001C082
:1000A0001D92AA31B207E1F70E9408030C94AE0634
:1000B0000C9400001F920F920FB60F9211242F93F1
:1000C0003F938F939F93AF93BF93EF93FF93E998E1
:1000D0008091160190911701A0911801B09119011A
:1000E000E4E8F0E020813181820F931FA11DB11D52
:1000F0008093120190931301A0931401B093150102
:100100008091120190911301A0911401B0911501F9
:10011000B695A7959795879580930A0190930B01C3
:10012000A0930C01B0930D01118210821092160160
:1001300010921701109218011092190110920E01DD
:1001400010920F01109210011092110198B182E0EB
:10015000892788B9FF91EF91BF91AF919F918F91BE
:100160003F912F910F900FBE0F901F9018951F92E7
:100170000F920FB60F9211248F939F93AF93BF935B
:100180008091160190911701A0911801B091190169
:1001900011968093160190931701A0931801B093C4
:1001A0001901BF91AF919F918F910F900FBE0F904A
:1001B0001F901895409A00C000C000C0409800C031
:1001C00000C000C000C000C000C000C00000089512
:1001D000409A00C000C000C000C000C000C000C005
:1001E000409800C000C000C000C00895AF92BF9208
:1001F000CF92DF92EF92FF920F931F93CF93DF93F3
:10020000C82EE42EC8E0D0E000E810E0A62EB12C05
:10021000C8018A219B21892B19F00E94E80002C0A5
:100220000E94DA0015950795219791F7C8E0D0E074
:1002300000E810E0D12CC8018C219D21892B19F0F8
:100240000E94E80002C00E94DA00159507952197E8
:1002500091F7C8E0D0E000E810E0F12CC8018E2151
:100260009F21892B19F00E94E80002C00E94DA0049
:1002700015950795219791F7DF91CF911F910F91D8
:10028000FF90EF90DF90CF90BF90AF9008952F92A6
:100290003F924F925F926F927F928F929F92AF9216
:1002A000BF92CF92DF92EF92FF920F931F93CF9363
:1002B000DF93CDB7DEB72A970FB6F894DEBF0FBE37
:1002C000CDBFD82EC92EF7010130110501F13B0138
:1002D0002901461A570A842F90E0BC016D19710953
:1002E0007E836D83852F90E09C012C19310938871E
:1002F0002F8333961A861986E12CF12C80E090E04A
:1003000020E030E0580141E0A41AB10805C0608344
:100310007183828393833DC01C01240C351C4D8165
:100320005E814E0D5F1D5A8349834F8158856985D3
:100330007A85460F571F5C834B832017310749F19D
:100340004F0153E0851A9108B5010E948006660DA1
:10035000771DD4016D937C934F01B1E08B1A910806
:10036000C701B5010E9480066D0DD4016C9389858B
:100370009A85B5010E9480066C0D60832F5F3F4F08
:1003800034964B815C815A874987E980FA80C101A4
:10039000C3CF2A960FB6F894DEBF0FBECDBFDF9154
:1003A000CF911F910F91FF90EF90DF90CF90BF9072
:1003B000AF909F908F907F906F905F904F903F9005
:1003C0002F9008952F923F924F925F926F927F925B
:1003D0008F929F92AF92BF92CF92DF92EF92FF9255
:1003E0000F931F93CF93DF9300D000D0CDB7DEB72C
:1003F000FC01B2803380B11004C0232C3B823C82CC
:10040000C2C0FC0100811181B8010836F1E01F076C
:1004100010F06856714080E090E00E9485052B0145
:100420003C01632D70E080E090E00E94850520E0B3
:1004300030E048EC52E40E94E4046B017C016B2D37
:1004400070E080E090E00E94850520E030E048EC1C
:1004500052E40E94E4044B015C0120E030E040E7FC
:1004600052E4C301B2010E94E4042B013C010E944A
:1004700056056A8370E080E090E00E9487059B014A
:10048000AC01C301B2010E9477042B013C01A5011C
:10049000940160E070E080E89FE30E9477049B0194
:1004A000AC01C701B6010E94130620E030E040E035
:1004B00053E40E9413060E945605262EA3019201C2
:1004C000C501B4010E9413069B01AC0160E070E01D
:1004D00080E89FE30E9477049B01AC01C701B6014D
:1004E0000E94130620E030E040E053E40E9413062F
:1004F0000E9456056983A301920160E070E080E8E4
:100500009FE30E9477049B01AC01C501B4010E94E6
:1005100013069B01AC0160E070E080E89FE30E945D
:1005200077049B01AC01C701B6010E94130620E0CD
:1005300030E040E053E40E9413060E9456052A81F1
:10054000822F90E087309105E8F4FC01EC5CFF4FCE
:100550000C9494062B826C83232C15C02B823C8236
:10056000298011C06B833C820EC03B8289818C83C1
:100570000AC03B822C82262E06C0E981EB832C82A6
:10058000202E01C0212C622D7C818B810F900F9039
:100590000F900F90DF91CF911F910F91FF90EF90EF
:1005A000DF90CF90BF90AF909F908F907F906F9093
:1005B0005F904F903F902F900895CF92DF92EF92EF
:1005C000FF920F931F93CF93DF936A01EB017C019E
:1005D00000E010E00C151D0561F0C7010E94E2016A
:1005E0006993799389930F5F1F4F84E0E80EF11CA4
:1005F000F1CFDF91CF911F910F91FF90EF90DF909E
:10060000CF900895282F862F622F792F942F089549
:10061000CF93DF93CDB7DEB7C25DD1090FB6F894A3
:10062000DEBF0FBECDBFE99A809169008C608093D8
:10063000690080916F00816080936F0080918100DC
:100640008160809381008FB780688FBF8FE387B907
:1006500018B8809100019091010144E164E60E9484
:1006600002034B015C01809102019091030144E17E
:1006700064E60E9402039E012F5F3F4F79010EE165
:1006800010E0A50194010E9447014EE150E0BE0137
:1006900067587F4FC7010E94DD0249E7A42EB12CA5
:1006A000AC0EBD1E32E0A30EB11C4E0185ED880ECE
:1006B000911C8501D8011197C8010297F80140816A
:1006C0006C91FC0180810E94F6000D5F1F4F0815A0
:1006D000190581F78091020190910301089690938A
:1006E000030180930201809100019091010108971C
:1006F000909301018093000180910001909101018C
:1007000044E164E60E9402032B013C018091020156
:100710009091030144E164E60E9402039E012F5F71
:100720003F4F79010EE110E0A30192010E944701C1
:100730004EE150E0BE0167587F4FC7010E94DD02C5
:10074000DD24D39434E0C32E40911601509117015B
:100750006091180170911901809184009091850039
:10076000480F591F611D711D80910A0190910B0165
:10077000A0910C01B0910D0184179507A607B7074A
:1007800008F4E99A8091120190911301A09114014B
:10079000B091150125E0B695A795979587952A956F
:1007A000D1F700910E0110910F01209110013091AD
:1007B0001101080F191F2A1F3B1F041715072607D1
:1007C000370710F640910E0150910F016091100112
:1007D00070911101840F951FA61FB71F80930E0102
:1007E00090930F01A0931001B093110188B18C2553
:1007F00088B9F8948501D8011197C8010297F801CA
:1008000040816C91FC0180810E94F6000D5F1F4FBA
:100810000815190581F778948091020190910301E0
:10082000FD2D28E0F202800D911D1124909303010B
:1008300080930201809100019091010138E0F30260
:1008400080199109112490930101809300018091F6
:1008500000019091010144E164E60E9402032B0132
:100860003C01809102019091030144E164E60E9401
:100870000203FE0131967F010EE110E0A301920117
:100880000E9447014EE150E0BE0167587F4FC7010B
:100890000E94DD02F1E0DF1212C08091020190910E
:1008A00003018236924018F0DD24DA944DCF809116
:1008B0000001909101018F359140B0F345CF8FEF4A
:1008C000D81611F0D12C40CF8091020190910301F4
:1008D0008F35914018F4DD24D39436CF80910001F8
:1008E000909101018236924008F42ECFF4CF5058F7
:1008F000BB27AA270E948F040C94D9050E94CB0520
:1009000038F00E94D20520F039F49F3F19F426F404
:100910000C94C8050EF4E095E7FB0C94C205E92F92
:100920000E94EA0558F3BA17620773078407950710
:1009300020F079F4A6F50C940C060EF4E0950B2E3D
:10094000BA2FA02D0B01B90190010C01CA01A00121
:100950001124FF27591B99F0593F50F4503E68F17C
:100960001A16F040A22F232F342F4427585FF3CFBD
:10097000469537952795A795F0405395C9F77EF48E
:100980001F16BA0B620B730B840BBAF09150A1F0D7
:10099000FF0FBB1F661F771F881FC2F70EC0BA0F5D
:1009A000621F731F841F48F4879577956795B795E5
:1009B000F7959E3F08F0B0CF9395880F08F09927E0
:1009C000EE0F9795879508950E94F8040C94D90529
:1009D0000E94D20558F00E94CB0540F029F45F3FF9
:1009E00029F00C94C20551110C940D060C94C80505
:1009F0000E94EA0568F39923B1F3552391F3951BFF
:100A0000550BBB27AA2762177307840738F09F5F2F
:100A10005F4F220F331F441FAA1FA9F335D00E2E9C
:100A20003AF0E0E832D091505040E695001CCAF709
:100A30002BD0FE2F29D0660F771F881FBB1F2617CC
:100A400037074807AB07B0E809F0BB0B802DBF01A3
:100A5000FF2793585F4F3AF09E3F510578F00C9472
:100A6000C2050C940D065F3FE4F3983ED4F38695DF
:100A700077956795B795F7959F5FC9F7880F911D93
:100A80009695879597F90895E1E0660F771F881F7F
:100A9000BB1F621773078407BA0720F0621B730B32
:100AA000840BBA0BEE1F88F7E09508950E94F205BB
:100AB00088F09F5798F0B92F9927B751B0F0E1F01F
:100AC000660F771F881F991F1AF0BA95C9F714C0CF
:100AD000B13091F00E940C06B1E008950C940C0620
:100AE000672F782F8827B85F39F0B93FCCF3869508
:100AF00077956795B395D9F73EF490958095709565
:100B000061957F4F8F4F9F4F0895E89409C097FBE1
:100B10003EF490958095709561957F4F8F4F9F4FD4
:100B20009923A9F0F92F96E9BB279395F695879518
:100B300077956795B795F111F8CFFAF4BB0F11F4DB
:100B400060FF1BC06F5F7F4F8F4F9F4F16C0882382
:100B500011F096E911C0772321F09EE8872F762FB8
:100B600005C0662371F096E8862F70E060E02AF0F9
:100B70009A95660F771F881FDAF7880F96958795E5
:100B800097F9089597F99F6780E870E060E008950D
:100B90009FEF80EC089500240A9416161706180695
:100BA0000906089500240A94121613061406050671
:100BB0000895092E0394000C11F4882352F0BB0F02
:100BC00040F4BF2B11F460FF04C06F5F7F4F8F4F65
:100BD0009F4F089557FD9058440F551F59F05F3FA0
:100BE00071F04795880F97FB991F61F09F3F79F04F
:100BF00087950895121613061406551FF2CF4695D1
:100C0000F1DF08C0161617061806991FF1CF869552
:100C10007105610508940895E894BB276627772736
:100C2000CB0197F908950E9426060C94D9050E94DD
:100C3000CB0538F00E94D20520F0952311F00C94DA
:100C4000C2050C94C80511240C940D060E94EA05F7
:100C500070F3959FC1F3950F50E0551F629FF0010F
:100C6000729FBB27F00DB11D639FAA27F00DB11D28
:100C7000AA1F649F6627B00DA11D661F829F2227B1
:100C8000B00DA11D621F739FB00DA11D621F839F38
:100C9000A00D611D221F749F3327A00D611D231F0E
:100CA000849F600D211D822F762F6A2F11249F575C
:100CB00050409AF0F1F088234AF0EE0FFF1FBB1F5F
:100CC000661F771F881F91505040A9F79E3F51051E
:100CD00080F00C94C2050C940D065F3FE4F3983E3F
:100CE000D4F3869577956795B795F795E7959F5FC8
:100CF000C1F7FE2B880F911D9695879597F908955A
:100D000097FB072E16F4009407D077FD09D00E94B8
:100D10009A0607FC05D03EF4909581959F4F089563
:100D2000709561957F4F0895EE0FFF1F0590F49128
:100D3000E02D0994AA1BBB1B51E107C0AA1FBB1FD2
:100D4000A617B70710F0A61BB70B881F991F5A9557
:100D5000A9F780959095BC01CD010895F894FFCF37
:0A0D6000E001E001012000000000A6
:00000001FF

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,772 +0,0 @@
Archive member included to satisfy reference by file (symbol)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
color_hsv.o (__subsf3)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o) (__addsf3x)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
color_hsv.o (__divsf3)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o) (__divsf3x)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
color_hsv.o (__fixunssfsi)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
color_hsv.o (__floatunsisf)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_inf)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_nan)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscA)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscB)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o) (__fp_round)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_split3)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_zero)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
color_hsv.o (__mulsf3)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o) (__mulsf3x)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
color_hsv.o (__divmodhi4)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o (exit)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
color_hsv.o (__tablejump2__)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
pendulum.o (__do_copy_data)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
pendulum.o (__do_clear_bss)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
Speichereinrichtung
Name Ursprung Länge Eigenschaften
text 0x0000000000000000 0x0000000000020000 xr
data 0x0000000000800060 0x000000000000ffa0 rw !x
eeprom 0x0000000000810000 0x0000000000010000 rw !x
fuse 0x0000000000820000 0x0000000000000400 rw !x
lock 0x0000000000830000 0x0000000000000400 rw !x
signature 0x0000000000840000 0x0000000000000400 rw !x
user_signatures 0x0000000000850000 0x0000000000000400 rw !x
*default* 0x0000000000000000 0xffffffffffffffff
Linker script and memory map
Address of section .data set to 0x800100
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
LOAD pendulum.o
LOAD color_hsv.o
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a
START GROUP
LOAD /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328p.a
END GROUP
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x0000000000000000 0xd60
*(.vectors)
.vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
0x0000000000000000 __vectors
0x0000000000000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
.progmem.gcc_sw_table
0x0000000000000068 0xe color_hsv.o
0x0000000000000076 . = ALIGN (0x2)
0x0000000000000076 __trampolines_start = .
*(.trampolines)
.trampolines 0x0000000000000076 0x0 linker stubs
*(.trampolines*)
0x0000000000000076 __trampolines_end = .
*(.progmem*)
0x0000000000000076 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x0000000000000076 __ctors_start = .
*(.ctors)
0x0000000000000076 __ctors_end = .
0x0000000000000076 __dtors_start = .
*(.dtors)
0x0000000000000076 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000000000000076 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
0x0000000000000076 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000000000000076 0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x0000000000000082 0x16 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
0x0000000000000082 __do_copy_data
.init4 0x0000000000000098 0x10 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
0x0000000000000098 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000000000000a8 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
*(.init9)
*(.text)
.text 0x00000000000000b0 0x4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
0x00000000000000b0 __vector_22
0x00000000000000b0 __vector_1
0x00000000000000b0 __vector_24
0x00000000000000b0 __vector_12
0x00000000000000b0 __bad_interrupt
0x00000000000000b0 __vector_6
0x00000000000000b0 __vector_3
0x00000000000000b0 __vector_23
0x00000000000000b0 __vector_25
0x00000000000000b0 __vector_11
0x00000000000000b0 __vector_17
0x00000000000000b0 __vector_19
0x00000000000000b0 __vector_7
0x00000000000000b0 __vector_5
0x00000000000000b0 __vector_4
0x00000000000000b0 __vector_9
0x00000000000000b0 __vector_21
0x00000000000000b0 __vector_15
0x00000000000000b0 __vector_8
0x00000000000000b0 __vector_14
0x00000000000000b0 __vector_10
0x00000000000000b0 __vector_16
0x00000000000000b0 __vector_18
0x00000000000000b0 __vector_20
.text 0x00000000000000b4 0x1da pendulum.o
0x00000000000000b4 __vector_2
0x000000000000016e __vector_13
0x00000000000001b4 writeZero
0x00000000000001d0 writeOne
0x00000000000001ec writeRGB
.text 0x000000000000028e 0x382 color_hsv.o
0x000000000000028e interpolate
0x00000000000003c4 hsv2rgb
0x00000000000005ba hsv2rgbList
0x0000000000000604 init_hsv_t
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
0x0000000000000610 . = ALIGN (0x2)
*(.text.*)
.text.startup 0x0000000000000610 0x2de pendulum.o
0x0000000000000610 main
.text.avr-libc.fplib
0x00000000000008ee 0xe /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
0x00000000000008ee __subsf3
0x00000000000008f0 __addsf3
.text.avr-libc.fplib
0x00000000000008fc 0xcc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
0x000000000000091e __addsf3x
.text.avr-libc.fplib
0x00000000000009c8 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
0x00000000000009c8 __divsf3
.text.avr-libc.fplib
0x00000000000009d0 0xdc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
0x00000000000009f0 __divsf3x
0x00000000000009f6 __divsf3_pse
.text.avr-libc.fplib
0x0000000000000aac 0x5e /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
0x0000000000000aac __fixunssfsi
.text.avr-libc.fplib
0x0000000000000b0a 0x7a /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
0x0000000000000b0a __floatunsisf
0x0000000000000b0e __floatsisf
.text.avr-libc.fplib
0x0000000000000b84 0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
0x0000000000000b84 __fp_inf
.text.avr-libc.fplib
0x0000000000000b90 0x6 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
0x0000000000000b90 __fp_nan
.text.avr-libc.fplib
0x0000000000000b96 0xe /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
0x0000000000000b96 __fp_pscA
.text.avr-libc.fplib
0x0000000000000ba4 0xe /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
0x0000000000000ba4 __fp_pscB
.text.avr-libc.fplib
0x0000000000000bb2 0x22 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
0x0000000000000bb2 __fp_round
.text.avr-libc.fplib
0x0000000000000bd4 0x44 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
0x0000000000000bd4 __fp_split3
0x0000000000000be4 __fp_splitA
.text.avr-libc.fplib
0x0000000000000c18 0xe /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
0x0000000000000c18 __fp_zero
0x0000000000000c1a __fp_szero
.text.avr-libc.fplib
0x0000000000000c26 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
0x0000000000000c26 __mulsf3
.text.avr-libc.fplib
0x0000000000000c2e 0xd2 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
0x0000000000000c4c __mulsf3x
0x0000000000000c52 __mulsf3_pse
.text.libgcc.mul
0x0000000000000d00 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.div
0x0000000000000d00 0x28 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
0x0000000000000d00 __divmodhi4
0x0000000000000d00 _div
.text.libgcc 0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.prologue
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.builtins
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.fmul
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.fixed
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.mul
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.div
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc 0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.prologue
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.builtins
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.fmul
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.fixed
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.text.libgcc.mul
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.div
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.text.libgcc 0x0000000000000d28 0xc /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
0x0000000000000d28 __tablejump2__
.text.libgcc.prologue
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.builtins
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.fmul
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.fixed
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.mul
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.div
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc 0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc.mul
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.div
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc 0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.div
0x0000000000000d34 0x28 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
0x0000000000000d34 __udivmodhi4
.text.libgcc 0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.prologue
0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.builtins
0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.fmul
0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.fixed
0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
0x0000000000000d5c . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
0x0000000000000d5c exit
0x0000000000000d5c _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000000000000d5c 0x4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
*(.fini0)
0x0000000000000d60 _etext = .
.data 0x0000000000800100 0xa load address 0x0000000000000d60
0x0000000000800100 PROVIDE (__data_start, .)
*(.data)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
.data 0x0000000000800100 0x5 pendulum.o
0x0000000000800100 max
0x0000000000800102 min
0x0000000000800104 status
.data 0x0000000000800105 0x0 color_hsv.o
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
*(.data*)
*(.rodata)
.rodata 0x0000000000800105 0x4 pendulum.o
0x0000000000800105 colorSteps
*(.rodata*)
*(.gnu.linkonce.d*)
0x000000000080010a . = ALIGN (0x2)
*fill* 0x0000000000800109 0x1
0x000000000080010a _edata = .
0x000000000080010a PROVIDE (__data_end, .)
.bss 0x000000000080010a 0x10
0x000000000080010a PROVIDE (__bss_start, .)
*(.bss)
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
.bss 0x000000000080010a 0x10 pendulum.o
0x000000000080010a cooldown
0x000000000080010e oldTime
0x0000000000800112 T_half
0x0000000000800116 time
.bss 0x000000000080011a 0x0 color_hsv.o
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
*(.bss*)
*(COMMON)
0x000000000080011a PROVIDE (__bss_end, .)
0x0000000000000d60 __data_load_start = LOADADDR (.data)
0x0000000000000d6a __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x000000000080011a 0x0
0x000000000080011a PROVIDE (__noinit_start, .)
*(.noinit*)
0x000000000080011a PROVIDE (__noinit_end, .)
0x000000000080011a _end = .
0x000000000080011a PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0
*(.eeprom*)
0x0000000000810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.user_signatures
*(.user_signatures*)
.stab 0x0000000000000000 0x1110
*(.stab)
.stab 0x0000000000000000 0xab0 pendulum.o
.stab 0x0000000000000ab0 0x660 color_hsv.o
0x834 (size before relaxing)
.stabstr 0x0000000000000000 0xf67
*(.stabstr)
.stabstr 0x0000000000000000 0xf67 pendulum.o
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x0000000000000000 0x11
*(.comment)
.comment 0x0000000000000000 0x11 pendulum.o
0x12 (size before relaxing)
.comment 0x0000000000000011 0x12 color_hsv.o
.note.gnu.avr.deviceinfo
0x0000000000000000 0x40
.note.gnu.avr.deviceinfo
0x0000000000000000 0x40 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
.note.gnu.build-id
*(.note.gnu.build-id)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges
*(.debug_aranges)
.debug_pubnames
*(.debug_pubnames)
.debug_info
*(.debug_info .gnu.linkonce.wi.*)
.debug_abbrev
*(.debug_abbrev)
.debug_line
*(.debug_line .debug_line.* .debug_line_end)
.debug_frame
*(.debug_frame)
.debug_str
*(.debug_str)
.debug_loc
*(.debug_loc)
.debug_macinfo
*(.debug_macinfo)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges
*(.debug_ranges)
.debug_macro
*(.debug_macro)
OUTPUT(pendulum.elf elf32-avr)
LOAD linker stubs
Kreuzreferenz-Tabelle
Symbol Datei
T_half pendulum.o
__addsf3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
__addsf3x /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
__bad_interrupt /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__bss_end /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
__bss_start /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
__data_end /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
__data_load_start /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
__data_start /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
__divmodhi4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
color_hsv.o
__divsf3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
color_hsv.o
__divsf3_pse /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
__divsf3x /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
__do_clear_bss /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
pendulum.o
__do_copy_data /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
pendulum.o
__fixunssfsi /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
color_hsv.o
__floatsisf /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
color_hsv.o
__floatunsisf /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
color_hsv.o
__fp_inf /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
__fp_nan /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
__fp_pscA /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
__fp_pscB /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
__fp_round /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
__fp_split3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
__fp_splitA /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
__fp_szero /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
__fp_zero /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
__heap_end /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__init /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__mulsf3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
color_hsv.o
__mulsf3_pse /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
__mulsf3x /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
__stack /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__subsf3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
color_hsv.o
__tablejump2__ /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
color_hsv.o
__udivmodhi4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
__vector_1 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_10 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_11 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_12 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_13 pendulum.o
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_14 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_15 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_16 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_17 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_18 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_19 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_2 pendulum.o
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_20 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_21 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_22 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_23 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_24 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_25 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_5 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_6 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_7 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_9 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vector_default /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
__vectors /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
_div /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
_exit /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
colorSteps pendulum.o
cooldown pendulum.o
exit /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
hsv2rgb color_hsv.o
hsv2rgbList color_hsv.o
pendulum.o
init_hsv_t color_hsv.o
pendulum.o
interpolate color_hsv.o
pendulum.o
main pendulum.o
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
max pendulum.o
min pendulum.o
oldTime pendulum.o
status pendulum.o
time pendulum.o
writeOne pendulum.o
writeRGB pendulum.o
writeZero pendulum.o

Binary file not shown.

View File

@ -1,109 +0,0 @@
00000000 W __heap_end
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 W __vector_default
00000000 T __vectors
00000001 a __zero_reg__
00000001 a __zero_reg__
0000003d a __SP_L__
0000003d a __SP_L__
0000003e a __SP_H__
0000003e a __SP_H__
0000003f a __SREG__
0000003f a __SREG__
00000076 T __ctors_end
00000076 T __ctors_start
00000076 T __dtors_end
00000076 T __dtors_start
00000076 W __init
00000076 T __trampolines_end
00000076 T __trampolines_start
00000082 T __do_copy_data
00000098 T __do_clear_bss
000000a0 t .do_clear_bss_loop
000000a2 t .do_clear_bss_start
000000b0 T __bad_interrupt
000000b0 W __vector_1
000000b0 W __vector_10
000000b0 W __vector_11
000000b0 W __vector_12
000000b0 W __vector_14
000000b0 W __vector_15
000000b0 W __vector_16
000000b0 W __vector_17
000000b0 W __vector_18
000000b0 W __vector_19
000000b0 W __vector_20
000000b0 W __vector_21
000000b0 W __vector_22
000000b0 W __vector_23
000000b0 W __vector_24
000000b0 W __vector_25
000000b0 W __vector_3
000000b0 W __vector_4
000000b0 W __vector_5
000000b0 W __vector_6
000000b0 W __vector_7
000000b0 W __vector_8
000000b0 W __vector_9
000000b4 T __vector_2
00000146 T __vector_13
0000018c T writeZero
000001a8 T writeOne
000001c4 T writeRGB
00000266 T interpolate
0000039c T hsv2rgb
00000592 T hsv2rgbList
000005dc T init_hsv_t
000005e8 T main
000008ac T __subsf3
000008ae T __addsf3
000008dc T __addsf3x
000008ff W __stack
00000986 T __divsf3
000009ae T __divsf3x
000009b4 T __divsf3_pse
00000a6a T __fixunssfsi
00000ac8 T __floatunsisf
00000acc T __floatsisf
00000b42 T __fp_inf
00000b4e T __fp_nan
00000b54 T __fp_pscA
00000b62 T __fp_pscB
00000b70 T __fp_round
00000b92 T __fp_split3
00000ba2 T __fp_splitA
00000bd6 T __fp_zero
00000bd8 T __fp_szero
00000be4 T __mulsf3
00000c0a T __mulsf3x
00000c10 T __mulsf3_pse
00000cbe T _div
00000cbe T __divmodhi4
00000cd6 t __divmodhi4_neg1
00000cde t __divmodhi4_neg2
00000ce4 t __divmodhi4_exit
00000ce6 T __tablejump2__
00000cf2 T __udivmodhi4
00000cfa t __udivmodhi4_loop
00000d08 t __udivmodhi4_ep
00000d1a W exit
00000d1a T _exit
00000d1c t __stop_program
00000d1e A __data_load_start
00000d1e T _etext
00000d28 A __data_load_end
00800100 D __data_start
00800100 D max
00800102 D min
00800104 D status
00800105 D colorSteps
0080010a B __bss_start
0080010a D __data_end
0080010a D _edata
0080010a B oldTime
0080010e B T_half
00800112 B time
00800116 B __bss_end
00800116 N _end
00810000 N __eeprom_end