Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
14 | walter | 1 | |
2 | IR-Tx_V0_02.elf: file format elf32-avr |
||
3 | |||
4 | Sections: |
||
5 | Idx Name Size VMA LMA File off Algn |
||
6 | |||
7 | CONTENTS, ALLOC, LOAD, READONLY, CODE |
||
8 | 1 .data 00000006 00800060 00000664 000006f8 2**0 |
||
9 | CONTENTS, ALLOC, LOAD, DATA |
||
10 | 2 .bss 00000015 00800066 00800066 000006fe 2**0 |
||
11 | ALLOC |
||
12 | 3 .stab 00000378 00000000 00000000 00000700 2**2 |
||
13 | CONTENTS, READONLY, DEBUGGING |
||
14 | 4 .stabstr 00000071 00000000 00000000 00000a78 2**0 |
||
15 | CONTENTS, READONLY, DEBUGGING |
||
16 | 5 .debug_aranges 00000040 00000000 00000000 00000ae9 2**0 |
||
17 | CONTENTS, READONLY, DEBUGGING |
||
18 | 6 .debug_pubnames 000000ff 00000000 00000000 00000b29 2**0 |
||
19 | CONTENTS, READONLY, DEBUGGING |
||
20 | 7 .debug_info 0000036d 00000000 00000000 00000c28 2**0 |
||
21 | CONTENTS, READONLY, DEBUGGING |
||
22 | 8 .debug_abbrev 000001b4 00000000 00000000 00000f95 2**0 |
||
23 | CONTENTS, READONLY, DEBUGGING |
||
24 | 9 .debug_line 0000059c 00000000 00000000 00001149 2**0 |
||
25 | CONTENTS, READONLY, DEBUGGING |
||
26 | 10 .debug_frame 000000c0 00000000 00000000 000016e8 2**2 |
||
27 | CONTENTS, READONLY, DEBUGGING |
||
28 | 11 .debug_str 00000147 00000000 00000000 000017a8 2**0 |
||
29 | CONTENTS, READONLY, DEBUGGING |
||
30 | 12 .debug_loc 00000130 00000000 00000000 000018ef 2**0 |
||
31 | CONTENTS, READONLY, DEBUGGING |
||
32 | Disassembly of section .text: |
||
33 | |||
34 | 00000000 <__vectors>: |
||
35 | 0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end> |
||
36 | 2: 2c c0 rjmp .+88 ; 0x5c <__bad_interrupt> |
||
37 | 4: 2b c0 rjmp .+86 ; 0x5c <__bad_interrupt> |
||
38 | 6: 2a c0 rjmp .+84 ; 0x5c <__bad_interrupt> |
||
39 | 8: 29 c0 rjmp .+82 ; 0x5c <__bad_interrupt> |
||
40 | a: 3a c0 rjmp .+116 ; 0x80 <__vector_5> |
||
41 | c: 27 c0 rjmp .+78 ; 0x5c <__bad_interrupt> |
||
42 | e: 26 c0 rjmp .+76 ; 0x5c <__bad_interrupt> |
||
43 | 10: 26 c0 rjmp .+76 ; 0x5e <__vector_8> |
||
44 | 12: ac c0 rjmp .+344 ; 0x16c <__vector_9> |
||
45 | 14: 23 c0 rjmp .+70 ; 0x5c <__bad_interrupt> |
||
46 | 16: 22 c0 rjmp .+68 ; 0x5c <__bad_interrupt> |
||
47 | 18: 21 c0 rjmp .+66 ; 0x5c <__bad_interrupt> |
||
48 | 1a: 20 c0 rjmp .+64 ; 0x5c <__bad_interrupt> |
||
49 | 1c: 1f c0 rjmp .+62 ; 0x5c <__bad_interrupt> |
||
50 | 1e: 1e c0 rjmp .+60 ; 0x5c <__bad_interrupt> |
||
51 | 20: 1d c0 rjmp .+58 ; 0x5c <__bad_interrupt> |
||
52 | 22: 1c c0 rjmp .+56 ; 0x5c <__bad_interrupt> |
||
53 | 24: 1b c0 rjmp .+54 ; 0x5c <__bad_interrupt> |
||
54 | |||
55 | 00000026 <__ctors_end>: |
||
56 | 26: 11 24 eor r1, r1 |
||
57 | 28: 1f be out 0x3f, r1 ; 63 |
||
58 | 2a: cf e5 ldi r28, 0x5F ; 95 |
||
59 | 2c: d4 e0 ldi r29, 0x04 ; 4 |
||
60 | 2e: de bf out 0x3e, r29 ; 62 |
||
61 | 30: cd bf out 0x3d, r28 ; 61 |
||
62 | |||
63 | 00000032 <__do_copy_data>: |
||
64 | 32: 10 e0 ldi r17, 0x00 ; 0 |
||
65 | 34: a0 e6 ldi r26, 0x60 ; 96 |
||
66 | 36: b0 e0 ldi r27, 0x00 ; 0 |
||
67 | 38: e4 e6 ldi r30, 0x64 ; 100 |
||
68 | 3a: f6 e0 ldi r31, 0x06 ; 6 |
||
69 | 3c: 02 c0 rjmp .+4 ; 0x42 <.do_copy_data_start> |
||
70 | |||
71 | 0000003e <.do_copy_data_loop>: |
||
72 | 3e: 05 90 lpm r0, Z+ |
||
73 | 40: 0d 92 st X+, r0 |
||
74 | |||
75 | 00000042 <.do_copy_data_start>: |
||
76 | 42: a6 36 cpi r26, 0x66 ; 102 |
||
77 | 44: b1 07 cpc r27, r17 |
||
78 | 46: d9 f7 brne .-10 ; 0x3e <.do_copy_data_loop> |
||
79 | |||
80 | 00000048 <__do_clear_bss>: |
||
81 | 48: 10 e0 ldi r17, 0x00 ; 0 |
||
82 | 4a: a6 e6 ldi r26, 0x66 ; 102 |
||
83 | 4c: b0 e0 ldi r27, 0x00 ; 0 |
||
84 | 4e: 01 c0 rjmp .+2 ; 0x52 <.do_clear_bss_start> |
||
85 | |||
86 | 00000050 <.do_clear_bss_loop>: |
||
87 | 50: 1d 92 st X+, r1 |
||
88 | |||
89 | 00000052 <.do_clear_bss_start>: |
||
90 | 52: ab 37 cpi r26, 0x7B ; 123 |
||
91 | 54: b1 07 cpc r27, r17 |
||
92 | 56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop> |
||
93 | 58: 18 d1 rcall .+560 ; 0x28a <main> |
||
94 | 5a: 03 c3 rjmp .+1542 ; 0x662 <_exit> |
||
95 | |||
96 | 0000005c <__bad_interrupt>: |
||
97 | 5c: d1 cf rjmp .-94 ; 0x0 <__vectors> |
||
98 | |||
99 | 0000005e <__vector_8>: |
||
100 | volatile unsigned char IRbit = 0; |
||
101 | |||
102 | |||
103 | SIGNAL(SIG_OVERFLOW1) |
||
104 | { |
||
105 | 5e: 1f 92 push r1 |
||
106 | 60: 0f 92 push r0 |
||
107 | 62: 0f b6 in r0, 0x3f ; 63 |
||
108 | 64: 0f 92 push r0 |
||
109 | 66: 11 24 eor r1, r1 |
||
110 | 68: 8f 93 push r24 |
||
111 | TMR1OvF++; |
||
112 | 6a: 80 91 69 00 lds r24, 0x0069 |
||
113 | 6e: 8f 5f subi r24, 0xFF ; 255 |
||
114 | 70: 80 93 69 00 sts 0x0069, r24 |
||
115 | 74: 8f 91 pop r24 |
||
116 | 76: 0f 90 pop r0 |
||
117 | 78: 0f be out 0x3f, r0 ; 63 |
||
118 | 7a: 0f 90 pop r0 |
||
119 | 7c: 1f 90 pop r1 |
||
120 | 7e: 18 95 reti |
||
121 | |||
122 | 00000080 <__vector_5>: |
||
123 | } |
||
124 | |||
125 | |||
126 | SIGNAL(SIG_INPUT_CAPTURE1) |
||
127 | { |
||
128 | 80: 1f 92 push r1 |
||
129 | 82: 0f 92 push r0 |
||
130 | 84: 0f b6 in r0, 0x3f ; 63 |
||
131 | 86: 0f 92 push r0 |
||
132 | 88: 11 24 eor r1, r1 |
||
133 | 8a: 2f 93 push r18 |
||
134 | 8c: 3f 93 push r19 |
||
135 | 8e: 4f 93 push r20 |
||
136 | 90: 8f 93 push r24 |
||
137 | 92: 9f 93 push r25 |
||
138 | static unsigned int pos_ICR; |
||
139 | static unsigned int ppm; |
||
140 | |||
141 | if ((TCCR1B & (1<<ICES1)) != 0) |
||
142 | 94: 0e b4 in r0, 0x2e ; 46 |
||
143 | 96: 06 fe sbrs r0, 6 |
||
144 | 98: 0c c0 rjmp .+24 ; 0xb2 <__vector_5+0x32> |
||
145 | { |
||
146 | TCCR1B &= ~(1<<ICES1); //invert trigger |
||
147 | 9a: 8e b5 in r24, 0x2e ; 46 |
||
148 | 9c: 8f 7b andi r24, 0xBF ; 191 |
||
149 | 9e: 8e bd out 0x2e, r24 ; 46 |
||
150 | TMR1OvF = 0; |
||
151 | a0: 10 92 69 00 sts 0x0069, r1 |
||
152 | pos_ICR = ICR1; |
||
153 | a4: 86 b5 in r24, 0x26 ; 38 |
||
154 | a6: 97 b5 in r25, 0x27 ; 39 |
||
155 | a8: 90 93 70 00 sts 0x0070, r25 |
||
156 | ac: 80 93 6f 00 sts 0x006F, r24 |
||
157 | b0: 49 c0 rjmp .+146 ; 0x144 <__vector_5+0xc4> |
||
158 | } |
||
159 | else //Negative Flanke |
||
160 | { |
||
161 | TCCR1B |= (1<<ICES1); |
||
162 | b2: 8e b5 in r24, 0x2e ; 46 |
||
163 | b4: 80 64 ori r24, 0x40 ; 64 |
||
164 | b6: 8e bd out 0x2e, r24 ; 46 |
||
165 | ppm = (ICR1 - pos_ICR + (int) TMR1OvF * 65536); |
||
166 | b8: 26 b5 in r18, 0x26 ; 38 |
||
167 | ba: 37 b5 in r19, 0x27 ; 39 |
||
168 | bc: 80 91 69 00 lds r24, 0x0069 |
||
169 | c0: 80 91 6f 00 lds r24, 0x006F |
||
170 | c4: 90 91 70 00 lds r25, 0x0070 |
||
171 | c8: 28 1b sub r18, r24 |
||
172 | ca: 39 0b sbc r19, r25 |
||
173 | cc: 30 93 6e 00 sts 0x006E, r19 |
||
174 | d0: 20 93 6d 00 sts 0x006D, r18 |
||
175 | if ((ppm > 600) && (ppm < 2400)) |
||
176 | d4: c9 01 movw r24, r18 |
||
177 | d6: 89 55 subi r24, 0x59 ; 89 |
||
178 | d8: 92 40 sbci r25, 0x02 ; 2 |
||
179 | da: 87 50 subi r24, 0x07 ; 7 |
||
180 | dc: 97 40 sbci r25, 0x07 ; 7 |
||
181 | de: 90 f5 brcc .+100 ; 0x144 <__vector_5+0xc4> |
||
182 | { |
||
183 | if (ppm > 2100) ppm = 2100; |
||
184 | e0: 88 e0 ldi r24, 0x08 ; 8 |
||
185 | e2: 25 33 cpi r18, 0x35 ; 53 |
||
186 | e4: 38 07 cpc r19, r24 |
||
187 | e6: 18 f0 brcs .+6 ; 0xee <__vector_5+0x6e> |
||
188 | e8: 84 e3 ldi r24, 0x34 ; 52 |
||
189 | ea: 98 e0 ldi r25, 0x08 ; 8 |
||
190 | ec: 05 c0 rjmp .+10 ; 0xf8 <__vector_5+0x78> |
||
191 | if (ppm < 900) ppm = 900; |
||
192 | ee: 24 58 subi r18, 0x84 ; 132 |
||
193 | f0: 33 40 sbci r19, 0x03 ; 3 |
||
194 | f2: 30 f4 brcc .+12 ; 0x100 <__vector_5+0x80> |
||
195 | f4: 84 e8 ldi r24, 0x84 ; 132 |
||
196 | f6: 93 e0 ldi r25, 0x03 ; 3 |
||
197 | f8: 90 93 6e 00 sts 0x006E, r25 |
||
198 | fc: 80 93 6d 00 sts 0x006D, r24 |
||
199 | ppm = (ppm_signal * 7 + ppm) / 8; |
||
200 | 100: 20 91 66 00 lds r18, 0x0066 |
||
201 | 104: 30 91 67 00 lds r19, 0x0067 |
||
202 | 108: c9 01 movw r24, r18 |
||
203 | 10a: 43 e0 ldi r20, 0x03 ; 3 |
||
204 | 10c: 88 0f add r24, r24 |
||
205 | 10e: 99 1f adc r25, r25 |
||
206 | 110: 4a 95 dec r20 |
||
207 | 112: e1 f7 brne .-8 ; 0x10c <__vector_5+0x8c> |
||
208 | 114: 82 1b sub r24, r18 |
||
209 | 116: 93 0b sbc r25, r19 |
||
210 | 118: 20 91 6d 00 lds r18, 0x006D |
||
211 | 11c: 30 91 6e 00 lds r19, 0x006E |
||
212 | 120: 82 0f add r24, r18 |
||
213 | 122: 93 1f adc r25, r19 |
||
214 | 124: 23 e0 ldi r18, 0x03 ; 3 |
||
215 | 126: 96 95 lsr r25 |
||
216 | 128: 87 95 ror r24 |
||
217 | 12a: 2a 95 dec r18 |
||
218 | 12c: e1 f7 brne .-8 ; 0x126 <__vector_5+0xa6> |
||
219 | 12e: 90 93 6e 00 sts 0x006E, r25 |
||
220 | 132: 80 93 6d 00 sts 0x006D, r24 |
||
221 | ppm_signal = ppm; |
||
222 | 136: 90 93 67 00 sts 0x0067, r25 |
||
223 | 13a: 80 93 66 00 sts 0x0066, r24 |
||
224 | ppm_new = 1; |
||
225 | 13e: 81 e0 ldi r24, 0x01 ; 1 |
||
226 | 140: 80 93 68 00 sts 0x0068, r24 |
||
227 | 144: 9f 91 pop r25 |
||
228 | 146: 8f 91 pop r24 |
||
229 | 148: 4f 91 pop r20 |
||
230 | 14a: 3f 91 pop r19 |
||
231 | 14c: 2f 91 pop r18 |
||
232 | 14e: 0f 90 pop r0 |
||
233 | 150: 0f be out 0x3f, r0 ; 63 |
||
234 | 152: 0f 90 pop r0 |
||
235 | 154: 1f 90 pop r1 |
||
236 | 156: 18 95 reti |
||
237 | |||
238 | 00000158 <StartIRModulation>: |
||
239 | } |
||
240 | |||
241 | } |
||
242 | |||
243 | } |
||
244 | |||
245 | |||
246 | |||
247 | /*##############################################################################*/ |
||
248 | void StartIRModulation(void) |
||
249 | { |
||
250 | 158: 89 e0 ldi r24, 0x09 ; 9 |
||
251 | 15a: 85 bd out 0x25, r24 ; 37 |
||
252 | //Timer1 Config for generation the 38Khz IR Modulation |
||
253 | TCCR2 = (0<<FOC2)|(0<<WGM20)|(0<<COM21)|(0<<COM20)| |
||
254 | (1<<WGM21) |(0<<CS22) |(0<<CS21) |(1<<CS20); |
||
255 | |||
256 | OCR2 = 108; //~38Khz @ 8Mhz |
||
257 | 15c: 8c e6 ldi r24, 0x6C ; 108 |
||
258 | 15e: 83 bd out 0x23, r24 ; 35 |
||
259 | |||
260 | //Timer 0 Config for getting right timing for IR Pattern |
||
261 | TCCR0 = (1<<CS02)|(0<<CS01)|(1<<CS00); // clk(@8MHz) / 1024 = 128us / clk (resolution) |
||
262 | 160: 85 e0 ldi r24, 0x05 ; 5 |
||
263 | 162: 83 bf out 0x33, r24 ; 51 |
||
264 | TIMSK &= ~(1<<TOIE0); // |
||
265 | 164: 89 b7 in r24, 0x39 ; 57 |
||
266 | 166: 8e 7f andi r24, 0xFE ; 254 |
||
267 | 168: 89 bf out 0x39, r24 ; 57 |
||
268 | 16a: 08 95 ret |
||
269 | |||
270 | 0000016c <__vector_9>: |
||
271 | |||
272 | } |
||
273 | |||
274 | |||
275 | SIGNAL(SIG_OVERFLOW0) |
||
276 | { |
||
277 | 16c: 1f 92 push r1 |
||
278 | 16e: 0f 92 push r0 |
||
279 | 170: 0f b6 in r0, 0x3f ; 63 |
||
280 | 172: 0f 92 push r0 |
||
281 | 174: 11 24 eor r1, r1 |
||
282 | 176: 8f 93 push r24 |
||
283 | 178: 9f 93 push r25 |
||
284 | |||
285 | switch (IRstate) |
||
286 | 17a: 90 91 6a 00 lds r25, 0x006A |
||
287 | 17e: 92 30 cpi r25, 0x02 ; 2 |
||
288 | 180: b1 f0 breq .+44 ; 0x1ae <__vector_9+0x42> |
||
289 | 182: 93 30 cpi r25, 0x03 ; 3 |
||
290 | 184: 20 f4 brcc .+8 ; 0x18e <__vector_9+0x22> |
||
291 | 186: 91 30 cpi r25, 0x01 ; 1 |
||
292 | 188: 09 f0 breq .+2 ; 0x18c <__vector_9+0x20> |
||
293 | 18a: 52 c0 rjmp .+164 ; 0x230 <__vector_9+0xc4> |
||
294 | 18c: 06 c0 rjmp .+12 ; 0x19a <__vector_9+0x2e> |
||
295 | 18e: 93 30 cpi r25, 0x03 ; 3 |
||
296 | 190: e9 f0 breq .+58 ; 0x1cc <__vector_9+0x60> |
||
297 | 192: 94 30 cpi r25, 0x04 ; 4 |
||
298 | 194: 09 f0 breq .+2 ; 0x198 <__vector_9+0x2c> |
||
299 | 196: 4c c0 rjmp .+152 ; 0x230 <__vector_9+0xc4> |
||
300 | 198: 36 c0 rjmp .+108 ; 0x206 <__vector_9+0x9a> |
||
301 | { |
||
302 | case 1: |
||
303 | TCCR2 setbit (1<<COM20); |
||
304 | 19a: 85 b5 in r24, 0x25 ; 37 |
||
305 | 19c: 80 61 ori r24, 0x10 ; 16 |
||
306 | 19e: 85 bd out 0x25, r24 ; 37 |
||
307 | IRstate = 2; |
||
308 | 1a0: 82 e0 ldi r24, 0x02 ; 2 |
||
309 | 1a2: 80 93 6a 00 sts 0x006A, r24 |
||
310 | IRbit = 0; |
||
311 | 1a6: 10 92 6c 00 sts 0x006C, r1 |
||
312 | TCNT0 = 255 - (13000 / 128); |
||
313 | 1aa: 8a e9 ldi r24, 0x9A ; 154 |
||
314 | 1ac: 0b c0 rjmp .+22 ; 0x1c4 <__vector_9+0x58> |
||
315 | break; |
||
316 | case 2: |
||
317 | TCCR2 clrbit (1<<COM20); |
||
318 | 1ae: 85 b5 in r24, 0x25 ; 37 |
||
319 | 1b0: 8f 7e andi r24, 0xEF ; 239 |
||
320 | 1b2: 85 bd out 0x25, r24 ; 37 |
||
321 | IRstate = 3; |
||
322 | 1b4: 83 e0 ldi r24, 0x03 ; 3 |
||
323 | 1b6: 80 93 6a 00 sts 0x006A, r24 |
||
324 | if ((IRdat & 0x40) == 0) TCNT0 = 255 - (1000 / 128); |
||
325 | 1ba: 80 91 6b 00 lds r24, 0x006B |
||
326 | 1be: 86 fd sbrc r24, 6 |
||
327 | 1c0: 03 c0 rjmp .+6 ; 0x1c8 <__vector_9+0x5c> |
||
328 | 1c2: 88 ef ldi r24, 0xF8 ; 248 |
||
329 | 1c4: 82 bf out 0x32, r24 ; 50 |
||
330 | 1c6: 39 c0 rjmp .+114 ; 0x23a <__vector_9+0xce> |
||
331 | else TCNT0 = 255 - (3000 / 128); |
||
332 | 1c8: 88 ee ldi r24, 0xE8 ; 232 |
||
333 | 1ca: fc cf rjmp .-8 ; 0x1c4 <__vector_9+0x58> |
||
334 | break; |
||
335 | case 3: |
||
336 | TCCR2 setbit (1<<COM20); |
||
337 | 1cc: 85 b5 in r24, 0x25 ; 37 |
||
338 | 1ce: 80 61 ori r24, 0x10 ; 16 |
||
339 | 1d0: 85 bd out 0x25, r24 ; 37 |
||
340 | TCNT0 = 255 - (1000 / 128); |
||
341 | 1d2: 88 ef ldi r24, 0xF8 ; 248 |
||
342 | 1d4: 82 bf out 0x32, r24 ; 50 |
||
343 | IRdat = IRdat << 1; |
||
344 | 1d6: 80 91 6b 00 lds r24, 0x006B |
||
345 | 1da: 88 0f add r24, r24 |
||
346 | 1dc: 80 93 6b 00 sts 0x006B, r24 |
||
347 | IRbit++; |
||
348 | 1e0: 80 91 6c 00 lds r24, 0x006C |
||
349 | 1e4: 8f 5f subi r24, 0xFF ; 255 |
||
350 | 1e6: 80 93 6c 00 sts 0x006C, r24 |
||
351 | if (IRbit < 7) IRstate = 2; |
||
352 | 1ea: 80 91 6c 00 lds r24, 0x006C |
||
353 | 1ee: 87 30 cpi r24, 0x07 ; 7 |
||
354 | 1f0: 20 f4 brcc .+8 ; 0x1fa <__vector_9+0x8e> |
||
355 | 1f2: 82 e0 ldi r24, 0x02 ; 2 |
||
356 | 1f4: 80 93 6a 00 sts 0x006A, r24 |
||
357 | 1f8: 20 c0 rjmp .+64 ; 0x23a <__vector_9+0xce> |
||
358 | else |
||
359 | { |
||
360 | IRstate = 4; |
||
361 | 1fa: 84 e0 ldi r24, 0x04 ; 4 |
||
362 | 1fc: 80 93 6a 00 sts 0x006A, r24 |
||
363 | IRbit = 0; |
||
364 | 200: 10 92 6c 00 sts 0x006C, r1 |
||
365 | 204: 1a c0 rjmp .+52 ; 0x23a <__vector_9+0xce> |
||
366 | } |
||
367 | break; |
||
368 | case 4: |
||
369 | TCCR2 clrbit (1<<COM20); |
||
370 | 206: 85 b5 in r24, 0x25 ; 37 |
||
371 | 208: 8f 7e andi r24, 0xEF ; 239 |
||
372 | 20a: 85 bd out 0x25, r24 ; 37 |
||
373 | TCNT0 = 255 - (25000 / 128); |
||
374 | 20c: 8c e3 ldi r24, 0x3C ; 60 |
||
375 | 20e: 82 bf out 0x32, r24 ; 50 |
||
376 | if (IRbit < 20) IRstate = 4; |
||
377 | 210: 80 91 6c 00 lds r24, 0x006C |
||
378 | 214: 84 31 cpi r24, 0x14 ; 20 |
||
379 | 216: 18 f4 brcc .+6 ; 0x21e <__vector_9+0xb2> |
||
380 | 218: 90 93 6a 00 sts 0x006A, r25 |
||
381 | 21c: 03 c0 rjmp .+6 ; 0x224 <__vector_9+0xb8> |
||
382 | else IRstate = 5; |
||
383 | 21e: 85 e0 ldi r24, 0x05 ; 5 |
||
384 | 220: 80 93 6a 00 sts 0x006A, r24 |
||
385 | IRbit++; |
||
386 | 224: 80 91 6c 00 lds r24, 0x006C |
||
387 | 228: 8f 5f subi r24, 0xFF ; 255 |
||
388 | 22a: 80 93 6c 00 sts 0x006C, r24 |
||
389 | 22e: 05 c0 rjmp .+10 ; 0x23a <__vector_9+0xce> |
||
390 | break; |
||
391 | default: |
||
392 | TIMSK &= ~(1<<TOIE0); |
||
393 | 230: 89 b7 in r24, 0x39 ; 57 |
||
394 | 232: 8e 7f andi r24, 0xFE ; 254 |
||
395 | 234: 89 bf out 0x39, r24 ; 57 |
||
396 | IRstate = 0; |
||
397 | 236: 10 92 6a 00 sts 0x006A, r1 |
||
398 | 23a: 9f 91 pop r25 |
||
399 | 23c: 8f 91 pop r24 |
||
400 | 23e: 0f 90 pop r0 |
||
401 | 240: 0f be out 0x3f, r0 ; 63 |
||
402 | 242: 0f 90 pop r0 |
||
403 | 244: 1f 90 pop r1 |
||
404 | 246: 18 95 reti |
||
405 | |||
406 | 00000248 <SendIRSignal>: |
||
407 | break; |
||
408 | |||
409 | } |
||
410 | |||
411 | } |
||
412 | |||
413 | |||
414 | |||
415 | |||
416 | |||
417 | /*##############################################################################*/ |
||
418 | void SendIRSignal(unsigned char txbyte) |
||
419 | { |
||
420 | 248: 98 2f mov r25, r24 |
||
421 | while (IRstate != 0) {} //IR already in action ?, if so, wait |
||
422 | 24a: 80 91 6a 00 lds r24, 0x006A |
||
423 | 24e: 88 23 and r24, r24 |
||
424 | 250: e1 f7 brne .-8 ; 0x24a <SendIRSignal+0x2> |
||
425 | IRstate = 1; //initial State |
||
426 | 252: 81 e0 ldi r24, 0x01 ; 1 |
||
427 | 254: 80 93 6a 00 sts 0x006A, r24 |
||
428 | IRdat = txbyte; //copy IR Data |
||
429 | 258: 90 93 6b 00 sts 0x006B, r25 |
||
430 | TIFR &= TOV0; //set TMR0 Int Flag |
||
431 | 25c: 88 b7 in r24, 0x38 ; 56 |
||
432 | 25e: 18 be out 0x38, r1 ; 56 |
||
433 | TIMSK setbit (1<<TOIE0); //Enable TMR0 Int |
||
434 | 260: 89 b7 in r24, 0x39 ; 57 |
||
435 | 262: 81 60 ori r24, 0x01 ; 1 |
||
436 | 264: 89 bf out 0x39, r24 ; 57 |
||
437 | 266: 08 95 ret |
||
438 | |||
439 | 00000268 <StartPPM>: |
||
440 | } |
||
441 | |||
442 | |||
443 | |||
444 | |||
445 | |||
446 | |||
447 | |||
448 | /*##############################################################################*/ |
||
449 | void StartPPM(void) |
||
450 | { |
||
451 | 268: 1f bc out 0x2f, r1 ; 47 |
||
452 | |||
453 | //global timer1 Config |
||
454 | TCCR1A = (0<<COM1A1)|(0<<COM1A0)|(0<<COM1B1)|(0<<COM1B0)| |
||
455 | (0<<FOC1A) |(0<<FOC1B) |(0<<WGM10) |(0<<WGM11); |
||
456 | TCCR1B = (1<<ICNC1)|(1<<ICES1)|(0<<WGM13)| |
||
457 | 26a: 82 ec ldi r24, 0xC2 ; 194 |
||
458 | 26c: 8e bd out 0x2e, r24 ; 46 |
||
459 | (0<<WGM12)|(0<<CS12)|(1<<CS11)|(0<<CS10); //ICP_POS_FLANKE |
||
460 | |||
461 | // interrupts |
||
462 | TIMSK |= (1<<TICIE1)|(1<<TOIE1); //ICP_INT_ENABLE and TIMER1_INT_ENABLE |
||
463 | 26e: 89 b7 in r24, 0x39 ; 57 |
||
464 | 270: 84 62 ori r24, 0x24 ; 36 |
||
465 | 272: 89 bf out 0x39, r24 ; 57 |
||
466 | 274: 08 95 ret |
||
467 | |||
468 | 00000276 <GetPPM>: |
||
469 | |||
470 | } |
||
471 | |||
472 | |||
473 | int GetPPM(void) |
||
474 | { |
||
475 | 276: 29 b7 in r18, 0x39 ; 57 |
||
476 | //this routines seems to be nesseccary, as reading a 16 bit value |
||
477 | //on a 8 bit machine is not atomic, so if an interrupt apears between reading |
||
478 | //low and high byte of the 16 bit value a wrong result is possible |
||
479 | |||
480 | unsigned char intmask; |
||
481 | unsigned int ppm_temp; |
||
482 | |||
483 | intmask = TIMSK; //backup interupt enable bits |
||
484 | TIMSK &= ~(1<<TICIE1); //disable ppm interrupt |
||
485 | 278: 89 b7 in r24, 0x39 ; 57 |
||
486 | 27a: 8f 7d andi r24, 0xDF ; 223 |
||
487 | 27c: 89 bf out 0x39, r24 ; 57 |
||
488 | ppm_temp = ppm_signal; |
||
489 | 27e: 80 91 66 00 lds r24, 0x0066 |
||
490 | 282: 90 91 67 00 lds r25, 0x0067 |
||
491 | TIMSK = intmask; //restore interupt enable bits |
||
492 | 286: 29 bf out 0x39, r18 ; 57 |
||
493 | 288: 08 95 ret |
||
494 | |||
495 | 0000028a <main>: |
||
496 | return(ppm_temp); //return ppm_signal |
||
497 | |||
498 | } |
||
499 | |||
500 | |||
501 | /*##############################################################################*/ |
||
502 | // MAIN |
||
503 | /*##############################################################################*/ |
||
504 | int main (void) |
||
505 | { |
||
506 | 28a: 88 e0 ldi r24, 0x08 ; 8 |
||
507 | 28c: 84 bb out 0x14, r24 ; 20 |
||
508 | |||
509 | DDRC = (1<<ledred); |
||
510 | PORTC = 0x00; |
||
511 | 28e: 15 ba out 0x15, r1 ; 21 |
||
512 | DDRD = (1<<ledgreen); |
||
513 | 290: 80 e8 ldi r24, 0x80 ; 128 |
||
514 | 292: 81 bb out 0x11, r24 ; 17 |
||
515 | PORTD = 0x00; |
||
516 | 294: 12 ba out 0x12, r1 ; 18 |
||
517 | DDRB = (1<<1)|(1<<2)|(1<<3); |
||
518 | 296: 8e e0 ldi r24, 0x0E ; 14 |
||
519 | 298: 87 bb out 0x17, r24 ; 23 |
||
520 | PORTB = 0x00; |
||
521 | 29a: 18 ba out 0x18, r1 ; 24 |
||
522 | |||
523 | |||
524 | StartUART(); |
||
525 | 29c: 54 d0 rcall .+168 ; 0x346 <StartUART> |
||
526 | 29e: 1f bc out 0x2f, r1 ; 47 |
||
527 | 2a0: 82 ec ldi r24, 0xC2 ; 194 |
||
528 | 2a2: 8e bd out 0x2e, r24 ; 46 |
||
529 | 2a4: 89 b7 in r24, 0x39 ; 57 |
||
530 | 2a6: 84 62 ori r24, 0x24 ; 36 |
||
531 | 2a8: 89 bf out 0x39, r24 ; 57 |
||
532 | StartPPM(); |
||
533 | StartIRModulation(); |
||
534 | 2aa: 56 df rcall .-340 ; 0x158 <StartIRModulation> |
||
535 | sei(); |
||
536 | 2ac: 78 94 sei |
||
537 | |||
538 | |||
539 | while (1) |
||
540 | { |
||
541 | //printf("%d ",ppm_signal); |
||
542 | if (ppm_new == 1) |
||
543 | 2ae: 80 91 68 00 lds r24, 0x0068 |
||
544 | 2b2: 81 30 cpi r24, 0x01 ; 1 |
||
545 | 2b4: e1 f7 brne .-8 ; 0x2ae <main+0x24> |
||
546 | { |
||
547 | ppm_new = 0; |
||
548 | 2b6: 10 92 68 00 sts 0x0068, r1 |
||
549 | 2ba: 89 b7 in r24, 0x39 ; 57 |
||
550 | 2bc: 99 b7 in r25, 0x39 ; 57 |
||
551 | 2be: 9f 7d andi r25, 0xDF ; 223 |
||
552 | 2c0: 99 bf out 0x39, r25 ; 57 |
||
553 | 2c2: 20 91 66 00 lds r18, 0x0066 |
||
554 | 2c6: 30 91 67 00 lds r19, 0x0067 |
||
555 | 2ca: 89 bf out 0x39, r24 ; 57 |
||
556 | if (GetPPM() > 1750) |
||
557 | 2cc: 27 5d subi r18, 0xD7 ; 215 |
||
558 | 2ce: 36 40 sbci r19, 0x06 ; 6 |
||
559 | 2d0: 84 f0 brlt .+32 ; 0x2f2 <main+0x68> |
||
560 | { |
||
561 | SendIRSignal(ZOOM); |
||
562 | 2d2: 81 e4 ldi r24, 0x41 ; 65 |
||
563 | 2d4: b9 df rcall .-142 ; 0x248 <SendIRSignal> |
||
564 | PORTC |= (1<<ledred); |
||
565 | 2d6: ab 9a sbi 0x15, 3 ; 21 |
||
566 | 2d8: 89 b7 in r24, 0x39 ; 57 |
||
567 | 2da: 99 b7 in r25, 0x39 ; 57 |
||
568 | 2dc: 9f 7d andi r25, 0xDF ; 223 |
||
569 | 2de: 99 bf out 0x39, r25 ; 57 |
||
570 | 2e0: 20 91 66 00 lds r18, 0x0066 |
||
571 | 2e4: 30 91 67 00 lds r19, 0x0067 |
||
572 | 2e8: 89 bf out 0x39, r24 ; 57 |
||
573 | while (GetPPM() > 1650) {} |
||
574 | 2ea: 23 57 subi r18, 0x73 ; 115 |
||
575 | 2ec: 36 40 sbci r19, 0x06 ; 6 |
||
576 | 2ee: a4 f7 brge .-24 ; 0x2d8 <main+0x4e> |
||
577 | PORTC &= ~(1<<ledred); |
||
578 | 2f0: ab 98 cbi 0x15, 3 ; 21 |
||
579 | 2f2: 89 b7 in r24, 0x39 ; 57 |
||
580 | 2f4: 99 b7 in r25, 0x39 ; 57 |
||
581 | 2f6: 9f 7d andi r25, 0xDF ; 223 |
||
582 | 2f8: 99 bf out 0x39, r25 ; 57 |
||
583 | 2fa: 20 91 66 00 lds r18, 0x0066 |
||
584 | 2fe: 30 91 67 00 lds r19, 0x0067 |
||
585 | 302: 89 bf out 0x39, r24 ; 57 |
||
586 | } |
||
587 | |||
588 | if (GetPPM() < 1250) |
||
589 | 304: 22 5e subi r18, 0xE2 ; 226 |
||
590 | 306: 34 40 sbci r19, 0x04 ; 4 |
||
591 | 308: 94 f6 brge .-92 ; 0x2ae <main+0x24> |
||
592 | { |
||
593 | PORTD |= (1<<ledgreen); |
||
594 | 30a: 97 9a sbi 0x12, 7 ; 18 |
||
595 | SendIRSignal(TRIGGER); |
||
596 | 30c: 80 e4 ldi r24, 0x40 ; 64 |
||
597 | 30e: 9c df rcall .-200 ; 0x248 <SendIRSignal> |
||
598 | 310: 89 b7 in r24, 0x39 ; 57 |
||
599 | 312: 99 b7 in r25, 0x39 ; 57 |
||
600 | 314: 9f 7d andi r25, 0xDF ; 223 |
||
601 | 316: 99 bf out 0x39, r25 ; 57 |
||
602 | 318: 20 91 66 00 lds r18, 0x0066 |
||
603 | 31c: 30 91 67 00 lds r19, 0x0067 |
||
604 | 320: 89 bf out 0x39, r24 ; 57 |
||
605 | while (GetPPM() < 1350) {} |
||
606 | 322: 26 54 subi r18, 0x46 ; 70 |
||
607 | 324: 35 40 sbci r19, 0x05 ; 5 |
||
608 | 326: a4 f3 brlt .-24 ; 0x310 <main+0x86> |
||
609 | PORTD &= ~(1<<ledgreen); |
||
610 | 328: 97 98 cbi 0x12, 7 ; 18 |
||
611 | 32a: c1 cf rjmp .-126 ; 0x2ae <main+0x24> |
||
612 | |||
613 | 0000032c <uart_putchar>: |
||
614 | |||
615 | } |
||
616 | |||
617 | int uart_putchar (char c) |
||
618 | { |
||
619 | 32c: 1f 93 push r17 |
||
620 | 32e: 18 2f mov r17, r24 |
||
621 | if (c == '\n') uart_putchar('\r'); |
||
622 | 330: 8a 30 cpi r24, 0x0A ; 10 |
||
623 | 332: 11 f4 brne .+4 ; 0x338 <uart_putchar+0xc> |
||
624 | 334: 8d e0 ldi r24, 0x0D ; 13 |
||
625 | 336: fa df rcall .-12 ; 0x32c <uart_putchar> |
||
626 | loop_until_bit_is_set(UCSRA, UDRE); |
||
627 | 338: 5d 9b sbis 0x0b, 5 ; 11 |
||
628 | 33a: fe cf rjmp .-4 ; 0x338 <uart_putchar+0xc> |
||
629 | UDR = c; |
||
630 | 33c: 1c b9 out 0x0c, r17 ; 12 |
||
631 | |||
632 | return (0); |
||
633 | } |
||
634 | 33e: 80 e0 ldi r24, 0x00 ; 0 |
||
635 | 340: 90 e0 ldi r25, 0x00 ; 0 |
||
636 | 342: 1f 91 pop r17 |
||
637 | 344: 08 95 ret |
||
638 | |||
639 | 00000346 <StartUART>: |
||
640 | 346: 59 9a sbi 0x0b, 1 ; 11 |
||
641 | 348: 88 e1 ldi r24, 0x18 ; 24 |
||
642 | 34a: 8a b9 out 0x0a, r24 ; 10 |
||
643 | 34c: 86 e8 ldi r24, 0x86 ; 134 |
||
644 | 34e: 80 bd out 0x20, r24 ; 32 |
||
645 | 350: 89 e1 ldi r24, 0x19 ; 25 |
||
646 | 352: 89 b9 out 0x09, r24 ; 9 |
||
647 | 354: 60 e0 ldi r22, 0x00 ; 0 |
||
648 | 356: 70 e0 ldi r23, 0x00 ; 0 |
||
649 | 358: 86 e9 ldi r24, 0x96 ; 150 |
||
650 | 35a: 91 e0 ldi r25, 0x01 ; 1 |
||
651 | 35c: 01 d0 rcall .+2 ; 0x360 <fdevopen> |
||
652 | 35e: 08 95 ret |
||
653 | |||
654 | 00000360 <fdevopen>: |
||
655 | 360: ef 92 push r14 |
||
656 | 362: ff 92 push r15 |
||
657 | 364: 0f 93 push r16 |
||
658 | 366: 1f 93 push r17 |
||
659 | 368: cf 93 push r28 |
||
660 | 36a: df 93 push r29 |
||
661 | 36c: 8c 01 movw r16, r24 |
||
662 | 36e: 7b 01 movw r14, r22 |
||
663 | 370: 89 2b or r24, r25 |
||
664 | 372: 11 f4 brne .+4 ; 0x378 <fdevopen+0x18> |
||
665 | 374: 67 2b or r22, r23 |
||
666 | 376: c9 f1 breq .+114 ; 0x3ea <fdevopen+0x8a> |
||
667 | 378: 6e e0 ldi r22, 0x0E ; 14 |
||
668 | 37a: 70 e0 ldi r23, 0x00 ; 0 |
||
669 | 37c: 81 e0 ldi r24, 0x01 ; 1 |
||
670 | 37e: 90 e0 ldi r25, 0x00 ; 0 |
||
671 | 380: 3b d0 rcall .+118 ; 0x3f8 <calloc> |
||
672 | 382: fc 01 movw r30, r24 |
||
673 | 384: 00 97 sbiw r24, 0x00 ; 0 |
||
674 | 386: 89 f1 breq .+98 ; 0x3ea <fdevopen+0x8a> |
||
675 | 388: dc 01 movw r26, r24 |
||
676 | 38a: 80 e8 ldi r24, 0x80 ; 128 |
||
677 | 38c: 83 83 std Z+3, r24 ; 0x03 |
||
678 | 38e: e1 14 cp r14, r1 |
||
679 | 390: f1 04 cpc r15, r1 |
||
680 | 392: 71 f0 breq .+28 ; 0x3b0 <fdevopen+0x50> |
||
681 | 394: f3 86 std Z+11, r15 ; 0x0b |
||
682 | 396: e2 86 std Z+10, r14 ; 0x0a |
||
683 | 398: 81 e8 ldi r24, 0x81 ; 129 |
||
684 | 39a: 83 83 std Z+3, r24 ; 0x03 |
||
685 | 39c: 80 91 71 00 lds r24, 0x0071 |
||
686 | 3a0: 90 91 72 00 lds r25, 0x0072 |
||
687 | 3a4: 89 2b or r24, r25 |
||
688 | 3a6: 21 f4 brne .+8 ; 0x3b0 <fdevopen+0x50> |
||
689 | 3a8: f0 93 72 00 sts 0x0072, r31 |
||
690 | 3ac: e0 93 71 00 sts 0x0071, r30 |
||
691 | 3b0: 01 15 cp r16, r1 |
||
692 | 3b2: 11 05 cpc r17, r1 |
||
693 | 3b4: e1 f0 breq .+56 ; 0x3ee <fdevopen+0x8e> |
||
694 | 3b6: 11 87 std Z+9, r17 ; 0x09 |
||
695 | 3b8: 00 87 std Z+8, r16 ; 0x08 |
||
696 | 3ba: 83 81 ldd r24, Z+3 ; 0x03 |
||
697 | 3bc: 82 60 ori r24, 0x02 ; 2 |
||
698 | 3be: 83 83 std Z+3, r24 ; 0x03 |
||
699 | 3c0: 80 91 73 00 lds r24, 0x0073 |
||
700 | 3c4: 90 91 74 00 lds r25, 0x0074 |
||
701 | 3c8: 89 2b or r24, r25 |
||
702 | 3ca: 89 f4 brne .+34 ; 0x3ee <fdevopen+0x8e> |
||
703 | 3cc: f0 93 74 00 sts 0x0074, r31 |
||
704 | 3d0: e0 93 73 00 sts 0x0073, r30 |
||
705 | 3d4: 80 91 75 00 lds r24, 0x0075 |
||
706 | 3d8: 90 91 76 00 lds r25, 0x0076 |
||
707 | 3dc: 89 2b or r24, r25 |
||
708 | 3de: 39 f4 brne .+14 ; 0x3ee <fdevopen+0x8e> |
||
709 | 3e0: f0 93 76 00 sts 0x0076, r31 |
||
710 | 3e4: e0 93 75 00 sts 0x0075, r30 |
||
711 | 3e8: 02 c0 rjmp .+4 ; 0x3ee <fdevopen+0x8e> |
||
712 | 3ea: a0 e0 ldi r26, 0x00 ; 0 |
||
713 | 3ec: b0 e0 ldi r27, 0x00 ; 0 |
||
714 | 3ee: cd 01 movw r24, r26 |
||
715 | 3f0: e6 e0 ldi r30, 0x06 ; 6 |
||
716 | 3f2: cd b7 in r28, 0x3d ; 61 |
||
717 | 3f4: de b7 in r29, 0x3e ; 62 |
||
718 | 3f6: 26 c1 rjmp .+588 ; 0x644 <__epilogue_restores__+0x18> |
||
719 | |||
720 | 000003f8 <calloc>: |
||
721 | 3f8: 0f 93 push r16 |
||
722 | 3fa: 1f 93 push r17 |
||
723 | 3fc: cf 93 push r28 |
||
724 | 3fe: df 93 push r29 |
||
725 | 400: 86 9f mul r24, r22 |
||
726 | 402: 80 01 movw r16, r0 |
||
727 | 404: 87 9f mul r24, r23 |
||
728 | 406: 10 0d add r17, r0 |
||
729 | 408: 96 9f mul r25, r22 |
||
730 | 40a: 10 0d add r17, r0 |
||
731 | 40c: 11 24 eor r1, r1 |
||
732 | 40e: c8 01 movw r24, r16 |
||
733 | 410: 0d d0 rcall .+26 ; 0x42c <malloc> |
||
734 | 412: ec 01 movw r28, r24 |
||
735 | 414: 00 97 sbiw r24, 0x00 ; 0 |
||
736 | 416: 21 f0 breq .+8 ; 0x420 <calloc+0x28> |
||
737 | 418: a8 01 movw r20, r16 |
||
738 | 41a: 60 e0 ldi r22, 0x00 ; 0 |
||
739 | 41c: 70 e0 ldi r23, 0x00 ; 0 |
||
740 | 41e: ff d0 rcall .+510 ; 0x61e <memset> |
||
741 | 420: ce 01 movw r24, r28 |
||
742 | 422: df 91 pop r29 |
||
743 | 424: cf 91 pop r28 |
||
744 | 426: 1f 91 pop r17 |
||
745 | 428: 0f 91 pop r16 |
||
746 | 42a: 08 95 ret |
||
747 | |||
748 | 0000042c <malloc>: |
||
749 | 42c: cf 93 push r28 |
||
750 | 42e: df 93 push r29 |
||
751 | 430: ac 01 movw r20, r24 |
||
752 | 432: 02 97 sbiw r24, 0x02 ; 2 |
||
753 | 434: 10 f4 brcc .+4 ; 0x43a <malloc+0xe> |
||
754 | 436: 42 e0 ldi r20, 0x02 ; 2 |
||
755 | 438: 50 e0 ldi r21, 0x00 ; 0 |
||
756 | 43a: a0 91 79 00 lds r26, 0x0079 |
||
757 | 43e: b0 91 7a 00 lds r27, 0x007A |
||
758 | 442: fd 01 movw r30, r26 |
||
759 | 444: c0 e0 ldi r28, 0x00 ; 0 |
||
760 | 446: d0 e0 ldi r29, 0x00 ; 0 |
||
761 | 448: 20 e0 ldi r18, 0x00 ; 0 |
||
762 | 44a: 30 e0 ldi r19, 0x00 ; 0 |
||
763 | 44c: 20 c0 rjmp .+64 ; 0x48e <__stack+0x2f> |
||
764 | 44e: 80 81 ld r24, Z |
||
765 | 450: 91 81 ldd r25, Z+1 ; 0x01 |
||
766 | 452: 84 17 cp r24, r20 |
||
767 | 454: 95 07 cpc r25, r21 |
||
768 | 456: 69 f4 brne .+26 ; 0x472 <__stack+0x13> |
||
769 | 458: 82 81 ldd r24, Z+2 ; 0x02 |
||
770 | 45a: 93 81 ldd r25, Z+3 ; 0x03 |
||
771 | 45c: 20 97 sbiw r28, 0x00 ; 0 |
||
772 | 45e: 19 f0 breq .+6 ; 0x466 <__stack+0x7> |
||
773 | 460: 9b 83 std Y+3, r25 ; 0x03 |
||
774 | 462: 8a 83 std Y+2, r24 ; 0x02 |
||
775 | 464: 04 c0 rjmp .+8 ; 0x46e <__stack+0xf> |
||
776 | 466: 90 93 7a 00 sts 0x007A, r25 |
||
777 | 46a: 80 93 79 00 sts 0x0079, r24 |
||
778 | 46e: cf 01 movw r24, r30 |
||
779 | 470: 32 c0 rjmp .+100 ; 0x4d6 <__stack+0x77> |
||
780 | 472: 48 17 cp r20, r24 |
||
781 | 474: 59 07 cpc r21, r25 |
||
782 | 476: 38 f4 brcc .+14 ; 0x486 <__stack+0x27> |
||
783 | 478: 21 15 cp r18, r1 |
||
784 | 47a: 31 05 cpc r19, r1 |
||
785 | 47c: 19 f0 breq .+6 ; 0x484 <__stack+0x25> |
||
786 | 47e: 82 17 cp r24, r18 |
||
787 | 480: 93 07 cpc r25, r19 |
||
788 | 482: 08 f4 brcc .+2 ; 0x486 <__stack+0x27> |
||
789 | 484: 9c 01 movw r18, r24 |
||
790 | 486: ef 01 movw r28, r30 |
||
791 | 488: 02 80 ldd r0, Z+2 ; 0x02 |
||
792 | 48a: f3 81 ldd r31, Z+3 ; 0x03 |
||
793 | 48c: e0 2d mov r30, r0 |
||
794 | 48e: 30 97 sbiw r30, 0x00 ; 0 |
||
795 | 490: f1 f6 brne .-68 ; 0x44e <malloc+0x22> |
||
796 | 492: 21 15 cp r18, r1 |
||
797 | 494: 31 05 cpc r19, r1 |
||
798 | 496: 89 f1 breq .+98 ; 0x4fa <__stack+0x9b> |
||
799 | 498: c9 01 movw r24, r18 |
||
800 | 49a: 84 1b sub r24, r20 |
||
801 | 49c: 95 0b sbc r25, r21 |
||
802 | 49e: 04 97 sbiw r24, 0x04 ; 4 |
||
803 | 4a0: 08 f4 brcc .+2 ; 0x4a4 <__stack+0x45> |
||
804 | 4a2: a9 01 movw r20, r18 |
||
805 | 4a4: e0 e0 ldi r30, 0x00 ; 0 |
||
806 | 4a6: f0 e0 ldi r31, 0x00 ; 0 |
||
807 | 4a8: 26 c0 rjmp .+76 ; 0x4f6 <__stack+0x97> |
||
808 | 4aa: 8d 91 ld r24, X+ |
||
809 | 4ac: 9c 91 ld r25, X |
||
810 | 4ae: 11 97 sbiw r26, 0x01 ; 1 |
||
811 | 4b0: 82 17 cp r24, r18 |
||
812 | 4b2: 93 07 cpc r25, r19 |
||
813 | 4b4: e9 f4 brne .+58 ; 0x4f0 <__stack+0x91> |
||
814 | 4b6: 48 17 cp r20, r24 |
||
815 | 4b8: 59 07 cpc r21, r25 |
||
816 | 4ba: 79 f4 brne .+30 ; 0x4da <__stack+0x7b> |
||
817 | 4bc: ed 01 movw r28, r26 |
||
818 | 4be: 8a 81 ldd r24, Y+2 ; 0x02 |
||
819 | 4c0: 9b 81 ldd r25, Y+3 ; 0x03 |
||
820 | 4c2: 30 97 sbiw r30, 0x00 ; 0 |
||
821 | 4c4: 19 f0 breq .+6 ; 0x4cc <__stack+0x6d> |
||
822 | 4c6: 93 83 std Z+3, r25 ; 0x03 |
||
823 | 4c8: 82 83 std Z+2, r24 ; 0x02 |
||
824 | 4ca: 04 c0 rjmp .+8 ; 0x4d4 <__stack+0x75> |
||
825 | 4cc: 90 93 7a 00 sts 0x007A, r25 |
||
826 | 4d0: 80 93 79 00 sts 0x0079, r24 |
||
827 | 4d4: cd 01 movw r24, r26 |
||
828 | 4d6: 02 96 adiw r24, 0x02 ; 2 |
||
829 | 4d8: 49 c0 rjmp .+146 ; 0x56c <__stack+0x10d> |
||
830 | 4da: 84 1b sub r24, r20 |
||
831 | 4dc: 95 0b sbc r25, r21 |
||
832 | 4de: fd 01 movw r30, r26 |
||
833 | 4e0: e8 0f add r30, r24 |
||
834 | 4e2: f9 1f adc r31, r25 |
||
835 | 4e4: 41 93 st Z+, r20 |
||
836 | 4e6: 51 93 st Z+, r21 |
||
837 | 4e8: 02 97 sbiw r24, 0x02 ; 2 |
||
838 | 4ea: 8d 93 st X+, r24 |
||
839 | 4ec: 9c 93 st X, r25 |
||
840 | 4ee: 3a c0 rjmp .+116 ; 0x564 <__stack+0x105> |
||
841 | 4f0: fd 01 movw r30, r26 |
||
842 | 4f2: a2 81 ldd r26, Z+2 ; 0x02 |
||
843 | 4f4: b3 81 ldd r27, Z+3 ; 0x03 |
||
844 | 4f6: 10 97 sbiw r26, 0x00 ; 0 |
||
845 | 4f8: c1 f6 brne .-80 ; 0x4aa <__stack+0x4b> |
||
846 | 4fa: 80 91 77 00 lds r24, 0x0077 |
||
847 | 4fe: 90 91 78 00 lds r25, 0x0078 |
||
848 | 502: 89 2b or r24, r25 |
||
849 | 504: 41 f4 brne .+16 ; 0x516 <__stack+0xb7> |
||
850 | 506: 80 91 62 00 lds r24, 0x0062 |
||
851 | 50a: 90 91 63 00 lds r25, 0x0063 |
||
852 | 50e: 90 93 78 00 sts 0x0078, r25 |
||
853 | 512: 80 93 77 00 sts 0x0077, r24 |
||
854 | 516: 20 91 64 00 lds r18, 0x0064 |
||
855 | 51a: 30 91 65 00 lds r19, 0x0065 |
||
856 | 51e: 21 15 cp r18, r1 |
||
857 | 520: 31 05 cpc r19, r1 |
||
858 | 522: 41 f4 brne .+16 ; 0x534 <__stack+0xd5> |
||
859 | 524: 2d b7 in r18, 0x3d ; 61 |
||
860 | 526: 3e b7 in r19, 0x3e ; 62 |
||
861 | 528: 80 91 60 00 lds r24, 0x0060 |
||
862 | 52c: 90 91 61 00 lds r25, 0x0061 |
||
863 | 530: 28 1b sub r18, r24 |
||
864 | 532: 39 0b sbc r19, r25 |
||
865 | 534: e0 91 77 00 lds r30, 0x0077 |
||
866 | 538: f0 91 78 00 lds r31, 0x0078 |
||
867 | 53c: 2e 1b sub r18, r30 |
||
868 | 53e: 3f 0b sbc r19, r31 |
||
869 | 540: 24 17 cp r18, r20 |
||
870 | 542: 35 07 cpc r19, r21 |
||
871 | 544: 88 f0 brcs .+34 ; 0x568 <__stack+0x109> |
||
872 | 546: ca 01 movw r24, r20 |
||
873 | 548: 02 96 adiw r24, 0x02 ; 2 |
||
874 | 54a: 28 17 cp r18, r24 |
||
875 | 54c: 39 07 cpc r19, r25 |
||
876 | 54e: 60 f0 brcs .+24 ; 0x568 <__stack+0x109> |
||
877 | 550: cf 01 movw r24, r30 |
||
878 | 552: 84 0f add r24, r20 |
||
879 | 554: 95 1f adc r25, r21 |
||
880 | 556: 02 96 adiw r24, 0x02 ; 2 |
||
881 | 558: 90 93 78 00 sts 0x0078, r25 |
||
882 | 55c: 80 93 77 00 sts 0x0077, r24 |
||
883 | 560: 41 93 st Z+, r20 |
||
884 | 562: 51 93 st Z+, r21 |
||
885 | 564: cf 01 movw r24, r30 |
||
886 | 566: 02 c0 rjmp .+4 ; 0x56c <__stack+0x10d> |
||
887 | 568: 80 e0 ldi r24, 0x00 ; 0 |
||
888 | 56a: 90 e0 ldi r25, 0x00 ; 0 |
||
889 | 56c: df 91 pop r29 |
||
890 | 56e: cf 91 pop r28 |
||
891 | 570: 08 95 ret |
||
892 | |||
893 | 00000572 <free>: |
||
894 | 572: cf 93 push r28 |
||
895 | 574: df 93 push r29 |
||
896 | 576: 00 97 sbiw r24, 0x00 ; 0 |
||
897 | 578: 09 f4 brne .+2 ; 0x57c <free+0xa> |
||
898 | 57a: 4e c0 rjmp .+156 ; 0x618 <free+0xa6> |
||
899 | 57c: ec 01 movw r28, r24 |
||
900 | 57e: 22 97 sbiw r28, 0x02 ; 2 |
||
901 | 580: 1b 82 std Y+3, r1 ; 0x03 |
||
902 | 582: 1a 82 std Y+2, r1 ; 0x02 |
||
903 | 584: a0 91 79 00 lds r26, 0x0079 |
||
904 | 588: b0 91 7a 00 lds r27, 0x007A |
||
905 | 58c: 10 97 sbiw r26, 0x00 ; 0 |
||
906 | 58e: 11 f1 breq .+68 ; 0x5d4 <free+0x62> |
||
907 | 590: 40 e0 ldi r20, 0x00 ; 0 |
||
908 | 592: 50 e0 ldi r21, 0x00 ; 0 |
||
909 | 594: 01 c0 rjmp .+2 ; 0x598 <free+0x26> |
||
910 | 596: dc 01 movw r26, r24 |
||
911 | 598: ac 17 cp r26, r28 |
||
912 | 59a: bd 07 cpc r27, r29 |
||
913 | 59c: 00 f1 brcs .+64 ; 0x5de <free+0x6c> |
||
914 | 59e: bb 83 std Y+3, r27 ; 0x03 |
||
915 | 5a0: aa 83 std Y+2, r26 ; 0x02 |
||
916 | 5a2: fe 01 movw r30, r28 |
||
917 | 5a4: 21 91 ld r18, Z+ |
||
918 | 5a6: 31 91 ld r19, Z+ |
||
919 | 5a8: e2 0f add r30, r18 |
||
920 | 5aa: f3 1f adc r31, r19 |
||
921 | 5ac: ea 17 cp r30, r26 |
||
922 | 5ae: fb 07 cpc r31, r27 |
||
923 | 5b0: 71 f4 brne .+28 ; 0x5ce <free+0x5c> |
||
924 | 5b2: 2e 5f subi r18, 0xFE ; 254 |
||
925 | 5b4: 3f 4f sbci r19, 0xFF ; 255 |
||
926 | 5b6: 8d 91 ld r24, X+ |
||
927 | 5b8: 9c 91 ld r25, X |
||
928 | 5ba: 11 97 sbiw r26, 0x01 ; 1 |
||
929 | 5bc: 82 0f add r24, r18 |
||
930 | 5be: 93 1f adc r25, r19 |
||
931 | 5c0: 99 83 std Y+1, r25 ; 0x01 |
||
932 | 5c2: 88 83 st Y, r24 |
||
933 | 5c4: fd 01 movw r30, r26 |
||
934 | 5c6: 82 81 ldd r24, Z+2 ; 0x02 |
||
935 | 5c8: 93 81 ldd r25, Z+3 ; 0x03 |
||
936 | 5ca: 9b 83 std Y+3, r25 ; 0x03 |
||
937 | 5cc: 8a 83 std Y+2, r24 ; 0x02 |
||
938 | 5ce: 41 15 cp r20, r1 |
||
939 | 5d0: 51 05 cpc r21, r1 |
||
940 | 5d2: 59 f4 brne .+22 ; 0x5ea <free+0x78> |
||
941 | 5d4: d0 93 7a 00 sts 0x007A, r29 |
||
942 | 5d8: c0 93 79 00 sts 0x0079, r28 |
||
943 | 5dc: 1d c0 rjmp .+58 ; 0x618 <free+0xa6> |
||
944 | 5de: fd 01 movw r30, r26 |
||
945 | 5e0: 82 81 ldd r24, Z+2 ; 0x02 |
||
946 | 5e2: 93 81 ldd r25, Z+3 ; 0x03 |
||
947 | 5e4: ad 01 movw r20, r26 |
||
948 | 5e6: 00 97 sbiw r24, 0x00 ; 0 |
||
949 | 5e8: b1 f6 brne .-84 ; 0x596 <free+0x24> |
||
950 | 5ea: fa 01 movw r30, r20 |
||
951 | 5ec: d3 83 std Z+3, r29 ; 0x03 |
||
952 | 5ee: c2 83 std Z+2, r28 ; 0x02 |
||
953 | 5f0: 21 91 ld r18, Z+ |
||
954 | 5f2: 31 91 ld r19, Z+ |
||
955 | 5f4: e2 0f add r30, r18 |
||
956 | 5f6: f3 1f adc r31, r19 |
||
957 | 5f8: ec 17 cp r30, r28 |
||
958 | 5fa: fd 07 cpc r31, r29 |
||
959 | 5fc: 69 f4 brne .+26 ; 0x618 <free+0xa6> |
||
960 | 5fe: 2e 5f subi r18, 0xFE ; 254 |
||
961 | 600: 3f 4f sbci r19, 0xFF ; 255 |
||
962 | 602: 88 81 ld r24, Y |
||
963 | 604: 99 81 ldd r25, Y+1 ; 0x01 |
||
964 | 606: 82 0f add r24, r18 |
||
965 | 608: 93 1f adc r25, r19 |
||
966 | 60a: fa 01 movw r30, r20 |
||
967 | 60c: 91 83 std Z+1, r25 ; 0x01 |
||
968 | 60e: 80 83 st Z, r24 |
||
969 | 610: 8a 81 ldd r24, Y+2 ; 0x02 |
||
970 | 612: 9b 81 ldd r25, Y+3 ; 0x03 |
||
971 | 614: 93 83 std Z+3, r25 ; 0x03 |
||
972 | 616: 82 83 std Z+2, r24 ; 0x02 |
||
973 | 618: df 91 pop r29 |
||
974 | 61a: cf 91 pop r28 |
||
975 | 61c: 08 95 ret |
||
976 | |||
977 | 0000061e <memset>: |
||
978 | 61e: dc 01 movw r26, r24 |
||
979 | 620: 01 c0 rjmp .+2 ; 0x624 <memset+0x6> |
||
980 | 622: 6d 93 st X+, r22 |
||
981 | 624: 41 50 subi r20, 0x01 ; 1 |
||
982 | 626: 50 40 sbci r21, 0x00 ; 0 |
||
983 | 628: e0 f7 brcc .-8 ; 0x622 <memset+0x4> |
||
984 | 62a: 08 95 ret |
||
985 | |||
986 | 0000062c <__epilogue_restores__>: |
||
987 | 62c: 2a 88 ldd r2, Y+18 ; 0x12 |
||
988 | 62e: 39 88 ldd r3, Y+17 ; 0x11 |
||
989 | 630: 48 88 ldd r4, Y+16 ; 0x10 |
||
990 | 632: 5f 84 ldd r5, Y+15 ; 0x0f |
||
991 | 634: 6e 84 ldd r6, Y+14 ; 0x0e |
||
992 | 636: 7d 84 ldd r7, Y+13 ; 0x0d |
||
993 | 638: 8c 84 ldd r8, Y+12 ; 0x0c |
||
994 | 63a: 9b 84 ldd r9, Y+11 ; 0x0b |
||
995 | 63c: aa 84 ldd r10, Y+10 ; 0x0a |
||
996 | 63e: b9 84 ldd r11, Y+9 ; 0x09 |
||
997 | 640: c8 84 ldd r12, Y+8 ; 0x08 |
||
998 | 642: df 80 ldd r13, Y+7 ; 0x07 |
||
999 | 644: ee 80 ldd r14, Y+6 ; 0x06 |
||
1000 | 646: fd 80 ldd r15, Y+5 ; 0x05 |
||
1001 | 648: 0c 81 ldd r16, Y+4 ; 0x04 |
||
1002 | 64a: 1b 81 ldd r17, Y+3 ; 0x03 |
||
1003 | 64c: aa 81 ldd r26, Y+2 ; 0x02 |
||
1004 | 64e: b9 81 ldd r27, Y+1 ; 0x01 |
||
1005 | 650: ce 0f add r28, r30 |
||
1006 | 652: d1 1d adc r29, r1 |
||
1007 | 654: 0f b6 in r0, 0x3f ; 63 |
||
1008 | 656: f8 94 cli |
||
1009 | 658: de bf out 0x3e, r29 ; 62 |
||
1010 | 65a: 0f be out 0x3f, r0 ; 63 |
||
1011 | 65c: cd bf out 0x3d, r28 ; 61 |
||
1012 | 65e: ed 01 movw r28, r26 |
||
1013 | 660: 08 95 ret |
||
1014 | |||
1015 | 00000662 <_exit>: |
||
1016 | 662: ff cf rjmp .-2 ; 0x662 <_exit> |