Go to most recent revision | Blame | Last modification | View Log | Download
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>