0,0 → 1,162 |
|
blik.elf: file format elf32-avr |
|
Sections: |
Idx Name Size VMA LMA File off Algn |
0 .text 000000d4 00000000 00000000 00000054 2**1 |
CONTENTS, ALLOC, LOAD, READONLY, CODE |
1 .stab 0000036c 00000000 00000000 00000128 2**2 |
CONTENTS, READONLY, DEBUGGING |
2 .stabstr 00000084 00000000 00000000 00000494 2**0 |
CONTENTS, READONLY, DEBUGGING |
3 .debug_aranges 00000020 00000000 00000000 00000518 2**0 |
CONTENTS, READONLY, DEBUGGING |
4 .debug_pubnames 00000028 00000000 00000000 00000538 2**0 |
CONTENTS, READONLY, DEBUGGING |
5 .debug_info 0000013d 00000000 00000000 00000560 2**0 |
CONTENTS, READONLY, DEBUGGING |
6 .debug_abbrev 000000d3 00000000 00000000 0000069d 2**0 |
CONTENTS, READONLY, DEBUGGING |
7 .debug_line 000000fc 00000000 00000000 00000770 2**0 |
CONTENTS, READONLY, DEBUGGING |
8 .debug_frame 00000030 00000000 00000000 0000086c 2**0 |
CONTENTS, READONLY, DEBUGGING |
9 .debug_str 000000dd 00000000 00000000 0000089c 2**0 |
CONTENTS, READONLY, DEBUGGING |
10 .debug_loc 00000028 00000000 00000000 00000979 2**0 |
CONTENTS, READONLY, DEBUGGING |
Disassembly of section .text: |
|
00000000 <__vectors>: |
0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end> |
4: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
8: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
10: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
14: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
18: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
1c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
20: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
24: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
28: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
2c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
30: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
34: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
38: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
3c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
40: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
44: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
48: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
4c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
50: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
54: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
58: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
5c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
60: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
64: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
|
00000068 <__ctors_end>: |
68: 11 24 eor r1, r1 |
6a: 1f be out 0x3f, r1 ; 63 |
6c: cf ef ldi r28, 0xFF ; 255 |
6e: d4 e0 ldi r29, 0x04 ; 4 |
70: de bf out 0x3e, r29 ; 62 |
72: cd bf out 0x3d, r28 ; 61 |
|
00000074 <__do_copy_data>: |
74: 11 e0 ldi r17, 0x01 ; 1 |
76: a0 e0 ldi r26, 0x00 ; 0 |
78: b1 e0 ldi r27, 0x01 ; 1 |
7a: e4 ed ldi r30, 0xD4 ; 212 |
7c: f0 e0 ldi r31, 0x00 ; 0 |
7e: 02 c0 rjmp .+4 ; 0x84 <.do_copy_data_start> |
|
00000080 <.do_copy_data_loop>: |
80: 05 90 lpm r0, Z+ |
82: 0d 92 st X+, r0 |
|
00000084 <.do_copy_data_start>: |
84: a0 30 cpi r26, 0x00 ; 0 |
86: b1 07 cpc r27, r17 |
88: d9 f7 brne .-10 ; 0x80 <.do_copy_data_loop> |
|
0000008a <__do_clear_bss>: |
8a: 11 e0 ldi r17, 0x01 ; 1 |
8c: a0 e0 ldi r26, 0x00 ; 0 |
8e: b1 e0 ldi r27, 0x01 ; 1 |
90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start> |
|
00000092 <.do_clear_bss_loop>: |
92: 1d 92 st X+, r1 |
|
00000094 <.do_clear_bss_start>: |
94: a0 30 cpi r26, 0x00 ; 0 |
96: b1 07 cpc r27, r17 |
98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop> |
9a: 0c 94 5e 00 jmp 0xbc ; 0xbc <main> |
|
0000009e <__bad_interrupt>: |
9e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> |
|
000000a2 <delay_ms>: |
|
|
void delay_ms(unsigned int ms) |
/* delay for a minimum of <ms> */ |
{ |
a2: 9c 01 movw r18, r24 |
a4: e0 e8 ldi r30, 0x80 ; 128 |
a6: f7 e0 ldi r31, 0x07 ; 7 |
a8: 05 c0 rjmp .+10 ; 0xb4 <delay_ms+0x12> |
*/ |
void |
_delay_loop_2(uint16_t __count) |
{ |
__asm__ volatile ( |
aa: cf 01 movw r24, r30 |
ac: 01 97 sbiw r24, 0x01 ; 1 |
ae: f1 f7 brne .-4 ; 0xac <delay_ms+0xa> |
// we use a calibrated macro. This is more |
// accurate and not so much compiler dependent |
// as self made code. |
while(ms){ |
_delay_ms(0.96); |
ms--; |
b0: 21 50 subi r18, 0x01 ; 1 |
b2: 30 40 sbci r19, 0x00 ; 0 |
b4: 21 15 cp r18, r1 |
b6: 31 05 cpc r19, r1 |
b8: c1 f7 brne .-16 ; 0xaa <delay_ms+0x8> |
ba: 08 95 ret |
|
000000bc <main>: |
} |
} |
|
|
/* new style */ |
int main(void) |
{ |
bc: 3d 9a sbi 0x07, 5 ; 7 |
/* INITIALIZE */ |
/* enable PC5 as output */ |
DDRC|= (1<<DDC5); |
|
/* PC5 is 5 (see file include/avr/iom8.h) and 1<<PC5 is 00100000 |
* This can also be written as _BV(PC5)*/ |
while (1) { |
/* led on, pin=0 */ |
PORTC &= ~(1<<PC5); |
be: 45 98 cbi 0x08, 5 ; 8 |
delay_ms(50); |
c0: 82 e3 ldi r24, 0x32 ; 50 |
c2: 90 e0 ldi r25, 0x00 ; 0 |
c4: 0e 94 51 00 call 0xa2 ; 0xa2 <delay_ms> |
/* set output to 5V, LED off */ |
PORTC|= (1<<PC5); |
c8: 45 9a sbi 0x08, 5 ; 8 |
delay_ms(50); |
ca: 82 e3 ldi r24, 0x32 ; 50 |
cc: 90 e0 ldi r25, 0x00 ; 0 |
ce: 0e 94 51 00 call 0xa2 ; 0xa2 <delay_ms> |
d2: f5 cf rjmp .-22 ; 0xbe <main+0x2> |