main.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .text 0000008a 00000000 00000000 00000094 2**0 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 00000000 00800060 0000008a 0000011e 2**0 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 00800060 0000008a 0000011e 2**0 ALLOC 3 .noinit 00000000 00800060 00800060 0000011e 2**0 CONTENTS 4 .eeprom 00000000 00810000 00810000 0000011e 2**0 CONTENTS 5 .stab 00000354 00000000 00000000 00000120 2**2 CONTENTS, READONLY, DEBUGGING 6 .stabstr 00000084 00000000 00000000 00000474 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_aranges 00000014 00000000 00000000 000004f8 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_pubnames 00000025 00000000 00000000 0000050c 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_info 000000d4 00000000 00000000 00000531 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_abbrev 00000081 00000000 00000000 00000605 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_line 000000ba 00000000 00000000 00000686 2**0 CONTENTS, READONLY, DEBUGGING 12 .debug_str 000000c6 00000000 00000000 00000740 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: ea e8 ldi r30, 0x8A ; 138 36: f0 e0 ldi r31, 0x00 ; 0 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 : //a variable is set to 50000 and then counted down to zero. void delay(void) { uint32_t waitcounter; waitcounter = 50000; 5a: 80 e5 ldi r24, 0x50 ; 80 5c: 93 ec ldi r25, 0xC3 ; 195 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 countval; int i; //--------- // initialise the hardware DDRB = 0xff; 74: 8f ef ldi r24, 0xFF ; 255 76: 87 bb out 0x17, r24 ; 23 PORTB = 0X0f; 78: 8f e0 ldi r24, 0x0F ; 15 7a: 88 bb out 0x18, r24 ; 24 //--------- // initialise the count value countval = 0; 7c: c0 e0 ldi r28, 0x00 ; 0 //--------- // the main loop while(1) { // the delay delay(); 7e: ed df rcall .-38 ; 0x5a // the new code PORTB = countval++; 80: c8 bb out 0x18, r28 ; 24 countval++; 82: ce 5f subi r28, 0xFE ; 254 if(countval>=255) countval = 0; 84: cf 3f cpi r28, 0xFF ; 255 86: d9 f7 brne .-10 ; 0x7e 88: f9 cf rjmp .-14 ; 0x7c