main.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .text 000001d6 00000000 00000000 00000094 2**0 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 00000000 00800060 000001d6 0000026a 2**0 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 00800060 000001d6 0000026a 2**0 ALLOC 3 .noinit 00000000 00800060 00800060 0000026a 2**0 CONTENTS 4 .eeprom 00000000 00810000 00810000 0000026a 2**0 CONTENTS 5 .stab 00000354 00000000 00000000 0000026c 2**2 CONTENTS, READONLY, DEBUGGING 6 .stabstr 00000084 00000000 00000000 000005c0 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_aranges 00000014 00000000 00000000 00000644 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_pubnames 00000025 00000000 00000000 00000658 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_info 000000db 00000000 00000000 0000067d 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_abbrev 00000083 00000000 00000000 00000758 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_line 000001a1 00000000 00000000 000007db 2**0 CONTENTS, READONLY, DEBUGGING 12 .debug_str 000000ab 00000000 00000000 0000097c 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end> 2: 2a c0 rjmp .+84 ; 0x58 <__bad_interrupt> 4: 29 c0 rjmp .+82 ; 0x58 <__bad_interrupt> 6: 28 c0 rjmp .+80 ; 0x58 <__bad_interrupt> 8: 27 c0 rjmp .+78 ; 0x58 <__bad_interrupt> a: 26 c0 rjmp .+76 ; 0x58 <__bad_interrupt> c: 25 c0 rjmp .+74 ; 0x58 <__bad_interrupt> e: 24 c0 rjmp .+72 ; 0x58 <__bad_interrupt> 10: 23 c0 rjmp .+70 ; 0x58 <__bad_interrupt> 12: 22 c0 rjmp .+68 ; 0x58 <__bad_interrupt> 14: 21 c0 rjmp .+66 ; 0x58 <__bad_interrupt> 16: 20 c0 rjmp .+64 ; 0x58 <__bad_interrupt> 18: 1f c0 rjmp .+62 ; 0x58 <__bad_interrupt> 1a: 1e c0 rjmp .+60 ; 0x58 <__bad_interrupt> 1c: 1d c0 rjmp .+58 ; 0x58 <__bad_interrupt> 1e: 1c c0 rjmp .+56 ; 0x58 <__bad_interrupt> 20: 1b c0 rjmp .+54 ; 0x58 <__bad_interrupt> 22: 1a c0 rjmp .+52 ; 0x58 <__bad_interrupt> 24: 19 c0 rjmp .+50 ; 0x58 <__bad_interrupt> 00000026 <__ctors_end>: 26: 11 24 eor r1, r1 28: 1f be out 0x3f, r1 ; 63 2a: cf ed ldi r28, 0xDF ; 223 2c: cd bf out 0x3d, r28 ; 61 0000002e <__do_copy_data>: 2e: 10 e0 ldi r17, 0x00 ; 0 30: a0 e6 ldi r26, 0x60 ; 96 32: b0 e0 ldi r27, 0x00 ; 0 34: e6 ed ldi r30, 0xD6 ; 214 36: f1 e0 ldi r31, 0x01 ; 1 38: 03 c0 rjmp .+6 ; 0x40 <.do_copy_data_start> 0000003a <.do_copy_data_loop>: 3a: c8 95 lpm 3c: 31 96 adiw r30, 0x01 ; 1 3e: 0d 92 st X+, r0 00000040 <.do_copy_data_start>: 40: a0 36 cpi r26, 0x60 ; 96 42: b1 07 cpc r27, r17 44: d1 f7 brne .-12 ; 0x3a <.do_copy_data_loop> 00000046 <__do_clear_bss>: 46: 10 e0 ldi r17, 0x00 ; 0 48: a0 e6 ldi r26, 0x60 ; 96 4a: b0 e0 ldi r27, 0x00 ; 0 4c: 01 c0 rjmp .+2 ; 0x50 <.do_clear_bss_start> 0000004e <.do_clear_bss_loop>: 4e: 1d 92 st X+, r1 00000050 <.do_clear_bss_start>: 50: a0 36 cpi r26, 0x60 ; 96 52: b1 07 cpc r27, r17 54: e1 f7 brne .-8 ; 0x4e <.do_clear_bss_loop> 56: 0a c0 rjmp .+20 ; 0x6c
00000058 <__bad_interrupt>: 58: d3 cf rjmp .-90 ; 0x0 <__vectors> 0000005a : void delay(void) { uint32_t waitcounter; waitcounter = 2000; 5a: 80 ed ldi r24, 0xD0 ; 208 5c: 97 e0 ldi r25, 0x07 ; 7 5e: a0 e0 ldi r26, 0x00 ; 0 60: b0 e0 ldi r27, 0x00 ; 0 while(0 != waitcounter) { waitcounter--; 62: c2 97 sbiw r24, 0x32 ; 50 64: a1 09 sbc r26, r1 66: b1 09 sbc r27, r1 68: e1 f7 brne .-8 ; 0x62 6a: 08 95 ret 0000006c
: } } int main(void) { 6c: cf ed ldi r28, 0xDF ; 223 6e: d0 e0 ldi r29, 0x00 ; 0 70: de bf out 0x3e, r29 ; 62 72: cd bf out 0x3d, r28 ; 61 uint8_t ctr; int i; //--------- // initialise the hardware DDRA = 0x03; 74: 83 e0 ldi r24, 0x03 ; 3 76: 8a bb out 0x1a, r24 ; 26 PORTA = 0x00; 78: 1b ba out 0x1b, r1 ; 27 DDRB = 0x1F; 7a: 8f e1 ldi r24, 0x1F ; 31 7c: 87 bb out 0x17, r24 ; 23 PORTB = 0x00; 7e: 18 ba out 0x18, r1 ; 24 DDRD = 0x7C; 80: 8c e7 ldi r24, 0x7C ; 124 82: 81 bb out 0x11, r24 ; 17 PORTD = 0x00; 84: 12 ba out 0x12, r1 ; 18 //--------- // the main loop while(1) { for (ctr=0; ctr<8; ctr++){ 86: ff 24 eor r15, r15 88: cb e2 ldi r28, 0x2B ; 43 8a: d1 e0 ldi r29, 0x01 ; 1 for (i=0; i<300; i++) { // LED 0 // set color PORTB = ctr*4; 8c: 0f 2d mov r16, r15 8e: 11 27 eor r17, r17 90: 91 2f mov r25, r17 92: 80 2f mov r24, r16 94: 88 0f add r24, r24 96: 99 1f adc r25, r25 98: 88 0f add r24, r24 9a: 99 1f adc r25, r25 9c: 88 bb out 0x18, r24 ; 24 // turn on LED PORTA |= 0x01; 9e: d8 9a sbi 0x1b, 0 ; 27 // the delay delay(); a0: dc df rcall .-72 ; 0x5a //turon off LED PORTA &= 0xFE; a2: d8 98 cbi 0x1b, 0 ; 27 // LED 1 // set color PORTB = ((ctr+1)%8)*4; a4: 0f 5f subi r16, 0xFF ; 255 a6: 1f 4f sbci r17, 0xFF ; 255 a8: 91 2f mov r25, r17 aa: 80 2f mov r24, r16 ac: 31 2f mov r19, r17 ae: 20 2f mov r18, r16 b0: 28 7f andi r18, 0xF8 ; 248 b2: 31 70 andi r19, 0x01 ; 1 b4: 82 1b sub r24, r18 b6: 93 0b sbc r25, r19 b8: 88 0f add r24, r24 ba: 99 1f adc r25, r25 bc: 88 0f add r24, r24 be: 99 1f adc r25, r25 c0: 88 bb out 0x18, r24 ; 24 // turn on LED PORTA |= 0x02; c2: d9 9a sbi 0x1b, 1 ; 27 // the delay delay(); c4: ca df rcall .-108 ; 0x5a //turon off LED PORTA &= 0xFD; c6: d9 98 cbi 0x1b, 1 ; 27 // LED 2 // set color PORTB = ((ctr+2)%8)*4; c8: 0f 5f subi r16, 0xFF ; 255 ca: 1f 4f sbci r17, 0xFF ; 255 cc: 91 2f mov r25, r17 ce: 80 2f mov r24, r16 d0: 31 2f mov r19, r17 d2: 20 2f mov r18, r16 d4: 28 7f andi r18, 0xF8 ; 248 d6: 31 70 andi r19, 0x01 ; 1 d8: 82 1b sub r24, r18 da: 93 0b sbc r25, r19 dc: 88 0f add r24, r24 de: 99 1f adc r25, r25 e0: 88 0f add r24, r24 e2: 99 1f adc r25, r25 e4: 88 bb out 0x18, r24 ; 24 // turn on LED PORTB |= 0x01; e6: c0 9a sbi 0x18, 0 ; 24 // the delay delay(); e8: b8 df rcall .-144 ; 0x5a //turon off LED PORTB &= 0xFE; ea: c0 98 cbi 0x18, 0 ; 24 // LED 3 // set color PORTB = ((ctr+3)%8)*4; ec: 0f 5f subi r16, 0xFF ; 255 ee: 1f 4f sbci r17, 0xFF ; 255 f0: 91 2f mov r25, r17 f2: 80 2f mov r24, r16 f4: 31 2f mov r19, r17 f6: 20 2f mov r18, r16 f8: 28 7f andi r18, 0xF8 ; 248 fa: 31 70 andi r19, 0x01 ; 1 fc: 82 1b sub r24, r18 fe: 93 0b sbc r25, r19 100: 88 0f add r24, r24 102: 99 1f adc r25, r25 104: 88 0f add r24, r24 106: 99 1f adc r25, r25 108: 88 bb out 0x18, r24 ; 24 // turn on LED PORTB |= 0x02; 10a: c1 9a sbi 0x18, 1 ; 24 // the delay delay(); 10c: a6 df rcall .-180 ; 0x5a //turon off LED PORTB &= 0xFD; 10e: c1 98 cbi 0x18, 1 ; 24 // LED 4 // set color PORTB = ((ctr+4)%8)*4; 110: 0f 5f subi r16, 0xFF ; 255 112: 1f 4f sbci r17, 0xFF ; 255 114: 91 2f mov r25, r17 116: 80 2f mov r24, r16 118: 31 2f mov r19, r17 11a: 20 2f mov r18, r16 11c: 28 7f andi r18, 0xF8 ; 248 11e: 31 70 andi r19, 0x01 ; 1 120: 82 1b sub r24, r18 122: 93 0b sbc r25, r19 124: 88 0f add r24, r24 126: 99 1f adc r25, r25 128: 88 0f add r24, r24 12a: 99 1f adc r25, r25 12c: 88 bb out 0x18, r24 ; 24 // turn on LED PORTD |= 0x04; 12e: 92 9a sbi 0x12, 2 ; 18 // the delay delay(); 130: 94 df rcall .-216 ; 0x5a //turon off LED PORTD &= 0xFB; 132: 92 98 cbi 0x12, 2 ; 18 // LED 5 // set color PORTB = ((ctr+5)%8)*4; 134: 0f 5f subi r16, 0xFF ; 255 136: 1f 4f sbci r17, 0xFF ; 255 138: 91 2f mov r25, r17 13a: 80 2f mov r24, r16 13c: 31 2f mov r19, r17 13e: 20 2f mov r18, r16 140: 28 7f andi r18, 0xF8 ; 248 142: 31 70 andi r19, 0x01 ; 1 144: 82 1b sub r24, r18 146: 93 0b sbc r25, r19 148: 88 0f add r24, r24 14a: 99 1f adc r25, r25 14c: 88 0f add r24, r24 14e: 99 1f adc r25, r25 150: 88 bb out 0x18, r24 ; 24 // turn on LED PORTD |= 0x08; 152: 93 9a sbi 0x12, 3 ; 18 // the delay delay(); 154: 82 df rcall .-252 ; 0x5a //turon off LED PORTD &= 0xF7; 156: 93 98 cbi 0x12, 3 ; 18 // LED 6 // set color PORTB = ((ctr+6)%8)*4; 158: 0f 5f subi r16, 0xFF ; 255 15a: 1f 4f sbci r17, 0xFF ; 255 15c: 91 2f mov r25, r17 15e: 80 2f mov r24, r16 160: 31 2f mov r19, r17 162: 20 2f mov r18, r16 164: 28 7f andi r18, 0xF8 ; 248 166: 31 70 andi r19, 0x01 ; 1 168: 82 1b sub r24, r18 16a: 93 0b sbc r25, r19 16c: 88 0f add r24, r24 16e: 99 1f adc r25, r25 170: 88 0f add r24, r24 172: 99 1f adc r25, r25 174: 88 bb out 0x18, r24 ; 24 // turn on LED PORTD |= 0x10; 176: 94 9a sbi 0x12, 4 ; 18 // the delay delay(); 178: 70 df rcall .-288 ; 0x5a //turon off LED PORTD &= 0xEF; 17a: 94 98 cbi 0x12, 4 ; 18 // LED 7 // set color PORTB = ((ctr+7)%8)*4; 17c: 0f 5f subi r16, 0xFF ; 255 17e: 1f 4f sbci r17, 0xFF ; 255 180: 91 2f mov r25, r17 182: 80 2f mov r24, r16 184: 31 2f mov r19, r17 186: 20 2f mov r18, r16 188: 28 7f andi r18, 0xF8 ; 248 18a: 31 70 andi r19, 0x01 ; 1 18c: 82 1b sub r24, r18 18e: 93 0b sbc r25, r19 190: 88 0f add r24, r24 192: 99 1f adc r25, r25 194: 88 0f add r24, r24 196: 99 1f adc r25, r25 198: 88 bb out 0x18, r24 ; 24 // turn on LED PORTD |= 0x20; 19a: 95 9a sbi 0x12, 5 ; 18 // the delay delay(); 19c: 5e df rcall .-324 ; 0x5a //turon off LED PORTD &= 0xDF; 19e: 95 98 cbi 0x12, 5 ; 18 // LED 8 // set color PORTB = ((ctr+8)%8)*4; 1a0: 0f 5f subi r16, 0xFF ; 255 1a2: 1f 4f sbci r17, 0xFF ; 255 1a4: 91 2f mov r25, r17 1a6: 80 2f mov r24, r16 1a8: 31 2f mov r19, r17 1aa: 20 2f mov r18, r16 1ac: 28 7f andi r18, 0xF8 ; 248 1ae: 31 70 andi r19, 0x01 ; 1 1b0: 82 1b sub r24, r18 1b2: 93 0b sbc r25, r19 1b4: 88 0f add r24, r24 1b6: 99 1f adc r25, r25 1b8: 88 0f add r24, r24 1ba: 99 1f adc r25, r25 1bc: 88 bb out 0x18, r24 ; 24 // turn on LED PORTD |= 0x40; 1be: 96 9a sbi 0x12, 6 ; 18 // the delay delay(); 1c0: 4c df rcall .-360 ; 0x5a //turon off LED PORTD &= 0xBF; 1c2: 96 98 cbi 0x12, 6 ; 18 1c4: 21 97 sbiw r28, 0x01 ; 1 1c6: d7 ff sbrs r29, 7 1c8: 61 cf rjmp .-318 ; 0x8c 1ca: f3 94 inc r15 1cc: 87 e0 ldi r24, 0x07 ; 7 1ce: 8f 15 cp r24, r15 1d0: 08 f0 brcs .+2 ; 0x1d4 <__stack+0xf5> 1d2: 5a cf rjmp .-332 ; 0x88 1d4: 58 cf rjmp .-336 ; 0x86