Цитата(Сергей Борщ @ Oct 1 2008, 14:50)

Давайте попробуем разобраться. Начнем с получения листинга всей прошивки: avr-objdump -hSCD файл.elf > файл.lss
В ней посмотрите, как называется метка по адресу 0xFD0F и, заодно, из какой функции происходит переход на нее. Можете привести здесь отрывок этого листинга. Или вырежьте из него main() и все ваши секретные функции, оставьте только инициализацию, и выложите.
Код
0001e000 <__vectors>:
1e000: 77 c0 rjmp .+238 ; 0x1e0f0 <__ctors_end>
1e002: 00 00 nop
1e004: 9e c0 rjmp .+316 ; 0x1e142 <__bad_interrupt>
1e006: 00 00 nop
1e008: 9c c0 rjmp .+312 ; 0x1e142 <__bad_interrupt>
1e00a: 00 00 nop
1e00c: 9a c0 rjmp .+308 ; 0x1e142 <__bad_interrupt>
1e00e: 00 00 nop
1e010: 98 c0 rjmp .+304 ; 0x1e142 <__bad_interrupt>
1e012: 00 00 nop
1e014: 53 c4 rjmp .+2214 ; 0x1e8bc <__vector_5>
1e016: 00 00 nop
1e018: 94 c0 rjmp .+296 ; 0x1e142 <__bad_interrupt>
1e01a: 00 00 nop
1e01c: 92 c0 rjmp .+292 ; 0x1e142 <__bad_interrupt>
1e01e: 00 00 nop
1e020: 90 c0 rjmp .+288 ; 0x1e142 <__bad_interrupt>
1e022: 00 00 nop
1e024: 8e c0 rjmp .+284 ; 0x1e142 <__bad_interrupt>
1e026: 00 00 nop
1e028: 8c c0 rjmp .+280 ; 0x1e142 <__bad_interrupt>
1e02a: 00 00 nop
1e02c: 8a c0 rjmp .+276 ; 0x1e142 <__bad_interrupt>
1e02e: 00 00 nop
1e030: 88 c0 rjmp .+272 ; 0x1e142 <__bad_interrupt>
1e032: 00 00 nop
1e034: 86 c0 rjmp .+268 ; 0x1e142 <__bad_interrupt>
1e036: 00 00 nop
1e038: 84 c0 rjmp .+264 ; 0x1e142 <__bad_interrupt>
1e03a: 00 00 nop
1e03c: 82 c0 rjmp .+260 ; 0x1e142 <__bad_interrupt>
1e03e: 00 00 nop
1e040: 80 c0 rjmp .+256 ; 0x1e142 <__bad_interrupt>
1e042: 00 00 nop
1e044: 7e c0 rjmp .+252 ; 0x1e142 <__bad_interrupt>
1e046: 00 00 nop
1e048: 7c c0 rjmp .+248 ; 0x1e142 <__bad_interrupt>
1e04a: 00 00 nop
1e04c: 7a c0 rjmp .+244 ; 0x1e142 <__bad_interrupt>
1e04e: 00 00 nop
1e050: 78 c0 rjmp .+240 ; 0x1e142 <__bad_interrupt>
1e052: 00 00 nop
1e054: 0c 94 4a fc jmp 0x1f894; 0x1f894 <__vector_21>
1e058: 74 c0 rjmp .+232 ; 0x1e142 <__bad_interrupt>
1e05a: 00 00 nop
1e05c: 72 c0 rjmp .+228 ; 0x1e142 <__bad_interrupt>
1e05e: 00 00 nop
1e060: 0c 94 c7 f9 jmp 0x1f38e; 0x1f38e <__vector_24>
1e064: 6e c0 rjmp .+220 ; 0x1e142 <__bad_interrupt>
1e066: 00 00 nop
1e068: 6c c0 rjmp .+216 ; 0x1e142 <__bad_interrupt>
1e06a: 00 00 nop
1e06c: 6a c0 rjmp .+212 ; 0x1e142 <__bad_interrupt>
1e06e: 00 00 nop
1e070: 68 c0 rjmp .+208 ; 0x1e142 <__bad_interrupt>
1e072: 00 00 nop
1e074: 66 c0 rjmp .+204 ; 0x1e142 <__bad_interrupt>
1e076: 00 00 nop
1e078: 64 c0 rjmp .+200 ; 0x1e142 <__bad_interrupt>
1e07a: 00 00 nop
1e07c: 62 c0 rjmp .+196 ; 0x1e142 <__bad_interrupt>
1e07e: 00 00 nop
1e080: 60 c0 rjmp .+192 ; 0x1e142 <__bad_interrupt>
1e082: 00 00 nop
1e084: 5e c0 rjmp .+188 ; 0x1e142 <__bad_interrupt>
1e086: 00 00 nop
1e088: 5c c0 rjmp .+184 ; 0x1e142 <__bad_interrupt>
1e08a: 00 00 nop
1e08c: 5a c0 rjmp .+180 ; 0x1e142 <__bad_interrupt>
1e08e: 00 00 nop
1e090: 58 c0 rjmp .+176 ; 0x1e142 <__bad_interrupt>
1e092: 00 00 nop
1e094: 56 c0 rjmp .+172 ; 0x1e142 <__bad_interrupt>
1e096: 00 00 nop
1e098: 54 c0 rjmp .+168 ; 0x1e142 <__bad_interrupt>
1e09a: 00 00 nop
1e09c: 52 c0 rjmp .+164 ; 0x1e142 <__bad_interrupt>
1e09e: 00 00 nop
1e0a0: 50 c0 rjmp .+160 ; 0x1e142 <__bad_interrupt>
1e0a2: 00 00 nop
1e0a4: 4e c0 rjmp .+156 ; 0x1e142 <__bad_interrupt>
1e0a6: 00 00 nop
1e0a8: 4c c0 rjmp .+152 ; 0x1e142 <__bad_interrupt>
1e0aa: 00 00 nop
1e0ac: 4a c0 rjmp .+148 ; 0x1e142 <__bad_interrupt>
1e0ae: 00 00 nop
1e0b0: 48 c0 rjmp .+144 ; 0x1e142 <__bad_interrupt>
1e0b2: 00 00 nop
1e0b4: 46 c0 rjmp .+140 ; 0x1e142 <__bad_interrupt>
1e0b6: 00 00 nop
1e0b8: 44 c0 rjmp .+136 ; 0x1e142 <__bad_interrupt>
1e0ba: 00 00 nop
1e0bc: 42 c0 rjmp .+132 ; 0x1e142 <__bad_interrupt>
1e0be: 00 00 nop
1e0c0: 40 c0 rjmp .+128 ; 0x1e142 <__bad_interrupt>
1e0c2: 00 00 nop
1e0c4: 3e c0 rjmp .+124 ; 0x1e142 <__bad_interrupt>
1e0c6: 00 00 nop
1e0c8: 3c c0 rjmp .+120 ; 0x1e142 <__bad_interrupt>
1e0ca: 00 00 nop
1e0cc: 3a c0 rjmp .+116 ; 0x1e142 <__bad_interrupt>
1e0ce: 00 00 nop
1e0d0: 38 c0 rjmp .+112 ; 0x1e142 <__bad_interrupt>
1e0d2: 00 00 nop
1e0d4: 36 c0 rjmp .+108 ; 0x1e142 <__bad_interrupt>
1e0d6: 00 00 nop
1e0d8: 34 c0 rjmp .+104 ; 0x1e142 <__bad_interrupt>
1e0da: 00 00 nop
1e0dc: 32 c0 rjmp .+100 ; 0x1e142 <__bad_interrupt>
1e0de: 00 00 nop
1e0e0: 30 c0 rjmp .+96 ; 0x1e142 <__bad_interrupt>
...
0001e0e4 <__ctors_start>:
1e0e4: 03 f5 brvc .+64 ; 0x1e126 <__do_global_ctors>
1e0e6: 16 f5 brtc .+68 ; 0x1e12c <__do_global_ctors+0x6>
1e0e8: d1 f9 bld r29, 1
1e0ea: 00 fa bst r0, 0
1e0ec: f6 fa bst r15, 6
1e0ee: 3c fc .word 0xfc3c; ????
0001e0f0 <__ctors_end>:
1e0f0: 11 24 eor r1, r1
1e0f2: 1f be out 0x3f, r1; 63
1e0f4: cf ef ldi r28, 0xFF; 255
1e0f6: d1 e2 ldi r29, 0x21; 33
1e0f8: de bf out 0x3e, r29; 62
1e0fa: cd bf out 0x3d, r28; 61
0001e0fc <__do_copy_data>:
1e0fc: 12 e0 ldi r17, 0x02; 2
1e0fe: a0 e0 ldi r26, 0x00; 0
1e100: b2 e0 ldi r27, 0x02; 2
1e102: e4 e5 ldi r30, 0x54; 84
1e104: fb ef ldi r31, 0xFB; 251
1e106: 01 e0 ldi r16, 0x01; 1
1e108: 0b bf out 0x3b, r16; 59
1e10a: 02 c0 rjmp .+4 ; 0x1e110 <__do_copy_data+0x14>
1e10c: 07 90 elpm r0, Z+
1e10e: 0d 92 st X+, r0
1e110: ae 31 cpi r26, 0x1E; 30
1e112: b1 07 cpc r27, r17
1e114: d9 f7 brne .-10 ; 0x1e10c <__do_copy_data+0x10>
0001e116 <__do_clear_bss>:
1e116: 17 e0 ldi r17, 0x07; 7
1e118: ae e1 ldi r26, 0x1E; 30
1e11a: b2 e0 ldi r27, 0x02; 2
1e11c: 01 c0 rjmp .+2 ; 0x1e120 <.do_clear_bss_start>
0001e11e <.do_clear_bss_loop>:
1e11e: 1d 92 st X+, r1
0001e120 <.do_clear_bss_start>:
1e120: a8 36 cpi r26, 0x68; 104
1e122: b1 07 cpc r27, r17
1e124: e1 f7 brne .-8 ; 0x1e11e <.do_clear_bss_loop>
0001e126 <__do_global_ctors>:
1e126: 10 ee ldi r17, 0xE0; 224
1e128: c0 ef ldi r28, 0xF0; 240
1e12a: d0 ee ldi r29, 0xE0; 224
1e12c: 04 c0 rjmp .+8 ; 0x1e136 <.do_global_ctors_start>
0001e12e <.do_global_ctors_loop>:
1e12e: 22 97 sbiw r28, 0x02; 2
1e130: fe 01 movw r30, r28
1e132: 0e 94 11 fd call 0x1fa22; 0x1fa22 <__tablejump__>
0001e136 <.do_global_ctors_start>:
1e136: c4 3e cpi r28, 0xE4; 228
1e138: d1 07 cpc r29, r17
1e13a: c9 f7 brne .-14 ; 0x1e12e <.do_global_ctors_loop>
1e13c: 40 d4 rcall .+2176 ; 0x1e9be <main>
1e13e: 0c 94 a8 fd jmp 0x1fb50; 0x1fb50 <_exit>
0001e142 <__bad_interrupt>:
1e142: 5e cf rjmp .-324 ; 0x1e000 <__vectors>
подпрограмма называется __tablejump__
Код
0001fa1e <__tablejump2__>:
1fa1e: ee 0f add r30, r30
1fa20: ff 1f adc r31, r31
0001fa22 <__tablejump__>:
1fa22: 05 90 lpm r0, Z+
1fa24: f4 91 lpm r31, Z+
1fa26: e0 2d mov r30, r0
1fa28: 09 94 ijmp