Вс авг 06, 2017 23:07:27
Вс авг 06, 2017 23:13:28
void my_delay_ms(uint16_t ms)
{
ms = ms * 10 + 1;
while( --ms > 0 ) {
// wait 1/10 ms
_delay_loop_2( ((F_CPU) / 4e3) / 10 );
}
}
Вс авг 06, 2017 23:17:41
Вс авг 06, 2017 23:23:27
стоит попробовать скомпилить через make
Пн авг 07, 2017 14:44:29
Пн авг 07, 2017 15:15:53
- при создании проекта в C::B ставишь галочку создавать файл листинга
в каталоге Debug или Release появляется файл lss - его и смотришь
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRD = 0x03;
PORTD = 0x00;
while(1){
if (PIND&(1<<PD2)){
PORTD |= (1<<PD0);
_delay_ms(200);
PORTD &= ~(1<<PD0);
}
}
return 0;
}
bin\Release\attempt.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000054 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000054 000000e8 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .fuse 00000003 00820000 00820000 000000e8 2**0
CONTENTS, ALLOC, LOAD, DATA
3 .comment 00000030 00000000 00000000 000000eb 2**0
CONTENTS, READONLY
4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 0000011c 2**2
CONTENTS, READONLY
5 .debug_info 0000040e 00000000 00000000 0000015c 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 000003d7 00000000 00000000 0000056a 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 0000001a 00000000 00000000 00000941 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_str 00000163 00000000 00000000 0000095b 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 17 c0 rjmp .+46 ; 0x32 <__bad_interrupt>
4: 16 c0 rjmp .+44 ; 0x32 <__bad_interrupt>
6: 15 c0 rjmp .+42 ; 0x32 <__bad_interrupt>
8: 14 c0 rjmp .+40 ; 0x32 <__bad_interrupt>
a: 13 c0 rjmp .+38 ; 0x32 <__bad_interrupt>
c: 12 c0 rjmp .+36 ; 0x32 <__bad_interrupt>
e: 11 c0 rjmp .+34 ; 0x32 <__bad_interrupt>
10: 10 c0 rjmp .+32 ; 0x32 <__bad_interrupt>
12: 0f c0 rjmp .+30 ; 0x32 <__bad_interrupt>
14: 0e c0 rjmp .+28 ; 0x32 <__bad_interrupt>
16: 0d c0 rjmp .+26 ; 0x32 <__bad_interrupt>
18: 0c c0 rjmp .+24 ; 0x32 <__bad_interrupt>
1a: 0b c0 rjmp .+22 ; 0x32 <__bad_interrupt>
1c: 0a c0 rjmp .+20 ; 0x32 <__bad_interrupt>
1e: 09 c0 rjmp .+18 ; 0x32 <__bad_interrupt>
20: 08 c0 rjmp .+16 ; 0x32 <__bad_interrupt>
22: 07 c0 rjmp .+14 ; 0x32 <__bad_interrupt>
24: 06 c0 rjmp .+12 ; 0x32 <__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
2e: 02 d0 rcall .+4 ; 0x34 <main>
30: 0f c0 rjmp .+30 ; 0x50 <_exit>
00000032 <__bad_interrupt>:
32: e6 cf rjmp .-52 ; 0x0 <__vectors>
00000034 <main>:
34: 83 e0 ldi r24, 0x03 ; 3
36: 81 bb out 0x11, r24 ; 17
38: 12 ba out 0x12, r1 ; 18
3a: 82 9b sbis 0x10, 2 ; 16
3c: fe cf rjmp .-4 ; 0x3a <main+0x6>
3e: 90 9a sbi 0x12, 0 ; 18
40: 8f e4 ldi r24, 0x4F ; 79
42: 93 ec ldi r25, 0xC3 ; 195
44: 01 97 sbiw r24, 0x01 ; 1
46: f1 f7 brne .-4 ; 0x44 <__SREG__+0x5>
48: 00 c0 rjmp .+0 ; 0x4a <__SREG__+0xb>
4a: 00 00 nop
4c: 90 98 cbi 0x12, 0 ; 18
4e: f5 cf rjmp .-22 ; 0x3a <main+0x6>
00000050 <_exit>:
50: f8 94 cli
00000052 <__stop_program>:
52: ff cf rjmp .-2 ; 0x52 <__stop_program>
bin\Debug\attempt.sys: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000392 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000392 00000426 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .fuse 00000003 00820000 00820000 00000426 2**0
CONTENTS, ALLOC, LOAD, DATA
3 .comment 00000030 00000000 00000000 00000429 2**0
CONTENTS, READONLY
4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 0000045c 2**2
CONTENTS, READONLY
5 .debug_aranges 00000020 00000000 00000000 0000049c 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 0000001d 00000000 00000000 000004bc 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 00000600 00000000 00000000 000004d9 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 00000501 00000000 00000000 00000ad9 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 00000207 00000000 00000000 00000fda 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_frame 00000034 00000000 00000000 000011e4 2**2
CONTENTS, READONLY, DEBUGGING
11 .debug_str 00000297 00000000 00000000 00001218 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 00000047 00000000 00000000 000014af 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 17 c0 rjmp .+46 ; 0x32 <__bad_interrupt>
4: 16 c0 rjmp .+44 ; 0x32 <__bad_interrupt>
6: 15 c0 rjmp .+42 ; 0x32 <__bad_interrupt>
8: 14 c0 rjmp .+40 ; 0x32 <__bad_interrupt>
a: 13 c0 rjmp .+38 ; 0x32 <__bad_interrupt>
c: 12 c0 rjmp .+36 ; 0x32 <__bad_interrupt>
e: 11 c0 rjmp .+34 ; 0x32 <__bad_interrupt>
10: 10 c0 rjmp .+32 ; 0x32 <__bad_interrupt>
12: 0f c0 rjmp .+30 ; 0x32 <__bad_interrupt>
14: 0e c0 rjmp .+28 ; 0x32 <__bad_interrupt>
16: 0d c0 rjmp .+26 ; 0x32 <__bad_interrupt>
18: 0c c0 rjmp .+24 ; 0x32 <__bad_interrupt>
1a: 0b c0 rjmp .+22 ; 0x32 <__bad_interrupt>
1c: 0a c0 rjmp .+20 ; 0x32 <__bad_interrupt>
1e: 09 c0 rjmp .+18 ; 0x32 <__bad_interrupt>
20: 08 c0 rjmp .+16 ; 0x32 <__bad_interrupt>
22: 07 c0 rjmp .+14 ; 0x32 <__bad_interrupt>
24: 06 c0 rjmp .+12 ; 0x32 <__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
2e: 02 d0 rcall .+4 ; 0x34 <main>
30: ae c1 rjmp .+860 ; 0x38e <_exit>
00000032 <__bad_interrupt>:
32: e6 cf rjmp .-52 ; 0x0 <__vectors>
00000034 <main>:
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
34: cf 93 push r28
36: df 93 push r29
38: cd b7 in r28, 0x3d ; 61
3a: dd 27 eor r29, r29
3c: ce 50 subi r28, 0x0E ; 14
3e: cd bf out 0x3d, r28 ; 61
DDRD = 0x03;
40: 81 e3 ldi r24, 0x31 ; 49
42: 90 e0 ldi r25, 0x00 ; 0
44: 23 e0 ldi r18, 0x03 ; 3
46: fc 01 movw r30, r24
48: 20 83 st Z, r18
PORTD = 0x00;
4a: 82 e3 ldi r24, 0x32 ; 50
4c: 90 e0 ldi r25, 0x00 ; 0
4e: fc 01 movw r30, r24
50: 10 82 st Z, r1
while(1){
if (PIND&(1<<PD2)){
52: 80 e3 ldi r24, 0x30 ; 48
54: 90 e0 ldi r25, 0x00 ; 0
56: fc 01 movw r30, r24
58: 80 81 ld r24, Z
5a: 88 2f mov r24, r24
5c: 90 e0 ldi r25, 0x00 ; 0
5e: 84 70 andi r24, 0x04 ; 4
60: 99 27 eor r25, r25
62: 89 2b or r24, r25
64: b1 f3 breq .-20 ; 0x52 <__SREG__+0x13>
PORTD |= (1<<PD0);
66: 82 e3 ldi r24, 0x32 ; 50
68: 90 e0 ldi r25, 0x00 ; 0
6a: 22 e3 ldi r18, 0x32 ; 50
6c: 30 e0 ldi r19, 0x00 ; 0
6e: f9 01 movw r30, r18
70: 20 81 ld r18, Z
72: 21 60 ori r18, 0x01 ; 1
74: fc 01 movw r30, r24
76: 20 83 st Z, r18
78: 80 e0 ldi r24, 0x00 ; 0
7a: 90 e0 ldi r25, 0x00 ; 0
7c: a8 e4 ldi r26, 0x48 ; 72
7e: b3 e4 ldi r27, 0x43 ; 67
80: 89 83 std Y+1, r24 ; 0x01
82: 9a 83 std Y+2, r25 ; 0x02
84: ab 83 std Y+3, r26 ; 0x03
86: bc 83 std Y+4, r27 ; 0x04
__builtin_avr_delay_cycles(__ticks_dc);
#else
uint16_t __ticks;
__tmp = ((F_CPU) / 4e3) * __ms;
88: 20 e0 ldi r18, 0x00 ; 0
8a: 30 e0 ldi r19, 0x00 ; 0
8c: 4a e7 ldi r20, 0x7A ; 122
8e: 53 e4 ldi r21, 0x43 ; 67
90: 69 81 ldd r22, Y+1 ; 0x01
92: 7a 81 ldd r23, Y+2 ; 0x02
94: 8b 81 ldd r24, Y+3 ; 0x03
96: 9c 81 ldd r25, Y+4 ; 0x04
98: e7 d0 rcall .+462 ; 0x268 <__mulsf3>
9a: dc 01 movw r26, r24
9c: cb 01 movw r24, r22
9e: 8d 83 std Y+5, r24 ; 0x05
a0: 9e 83 std Y+6, r25 ; 0x06
a2: af 83 std Y+7, r26 ; 0x07
a4: b8 87 std Y+8, r27 ; 0x08
if (__tmp < 1.0)
a6: 20 e0 ldi r18, 0x00 ; 0
a8: 30 e0 ldi r19, 0x00 ; 0
aa: 40 e8 ldi r20, 0x80 ; 128
ac: 5f e3 ldi r21, 0x3F ; 63
ae: 6d 81 ldd r22, Y+5 ; 0x05
b0: 7e 81 ldd r23, Y+6 ; 0x06
b2: 8f 81 ldd r24, Y+7 ; 0x07
b4: 98 85 ldd r25, Y+8 ; 0x08
b6: 56 d0 rcall .+172 ; 0x164 <__cmpsf2>
b8: 88 23 and r24, r24
ba: 2c f4 brge .+10 ; 0xc6 <__SREG__+0x87>
__ticks = 1;
bc: 81 e0 ldi r24, 0x01 ; 1
be: 90 e0 ldi r25, 0x00 ; 0
c0: 9a 87 std Y+10, r25 ; 0x0a
c2: 89 87 std Y+9, r24 ; 0x09
c4: 3b c0 rjmp .+118 ; 0x13c <__stack+0x5d>
else if (__tmp > 65535)
c6: 20 e0 ldi r18, 0x00 ; 0
c8: 3f ef ldi r19, 0xFF ; 255
ca: 4f e7 ldi r20, 0x7F ; 127
cc: 57 e4 ldi r21, 0x47 ; 71
ce: 6d 81 ldd r22, Y+5 ; 0x05
d0: 7e 81 ldd r23, Y+6 ; 0x06
d2: 8f 81 ldd r24, Y+7 ; 0x07
d4: 98 85 ldd r25, Y+8 ; 0x08
d6: c4 d0 rcall .+392 ; 0x260 <__gesf2>
d8: 18 16 cp r1, r24
da: 3c f5 brge .+78 ; 0x12a <__stack+0x4b>
{
// __ticks = requested delay in 1/10 ms
__ticks = (uint16_t) (__ms * 10.0);
dc: 20 e0 ldi r18, 0x00 ; 0
de: 30 e0 ldi r19, 0x00 ; 0
e0: 40 e2 ldi r20, 0x20 ; 32
e2: 51 e4 ldi r21, 0x41 ; 65
e4: 69 81 ldd r22, Y+1 ; 0x01
e6: 7a 81 ldd r23, Y+2 ; 0x02
e8: 8b 81 ldd r24, Y+3 ; 0x03
ea: 9c 81 ldd r25, Y+4 ; 0x04
ec: bd d0 rcall .+378 ; 0x268 <__mulsf3>
ee: dc 01 movw r26, r24
f0: cb 01 movw r24, r22
f2: bc 01 movw r22, r24
f4: cd 01 movw r24, r26
f6: 3a d0 rcall .+116 ; 0x16c <__fixunssfsi>
f8: dc 01 movw r26, r24
fa: cb 01 movw r24, r22
fc: 9a 87 std Y+10, r25 ; 0x0a
fe: 89 87 std Y+9, r24 ; 0x09
100: 0f c0 rjmp .+30 ; 0x120 <__stack+0x41>
102: 89 e1 ldi r24, 0x19 ; 25
104: 90 e0 ldi r25, 0x00 ; 0
106: 9c 87 std Y+12, r25 ; 0x0c
108: 8b 87 std Y+11, r24 ; 0x0b
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
10a: 8b 85 ldd r24, Y+11 ; 0x0b
10c: 9c 85 ldd r25, Y+12 ; 0x0c
10e: 01 97 sbiw r24, 0x01 ; 1
110: f1 f7 brne .-4 ; 0x10e <__stack+0x2f>
112: 9c 87 std Y+12, r25 ; 0x0c
114: 8b 87 std Y+11, r24 ; 0x0b
while(__ticks)
{
// wait 1/10 ms
_delay_loop_2(((F_CPU) / 4e3) / 10);
__ticks --;
116: 89 85 ldd r24, Y+9 ; 0x09
118: 9a 85 ldd r25, Y+10 ; 0x0a
11a: 01 97 sbiw r24, 0x01 ; 1
11c: 9a 87 std Y+10, r25 ; 0x0a
11e: 89 87 std Y+9, r24 ; 0x09
__ticks = 1;
else if (__tmp > 65535)
{
// __ticks = requested delay in 1/10 ms
__ticks = (uint16_t) (__ms * 10.0);
while(__ticks)
120: 89 85 ldd r24, Y+9 ; 0x09
122: 9a 85 ldd r25, Y+10 ; 0x0a
124: 89 2b or r24, r25
126: 69 f7 brne .-38 ; 0x102 <__stack+0x23>
128: 13 c0 rjmp .+38 ; 0x150 <__stack+0x71>
__ticks --;
}
return;
}
else
__ticks = (uint16_t)__tmp;
12a: 6d 81 ldd r22, Y+5 ; 0x05
12c: 7e 81 ldd r23, Y+6 ; 0x06
12e: 8f 81 ldd r24, Y+7 ; 0x07
130: 98 85 ldd r25, Y+8 ; 0x08
132: 1c d0 rcall .+56 ; 0x16c <__fixunssfsi>
134: dc 01 movw r26, r24
136: cb 01 movw r24, r22
138: 9a 87 std Y+10, r25 ; 0x0a
13a: 89 87 std Y+9, r24 ; 0x09
13c: 89 85 ldd r24, Y+9 ; 0x09
13e: 9a 85 ldd r25, Y+10 ; 0x0a
140: 9e 87 std Y+14, r25 ; 0x0e
142: 8d 87 std Y+13, r24 ; 0x0d
144: 8d 85 ldd r24, Y+13 ; 0x0d
146: 9e 85 ldd r25, Y+14 ; 0x0e
148: 01 97 sbiw r24, 0x01 ; 1
14a: f1 f7 brne .-4 ; 0x148 <__stack+0x69>
14c: 9e 87 std Y+14, r25 ; 0x0e
14e: 8d 87 std Y+13, r24 ; 0x0d
_delay_ms(200);
PORTD &= ~(1<<PD0);
150: 82 e3 ldi r24, 0x32 ; 50
152: 90 e0 ldi r25, 0x00 ; 0
154: 22 e3 ldi r18, 0x32 ; 50
156: 30 e0 ldi r19, 0x00 ; 0
158: f9 01 movw r30, r18
15a: 20 81 ld r18, Z
15c: 2e 7f andi r18, 0xFE ; 254
15e: fc 01 movw r30, r24
160: 20 83 st Z, r18
}
}
162: 77 cf rjmp .-274 ; 0x52 <__SREG__+0x13>
00000164 <__cmpsf2>:
164: 2f d0 rcall .+94 ; 0x1c4 <__fp_cmp>
166: 08 f4 brcc .+2 ; 0x16a <__cmpsf2+0x6>
168: 81 e0 ldi r24, 0x01 ; 1
16a: 08 95 ret
0000016c <__fixunssfsi>:
16c: 57 d0 rcall .+174 ; 0x21c <__fp_splitA>
16e: 88 f0 brcs .+34 ; 0x192 <__fixunssfsi+0x26>
170: 9f 57 subi r25, 0x7F ; 127
172: 90 f0 brcs .+36 ; 0x198 <__fixunssfsi+0x2c>
174: b9 2f mov r27, r25
176: 99 27 eor r25, r25
178: b7 51 subi r27, 0x17 ; 23
17a: a0 f0 brcs .+40 ; 0x1a4 <__fixunssfsi+0x38>
17c: d1 f0 breq .+52 ; 0x1b2 <__fixunssfsi+0x46>
17e: 66 0f add r22, r22
180: 77 1f adc r23, r23
182: 88 1f adc r24, r24
184: 99 1f adc r25, r25
186: 1a f0 brmi .+6 ; 0x18e <__fixunssfsi+0x22>
188: ba 95 dec r27
18a: c9 f7 brne .-14 ; 0x17e <__fixunssfsi+0x12>
18c: 12 c0 rjmp .+36 ; 0x1b2 <__fixunssfsi+0x46>
18e: b1 30 cpi r27, 0x01 ; 1
190: 81 f0 breq .+32 ; 0x1b2 <__fixunssfsi+0x46>
192: 5e d0 rcall .+188 ; 0x250 <__fp_zero>
194: b1 e0 ldi r27, 0x01 ; 1
196: 08 95 ret
198: 5b c0 rjmp .+182 ; 0x250 <__fp_zero>
19a: 67 2f mov r22, r23
19c: 78 2f mov r23, r24
19e: 88 27 eor r24, r24
1a0: b8 5f subi r27, 0xF8 ; 248
1a2: 39 f0 breq .+14 ; 0x1b2 <__fixunssfsi+0x46>
1a4: b9 3f cpi r27, 0xF9 ; 249
1a6: cc f3 brlt .-14 ; 0x19a <__fixunssfsi+0x2e>
1a8: 86 95 lsr r24
1aa: 77 95 ror r23
1ac: 67 95 ror r22
1ae: b3 95 inc r27
1b0: d9 f7 brne .-10 ; 0x1a8 <__fixunssfsi+0x3c>
1b2: 3e f4 brtc .+14 ; 0x1c2 <__fixunssfsi+0x56>
1b4: 90 95 com r25
1b6: 80 95 com r24
1b8: 70 95 com r23
1ba: 61 95 neg r22
1bc: 7f 4f sbci r23, 0xFF ; 255
1be: 8f 4f sbci r24, 0xFF ; 255
1c0: 9f 4f sbci r25, 0xFF ; 255
1c2: 08 95 ret
000001c4 <__fp_cmp>:
1c4: 99 0f add r25, r25
1c6: 00 08 sbc r0, r0
1c8: 55 0f add r21, r21
1ca: aa 0b sbc r26, r26
1cc: e0 e8 ldi r30, 0x80 ; 128
1ce: fe ef ldi r31, 0xFE ; 254
1d0: 16 16 cp r1, r22
1d2: 17 06 cpc r1, r23
1d4: e8 07 cpc r30, r24
1d6: f9 07 cpc r31, r25
1d8: c0 f0 brcs .+48 ; 0x20a <__fp_cmp+0x46>
1da: 12 16 cp r1, r18
1dc: 13 06 cpc r1, r19
1de: e4 07 cpc r30, r20
1e0: f5 07 cpc r31, r21
1e2: 98 f0 brcs .+38 ; 0x20a <__fp_cmp+0x46>
1e4: 62 1b sub r22, r18
1e6: 73 0b sbc r23, r19
1e8: 84 0b sbc r24, r20
1ea: 95 0b sbc r25, r21
1ec: 39 f4 brne .+14 ; 0x1fc <__fp_cmp+0x38>
1ee: 0a 26 eor r0, r26
1f0: 61 f0 breq .+24 ; 0x20a <__fp_cmp+0x46>
1f2: 23 2b or r18, r19
1f4: 24 2b or r18, r20
1f6: 25 2b or r18, r21
1f8: 21 f4 brne .+8 ; 0x202 <__fp_cmp+0x3e>
1fa: 08 95 ret
1fc: 0a 26 eor r0, r26
1fe: 09 f4 brne .+2 ; 0x202 <__fp_cmp+0x3e>
200: a1 40 sbci r26, 0x01 ; 1
202: a6 95 lsr r26
204: 8f ef ldi r24, 0xFF ; 255
206: 81 1d adc r24, r1
208: 81 1d adc r24, r1
20a: 08 95 ret
0000020c <__fp_split3>:
20c: 57 fd sbrc r21, 7
20e: 90 58 subi r25, 0x80 ; 128
210: 44 0f add r20, r20
212: 55 1f adc r21, r21
214: 59 f0 breq .+22 ; 0x22c <__fp_splitA+0x10>
216: 5f 3f cpi r21, 0xFF ; 255
218: 71 f0 breq .+28 ; 0x236 <__fp_splitA+0x1a>
21a: 47 95 ror r20
0000021c <__fp_splitA>:
21c: 88 0f add r24, r24
21e: 97 fb bst r25, 7
220: 99 1f adc r25, r25
222: 61 f0 breq .+24 ; 0x23c <__fp_splitA+0x20>
224: 9f 3f cpi r25, 0xFF ; 255
226: 79 f0 breq .+30 ; 0x246 <__fp_splitA+0x2a>
228: 87 95 ror r24
22a: 08 95 ret
22c: 12 16 cp r1, r18
22e: 13 06 cpc r1, r19
230: 14 06 cpc r1, r20
232: 55 1f adc r21, r21
234: f2 cf rjmp .-28 ; 0x21a <__fp_split3+0xe>
236: 46 95 lsr r20
238: f1 df rcall .-30 ; 0x21c <__fp_splitA>
23a: 08 c0 rjmp .+16 ; 0x24c <__fp_splitA+0x30>
23c: 16 16 cp r1, r22
23e: 17 06 cpc r1, r23
240: 18 06 cpc r1, r24
242: 99 1f adc r25, r25
244: f1 cf rjmp .-30 ; 0x228 <__fp_splitA+0xc>
246: 86 95 lsr r24
248: 71 05 cpc r23, r1
24a: 61 05 cpc r22, r1
24c: 08 94 sec
24e: 08 95 ret
00000250 <__fp_zero>:
250: e8 94 clt
00000252 <__fp_szero>:
252: bb 27 eor r27, r27
254: 66 27 eor r22, r22
256: 77 27 eor r23, r23
258: 86 2f mov r24, r22
25a: 97 2f mov r25, r23
25c: 97 f9 bld r25, 7
25e: 08 95 ret
00000260 <__gesf2>:
260: b1 df rcall .-158 ; 0x1c4 <__fp_cmp>
262: 08 f4 brcc .+2 ; 0x266 <__gesf2+0x6>
264: 8f ef ldi r24, 0xFF ; 255
266: 08 95 ret
00000268 <__mulsf3>:
268: 0a d0 rcall .+20 ; 0x27e <__mulsf3x>
26a: 80 c0 rjmp .+256 ; 0x36c <__fp_round>
26c: 71 d0 rcall .+226 ; 0x350 <__fp_pscA>
26e: 28 f0 brcs .+10 ; 0x27a <__mulsf3+0x12>
270: 76 d0 rcall .+236 ; 0x35e <__fp_pscB>
272: 18 f0 brcs .+6 ; 0x27a <__mulsf3+0x12>
274: 95 23 and r25, r21
276: 09 f0 breq .+2 ; 0x27a <__mulsf3+0x12>
278: 62 c0 rjmp .+196 ; 0x33e <__fp_inf>
27a: 67 c0 rjmp .+206 ; 0x34a <__fp_nan>
27c: ea cf rjmp .-44 ; 0x252 <__fp_szero>
0000027e <__mulsf3x>:
27e: c6 df rcall .-116 ; 0x20c <__fp_split3>
280: a8 f3 brcs .-22 ; 0x26c <__mulsf3+0x4>
00000282 <__mulsf3_pse>:
282: 99 23 and r25, r25
284: d9 f3 breq .-10 ; 0x27c <__mulsf3+0x14>
286: 55 23 and r21, r21
288: c9 f3 breq .-14 ; 0x27c <__mulsf3+0x14>
28a: 95 0f add r25, r21
28c: 50 e0 ldi r21, 0x00 ; 0
28e: 55 1f adc r21, r21
290: aa 27 eor r26, r26
292: ee 27 eor r30, r30
294: ff 27 eor r31, r31
296: bb 27 eor r27, r27
298: 00 24 eor r0, r0
29a: 08 94 sec
29c: 67 95 ror r22
29e: 20 f4 brcc .+8 ; 0x2a8 <__mulsf3_pse+0x26>
2a0: e2 0f add r30, r18
2a2: f3 1f adc r31, r19
2a4: b4 1f adc r27, r20
2a6: 0a 1e adc r0, r26
2a8: 22 0f add r18, r18
2aa: 33 1f adc r19, r19
2ac: 44 1f adc r20, r20
2ae: aa 1f adc r26, r26
2b0: 66 95 lsr r22
2b2: a9 f7 brne .-22 ; 0x29e <__mulsf3_pse+0x1c>
2b4: 77 95 ror r23
2b6: 30 f4 brcc .+12 ; 0x2c4 <__mulsf3_pse+0x42>
2b8: f3 0f add r31, r19
2ba: b4 1f adc r27, r20
2bc: 0a 1e adc r0, r26
2be: 12 1e adc r1, r18
2c0: 08 f4 brcc .+2 ; 0x2c4 <__mulsf3_pse+0x42>
2c2: 63 95 inc r22
2c4: 33 0f add r19, r19
2c6: 44 1f adc r20, r20
2c8: aa 1f adc r26, r26
2ca: 22 1f adc r18, r18
2cc: 76 95 lsr r23
2ce: 99 f7 brne .-26 ; 0x2b6 <__mulsf3_pse+0x34>
2d0: 87 95 ror r24
2d2: 20 f4 brcc .+8 ; 0x2dc <__mulsf3_pse+0x5a>
2d4: b4 0f add r27, r20
2d6: 0a 1e adc r0, r26
2d8: 12 1e adc r1, r18
2da: 63 1f adc r22, r19
2dc: 44 0f add r20, r20
2de: aa 1f adc r26, r26
2e0: 22 1f adc r18, r18
2e2: 33 1f adc r19, r19
2e4: 86 95 lsr r24
2e6: a9 f7 brne .-22 ; 0x2d2 <__mulsf3_pse+0x50>
2e8: 86 2f mov r24, r22
2ea: 71 2d mov r23, r1
2ec: 60 2d mov r22, r0
2ee: 11 24 eor r1, r1
2f0: 9f 57 subi r25, 0x7F ; 127
2f2: 50 40 sbci r21, 0x00 ; 0
2f4: 8a f0 brmi .+34 ; 0x318 <__mulsf3_pse+0x96>
2f6: e1 f0 breq .+56 ; 0x330 <__mulsf3_pse+0xae>
2f8: 88 23 and r24, r24
2fa: 4a f0 brmi .+18 ; 0x30e <__mulsf3_pse+0x8c>
2fc: ee 0f add r30, r30
2fe: ff 1f adc r31, r31
300: bb 1f adc r27, r27
302: 66 1f adc r22, r22
304: 77 1f adc r23, r23
306: 88 1f adc r24, r24
308: 91 50 subi r25, 0x01 ; 1
30a: 50 40 sbci r21, 0x00 ; 0
30c: a9 f7 brne .-22 ; 0x2f8 <__mulsf3_pse+0x76>
30e: 9e 3f cpi r25, 0xFE ; 254
310: 51 05 cpc r21, r1
312: 70 f0 brcs .+28 ; 0x330 <__mulsf3_pse+0xae>
314: 14 c0 rjmp .+40 ; 0x33e <__fp_inf>
316: 9d cf rjmp .-198 ; 0x252 <__fp_szero>
318: 5f 3f cpi r21, 0xFF ; 255
31a: ec f3 brlt .-6 ; 0x316 <__mulsf3_pse+0x94>
31c: 98 3e cpi r25, 0xE8 ; 232
31e: dc f3 brlt .-10 ; 0x316 <__mulsf3_pse+0x94>
320: 86 95 lsr r24
322: 77 95 ror r23
324: 67 95 ror r22
326: b7 95 ror r27
328: f7 95 ror r31
32a: e7 95 ror r30
32c: 9f 5f subi r25, 0xFF ; 255
32e: c1 f7 brne .-16 ; 0x320 <__mulsf3_pse+0x9e>
330: fe 2b or r31, r30
332: 88 0f add r24, r24
334: 91 1d adc r25, r1
336: 96 95 lsr r25
338: 87 95 ror r24
33a: 97 f9 bld r25, 7
33c: 08 95 ret
0000033e <__fp_inf>:
33e: 97 f9 bld r25, 7
340: 9f 67 ori r25, 0x7F ; 127
342: 80 e8 ldi r24, 0x80 ; 128
344: 70 e0 ldi r23, 0x00 ; 0
346: 60 e0 ldi r22, 0x00 ; 0
348: 08 95 ret
0000034a <__fp_nan>:
34a: 9f ef ldi r25, 0xFF ; 255
34c: 80 ec ldi r24, 0xC0 ; 192
34e: 08 95 ret
00000350 <__fp_pscA>:
350: 00 24 eor r0, r0
352: 0a 94 dec r0
354: 16 16 cp r1, r22
356: 17 06 cpc r1, r23
358: 18 06 cpc r1, r24
35a: 09 06 cpc r0, r25
35c: 08 95 ret
0000035e <__fp_pscB>:
35e: 00 24 eor r0, r0
360: 0a 94 dec r0
362: 12 16 cp r1, r18
364: 13 06 cpc r1, r19
366: 14 06 cpc r1, r20
368: 05 06 cpc r0, r21
36a: 08 95 ret
0000036c <__fp_round>:
36c: 09 2e mov r0, r25
36e: 03 94 inc r0
370: 00 0c add r0, r0
372: 11 f4 brne .+4 ; 0x378 <__fp_round+0xc>
374: 88 23 and r24, r24
376: 52 f0 brmi .+20 ; 0x38c <__fp_round+0x20>
378: bb 0f add r27, r27
37a: 40 f4 brcc .+16 ; 0x38c <__fp_round+0x20>
37c: bf 2b or r27, r31
37e: 11 f4 brne .+4 ; 0x384 <__fp_round+0x18>
380: 60 ff sbrs r22, 0
382: 04 c0 rjmp .+8 ; 0x38c <__fp_round+0x20>
384: 6f 5f subi r22, 0xFF ; 255
386: 7f 4f sbci r23, 0xFF ; 255
388: 8f 4f sbci r24, 0xFF ; 255
38a: 9f 4f sbci r25, 0xFF ; 255
38c: 08 95 ret
0000038e <_exit>:
38e: f8 94 cli
00000390 <__stop_program>:
390: ff cf rjmp .-2 ; 0x390 <__stop_program>
Пн авг 07, 2017 21:39:56
for(;;) {
PORTD |= (1<<PD0);
_delay_ms(1000);
PORTD &= ~(1<<PD0);
_delay_ms(1000);
}
Пн авг 07, 2017 21:54:51
стоит просто помигать светодиодом - посмотреть будет ли работать:
Ср авг 09, 2017 13:28:14
Ср авг 09, 2017 19:51:32