Дизассемблирование прошивки siemens (infeneon) C167CS
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
[uquote="zAries",url="/forum/viewtopic.php?p=4793315#p4793315"]Изучите datasheet на контролер, распределение адресов, это важно.
IDA мощный инструмент в умелых руках, учитесь им пользоваться
если есть желание в чём то разобраться.[/uquote]
Я попробовал ещё раз и вроде даже что-то получилось, но потом я почитал даташит на C167CS и мне нужен адрес 0x10000 (с него начинается исполняемая часть прошивки).
И ida pro даже помечает этот адрес как адрес точки входа, но на месте этого адреса просто идёт бесконечная инструкция db (по своему опыту знаю что это означает что ida не понимает что там написано)
Настройки при выборе МК - https://allwebs.ru/image/image.pcNQgw
Настройки памяти - https://allwebs.ru/image/image.pcCMFt
IDA мощный инструмент в умелых руках, учитесь им пользоваться
если есть желание в чём то разобраться.[/uquote]
Я попробовал ещё раз и вроде даже что-то получилось, но потом я почитал даташит на C167CS и мне нужен адрес 0x10000 (с него начинается исполняемая часть прошивки).
И ida pro даже помечает этот адрес как адрес точки входа, но на месте этого адреса просто идёт бесконечная инструкция db (по своему опыту знаю что это означает что ida не понимает что там написано)
Настройки при выборе МК - https://allwebs.ru/image/image.pcNQgw
Настройки памяти - https://allwebs.ru/image/image.pcCMFt
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
[uquote="Kot4512",url="/forum/viewtopic.php?p=4793777#p4793777"]...но потом я почитал даташит на C167CS и мне нужен адрес 0x10000...[/uquote]
С какого адреса стартует контролер ?
С какого адреса стартует контролер ?
Audiatur et altera pars !
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
[uquote="Kot4512",url="/forum/viewtopic.php?p=4793777#p4793777"]Я попробовал ещё раз и вроде даже что-то получилось, но потом я почитал даташит на C167CS и мне нужен адрес 0x10000 (с него начинается исполняемая часть прошивки).[/uquote]Откуда инфа? В даташите C167CS указан иной адрес:

По этому адресу расположена таблица прерываний, состоящая из векторов по 4 байта каждый. Каждый вектор - обычно команда перехода на процедуру ISR. 0-й вектор - вектор сброса. Он и указывает на точку входа программы. Т.е. - дизассемблируем код по адресу 0 и видим на какой адрес оттуда идёт переход.

По этому адресу расположена таблица прерываний, состоящая из векторов по 4 байта каждый. Каждый вектор - обычно команда перехода на процедуру ISR. 0-й вектор - вектор сброса. Он и указывает на точку входа программы. Т.е. - дизассемблируем код по адресу 0 и видим на какой адрес оттуда идёт переход.
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
Audiatur et altera pars !
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
[uquote="zAries",url="/forum/viewtopic.php?p=4795287#p4795287"]Да я уже приводил пример, но видимо никто не вникает.
Это старт[/uquote]У вас тут стартовый адрес = 0x444, а ТС пишет про 0x10000:
[uquote="Kot4512",url="/forum/viewtopic.php?p=4793777#p4793777"]мне нужен адрес 0x10000 (с него начинается исполняемая часть прошивки).[/uquote] Какая связь?
Это старт[/uquote]У вас тут стартовый адрес = 0x444, а ТС пишет про 0x10000:
[uquote="Kot4512",url="/forum/viewtopic.php?p=4793777#p4793777"]мне нужен адрес 0x10000 (с него начинается исполняемая часть прошивки).[/uquote] Какая связь?
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
ТС datasheet видимо читает по диагонали 
Audiatur et altera pars !
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
О небо, при чём тут 0F206h ?
Стартует контролер с 0x000h (datasheet читали ?) там
jmps RESET_handler
.....
.....
.....
0x0444 RESET_handler
.....
.....
скрины для кого приложены ???
Если напрячь моцк, и прописать вместо адресов символьные имена регистров, получим вполне
осмысленную картину мира, где если не всё, то очень много становится понятно. Ищите и обрящите !
Стартует контролер с 0x000h (datasheet читали ?) там
jmps RESET_handler
.....
.....
.....
0x0444 RESET_handler
.....
.....
скрины для кого приложены ???
Если напрячь моцк, и прописать вместо адресов символьные имена регистров, получим вполне
осмысленную картину мира, где если не всё, то очень много становится понятно. Ищите и обрящите !
Код: Выделить всё
Но опять же вопрос - что со всем этим вы будите делать ?
000003F0 ; ---------------------------------------------------------------------------
000003F0 loc_3F0:
000003F0 calla cc_UC, sub_10CE
000003F4 cmpb rl4, #0
000003F6 jmpr cc_NZ, loc_430
000003F8 calls 0, sub_10A0
000003FC cmpb rl4, #0
000003FE jmpr cc_NZ, loc_430
00000400 mov r4, #0FFC0h
00000404 mov [-r0], r4
00000406 mov r12, #0E000h
0000040A loc_40A:
0000040A mov r13, #0E010h
0000040E mov r14, #0E020h
00000412 mov r15, #0FF00h
00000416 calla cc_UC, sub_EFA
0000041A add r0, #2
0000041C andb rl4, #20h
00000420 jmpr cc_Z, loc_430
00000422 mov r4, word_4410
00000426 mov r5, word_4412
0000042A calls 0, sub_386C
0000042E ret
00000430 ; ---------------------------------------------------------------------------
00000430 loc_430:
00000430 bset word_FD04.4
00000432 calls 0, sub_1CE4
00000436 calls 0, sub_1C52
0000043A calls 0, sub_1834
0000043E calla cc_UC, sub_1874
00000442 ret
00000444 ; ---------------------------------------------------------------------------
;=============
00000444 RESET_handler:
00000444 mov CP, #0F206h ; Context Pointer Register
00000448 nop
0000044A mov DPP0, #22h ; assume dpp0: 22h (page 0x88000)
0000044E mov DPP1, #24h ; assume dpp1: 24h (page 0x90000)
00000452 mov DPP2, #23h ; assume dpp2: 23h (page 0x8C000)
00000456 extr #1
00000458 mov XPERCON, #0C03h ; X-Peripheral Control Register
0000045C bfldh SYSCON, #0FFh, #0E2h ; System Configuration Register
00000460 bfldl SYSCON, #0FFh, #0Eh ; System Configuration Register
00000464 mov ADDRSEL1, #1008h ; Address Select Register 1
00000468 mov ADDRSEL2, #2000h ; Address Select Register 2
0000046C mov ADDRSEL3, #0FFE0h ; Address Select Register 3
00000470 mov ADDRSEL4, #0FFF0h ; Address Select Register 4
00000474 bfldh BUSCON0, #0FFh, #44h
00000478 bfldl BUSCON0, #0FFh, #0BFh
0000047C bfldh BUSCON1, #0FFh, #84h
00000480 bfldl BUSCON1, #0FFh, #8Fh
00000484 bfldh BUSCON2, #0FFh, #4
00000488 bfldl BUSCON2, #0FFh, #2Fh
0000048C loc_48C:
0000048C bfldh BUSCON3, #0FFh, #84h
00000490 bfldl BUSCON3, #0FFh, #0BFh
00000494 bfldh BUSCON4, #0FFh, #44h
00000498 bfldl BUSCON4, #0FFh, #0BFh
0000049C extr #1
0000049E mov PICON, #0CFh
000004A2 mov STKOV, #0F226h
000004A6 mov STKUN, #0F326h
000004AA mov SP, #0F326h
000004AE einit
000004B2 mov r0, #5555h
000004B6 mov r1, r0
000004B8 mov r2, r0
000004BA mov r3, r0
000004BC mov r4, r0
000004BE mov r5, r0
000004C0 mov r6, r0
000004C2 mov r7, r0
000004C4 mov r8, r0
000004C6 mov r9, r0
000004C8 mov r10, r0
000004CA mov r11, r0
000004CC mov r12, r0
000004CE mov r13, r0
000004D0 mov r14, r0
000004D2 mov r15, r0
000004D4 add r0, r15
000004D6 add r1, r15
000004D8 add r2, r15
000004DA add r3, r15
000004DC add r4, r15
000004DE add r5, r15
000004E0 add r6, r15
000004E2 add r7, r15
000004E4 add r8, r15
000004E6 add r9, r15
000004E8 add r10, r15
000004EA add r11, r15
000004EC add r12, r15
000004EE add r13, r15
000004F0 add r14, r15
000004F2 add r15, r15
000004F4 neg r15
000004F6 add r0, r15
000004F8 jmpr cc_NZ, loc_538
000004FA add r1, r15
000004FC jmpr cc_NZ, loc_538
000004FE add r2, r15
00000500 jmpr cc_NZ, loc_538
00000502 add r3, r15
00000504 jmpr cc_NZ, loc_538
00000506 add r4, r15
00000508 jmpr cc_NZ, loc_538
0000050A add r5, r15
0000050C jmpr cc_NZ, loc_538
0000050E add r6, r15
00000510 jmpr cc_NZ, loc_538
00000512 add r7, r15
00000514 jmpr cc_NZ, loc_538
00000516 add r8, r15
00000518 jmpr cc_NZ, loc_538
0000051A add r9, r15
0000051C jmpr cc_NZ, loc_538
0000051E add r10, r15
00000520 jmpr cc_NZ, loc_538
00000522 add r11, r15
00000524 jmpr cc_NZ, loc_538
00000526 add r12, r15
00000528 jmpr cc_NZ, loc_538
0000052A add r13, r15
0000052C jmpr cc_NZ, loc_538
0000052E add r14, r15
00000530 jmpr cc_NZ, loc_538
00000532 add r15, #0AAAAh
00000536 jmpr cc_Z, loc_53A
00000538 loc_538:
00000538 jmpr cc_UC, loc_538
0000053A ; ---------------------------------------------------------------------------
0000053A loc_53A:
0000053A mov r7, #0E20Eh
0000053E xor r7, SYSCON
00000542 and r7, #0FF87h
00000546 jmpr cc_Z, loc_54E
00000548 srst
0000054C ; ---------------------------------------------------------------------------
0000054C jmpr cc_UC, loc_54E
0000054E ; ---------------------------------------------------------------------------
0000054E loc_54E:
0000054E jnb WDTCON.1, loc_556
00000552 or r15, #1
00000554 jmpr cc_UC, loc_556
00000556 ; ---------------------------------------------------------------------------
00000556 loc_556:
00000556 mov WDTCON, #9201h
0000055A srvwdt
0000055E mov r7, #572h
00000562 push r7
00000564 movb rl4, #1
00000566 pop r7
00000568 cmp r7, #572h
0000056C jmpr cc_NZ, loc_572
0000056E calla cc_UC, sub_10CE
00000572 loc_572:
00000572 cmpb rl4, #0
00000574 jmpr cc_Z, loc_57A
00000576 or r15, #8000h
0000057A loc_57A:
0000057A mov r4, #5555h
0000057E loc_57E:
0000057E mov r5, #5556h
00000582 mov r6, #0AAAAh
00000586 mov r0, #0F226h
0000058A mov r1, #0FDFAh
0000058E mov r2, #2
00000590 mov r3, #598h
00000594 jmpa cc_UC, loc_698
00000598 ; ---------------------------------------------------------------------------
00000598 mov r0, #0E000h
0000059C mov r1, #0E790h
000005A0 mov r2, #4
000005A2 mov r3, #5AAh
000005A6 jmpa cc_UC, loc_698
000005AA ; ---------------------------------------------------------------------------
000005AA mov r0, #0C000h
000005AE mov r1, #0D7FEh
000005B2 loc_5B2:
000005B2 mov r2, #4
000005B4 mov r3, #5BAh
000005B8 jmpr cc_UC, loc_698
000005BA ; ---------------------------------------------------------------------------
000005BA mov ADDRSEL2, #883h
000005BE mov r0, #0
000005C2 mov r1, #3FFEh
000005C6 mov r2, #8
000005C8 mov r3, #5CEh
000005CC jmpr cc_UC, loc_698
000005CE ; ---------------------------------------------------------------------------
000005CE mov ADDRSEL2, #2000h
000005D2 mov WDTCON, #9201h
000005D6 loc_5D6:
000005D6 srvwdt
000005DA mov r0, #0EF00h
000005DE mov r1, #0EFFFh
000005E2 mov r2, #10h
000005E6 mov r3, #5EEh
000005EA jmpa cc_UC, loc_71E
000005EE ; ---------------------------------------------------------------------------
000005EE mov r0, #0EE00h
000005F2 mov r1, #0EEFFh
000005F6 mov r2, #400h
000005FA mov r3, #602h
000005FE jmpa cc_UC, loc_71E
00000602 ; ---------------------------------------------------------------------------
00000602 mov byte_C174, r15
00000606 mov r9, DPP0
0000060A mov ADDRSEL2, #883h
0000060E loc_60E:
0000060E mov DPP0, #22h
00000612 mov r8, #2
00000616 mov r4, #5555h
0000061A mov r5, #5556h
0000061E mov r6, #0AAAAh
00000622 mov [r8], r4
00000624 nop
00000626 loc_626:
00000626 mov r7, [r8]
00000628 cmp r7, r4
0000062A jmpr cc_NZ, loc_644
0000062C add r7, r4
0000062E mov [r8], r7
00000630 nop
00000632 mov r7, [r8]
00000634 cmp r7, r6
00000636 jmpr cc_NZ, loc_644
00000638 add r7, r5
0000063A mov [r8], r7
0000063C nop
0000063E mov r7, [r8]
00000640 loc_640:
00000640 cmp r7, #0
00000642 jmpr cc_Z, loc_668
00000644 loc_644:
00000644 mov [r8], r4
00000646 nop
00000648 mov r7, [r8]
0000064A cmp r7, r4
0000064C jmpr cc_NZ, loc_66A
0000064E add r7, r4
00000650 mov [r8], r7
00000652 nop
00000654 mov r7, [r8]
00000656 cmp r7, r6
00000658 loc_658:
00000658 jmpr cc_NZ, loc_66A
0000065A add r7, r5
0000065C mov [r8], r7
0000065E nop
00000660 mov r7, [r8]
00000662 cmp r7, #0
00000664 jmpr cc_NZ, loc_66A
00000666 jmpr cc_UC, loc_668
00000668 ; ---------------------------------------------------------------------------
00000668 loc_668:
00000668 bset word_FD04.6
0000066A loc_66A:
0000066A mov ADDRSEL2, #2000h
0000066E mov DPP0, r9 ; assume dpp0: 0 (page 0x0)
00000672 mov r1, #0
00000674 mov r2, #0
00000676 mov r3, #0
00000678 mov r4, #0
0000067A mov r5, #0
0000067C mov r6, #0
0000067E mov r7, #0
00000680 mov r8, #0
00000682 mov r9, #0
00000684 mov r10, #0
00000686 mov r11, #0
00000688 mov r12, #0
0000068A mov r13, #0
0000068C mov r14, #0
0000068E mov r15, #0
00000690 mov r0, #0F3A6h
00000694 jmpa cc_UC, loc_3F0
00000698 ; ---------------------------------------------------------------------------
00000698 loc_698:
00000698 mov r7, #1
0000069A loc_69A:
0000069A mov [r0], r7
0000069C nop
0000069E cmp r7, [r0]
000006A0 jmpr cc_Z, loc_6AA
000006A2 mov [r0], r7
000006A4 nop
000006A6 cmp r7, [r0]
000006A8 jmpr cc_NZ, loc_70E
000006AA loc_6AA:
000006AA shl r7, #1
000006AC jmpr cc_NC, loc_69A
000006AE mov r7, #0FFFEh
000006B2 loc_6B2:
000006B2 mov [r0], r7
000006B4 nop
000006B6 cmp r7, [r0]
000006B8 jmpr cc_Z, loc_6C2
000006BA mov [r0], r7
000006BC nop
000006BE cmp r7, [r0]
000006C0 jmpr cc_NZ, loc_70E
000006C2 loc_6C2:
000006C2 rol r7, #1
000006C4 jb r7.0, loc_6B2
000006C8 mov r8, r1
000006CA add r8, #2
000006CC loc_6CC:
000006CC mov [-r8], r4
000006CE cmp r8, r0
000006D0 jmpr cc_UGT, loc_6CC
000006D2 mov r8, r1
000006D4 loc_6D4:
000006D4 mov r7, [r8]
000006D6 add r7, r4
000006D8 mov [r8], r7
000006DA cmp r7, r6
000006DC jmpr cc_NZ, loc_6EA
000006DE mov r7, [r8]
000006E0 add r7, r5
000006E2 mov [r8], r7
000006E4 nop
000006E6 mov r7, [r8]
000006E8 jmpr cc_Z, loc_704
000006EA loc_6EA:
000006EA mov [r8], r4
000006EC nop
000006EE mov r7, [r8]
000006F0 add r7, r4
000006F2 mov [r8], r7
000006F4 cmp r7, r6
000006F6 jmpr cc_NZ, loc_70E
000006F8 mov r7, [r8]
000006FA add r7, r5
000006FC mov [r8], r7
000006FE nop
00000700 mov r7, [r8]
00000702 jmpr cc_NZ, loc_70E
00000704 loc_704:
00000704 sub r8, #2
00000706 jmpr cc_C, loc_71C
00000708 cmp r8, r0
0000070A jmpr cc_NC, loc_6D4
0000070C jmpr cc_UC, loc_71C
0000070E ; ---------------------------------------------------------------------------
0000070E loc_70E:
0000070E or r15, r2
00000710 mov r7, #0
00000712 mov r8, r1
00000714 loc_714:
00000714 add r8, #2
00000716 loc_716:
00000716 mov [-r8], r7
00000718 cmp r8, r0
0000071A jmpr cc_UGT, loc_716
0000071C loc_71C:
0000071C jmpi cc_UC, [r3]
0000071E ; ---------------------------------------------------------------------------
0000071E loc_71E:
0000071E mov r4, r0
00000720 movb rh5, #55h
00000724 loc_724:
00000724 add r4, #10h
00000728 cmp r4, r1
0000072A jmpr cc_UGT, loc_7DA
0000072C mov r9, r4
0000072E add r9, #7
00000730 mov r8, r9
00000732 add r8, #8
00000736 add r8, #1
00000738 loc_738:
00000738 movb [-r8], rh5
0000073A cmp r8, r9
0000073C jmpr cc_UGT, loc_738
0000073E mov r8, r9
00000740 add r8, #7
00000742 loc_742:
00000742 movb rl5, [r8]
00000744 addb rl5, rh5
00000746 movb [r8], rl5
00000748 sub r8, #1
0000074A cmp r8, r9
0000074C jmpr cc_NC, loc_742
0000074E mov r8, r9
00000750 add r8, #7
00000752 loc_752:
00000752 movb rl5, [r8]
00000754 addb rl5, rh5
00000756 movb [r8], rl5
00000758 cmpb rl5, ONES
0000075C jmpr cc_Z, loc_776
0000075E movb [r8], rh5
00000760 nop
00000762 movb rl5, [r8]
00000764 addb rl5, rh5
00000766 movb [r8], rl5
00000768 nop
0000076A movb rl5, [r8]
0000076C addb rl5, rh5
0000076E movb [r8], rl5
00000770 cmpb rl5, ONES
00000774 jmpr cc_NZ, loc_7B8
00000776 loc_776:
00000776 sub r8, #1
00000778 cmp r8, r9
0000077A jmpr cc_NC, loc_752
0000077C mov r8, r9
0000077E add r8, #7
00000780 loc_780:
00000780 movb rl5, [r8]
00000782 addb rl5, #1
00000784 loc_784:
00000784 movb [r8], rl5
00000786 nop
00000788 movb rl5, [r8]
0000078A jmpr cc_Z, loc_7B0
0000078C movb [r8], rh5
0000078E nop
00000790 movb rl5, [r8]
00000792 addb rl5, rh5
00000794 movb [r8], rl5
00000796 nop
00000798 movb rl5, [r8]
0000079A addb rl5, rh5
0000079C movb [r8], rl5
0000079E cmpb rl5, ONES
000007A2 jmpr cc_NZ, loc_7B8
000007A4 movb rl5, [r8]
000007A6 addb rl5, #1
000007A8 movb [r8], rl5
000007AA nop
000007AC movb rl5, [r8]
000007AE jmpr cc_NZ, loc_7B8
000007B0 loc_7B0:
000007B0 sub r8, #1
000007B2 cmp r8, r9
000007B4 jmpr cc_NC, loc_780
000007B6 jmpr cc_UC, loc_724
000007B8 ; ---------------------------------------------------------------------------
000007B8 loc_7B8:
000007B8 or r15, r2
000007BA mov r4, r0
000007BC loc_7BC:
000007BC add r4, #10h
000007C0 cmp r4, r1
000007C2 jmpr cc_UGT, loc_7DA
000007C4 mov r9, r4
000007C6 add r9, #7
000007C8 mov r8, r9
000007CA add r8, #8
000007CE add r8, #1
000007D0 movb rl5, #0
000007D2 loc_7D2:
000007D2 movb [-r8], rl5
000007D4 cmp r8, r9
000007D6 jmpr cc_UGT, loc_7D2
000007D8 jmpr cc_UC, loc_7BC
000007DA ; ---------------------------------------------------------------------------
000007DA loc_7DA:
000007DA jmpi cc_UC, [r3]
000007DC ; ---------------------------------------------------------------------------
000007DC retiAudiatur et altera pars !
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
[uquote="zAries",url="/forum/viewtopic.php?p=4796321#p4796321"]ТС datasheet видимо читает по диагонали
[/uquote]Судя по:
[uquote="Kot4512",url="/forum/viewtopic.php?p=4796398#p4796398"]т.е сам исполняемый код хранится по адресу 0F206h?[/uquote]ТС вообще ничего не читает. Ни даташит, ни чего ему тут на форуме пишут.
PS: Бесполезно это всё... Если ТС не может уже почти месяц осилить даже примитивный вектор старта, то о каком "дизассемблировании прошивки" можно вести речь? Оно в 100500 раз сложнее.
[uquote="Kot4512",url="/forum/viewtopic.php?p=4796398#p4796398"]т.е сам исполняемый код хранится по адресу 0F206h?[/uquote]ТС вообще ничего не читает. Ни даташит, ни чего ему тут на форуме пишут.
PS: Бесполезно это всё... Если ТС не может уже почти месяц осилить даже примитивный вектор старта, то о каком "дизассемблировании прошивки" можно вести речь? Оно в 100500 раз сложнее.
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
Я тут немного по читал даташит и кое-что понял: т.к там точка входа считай обработчик аппаратной ловушки перезагрузки он вызывает другие функции и ту часть из их которая не дизассемблировалась можно пометить как код, нажав на клавишу c и выбрав там анализ, тогда мы получим из этих байт реальные инструкции но возникает один нюанс при дизассемблировании при помощи клавиши c ida не выделяет функции на успешно дизассемблированном фрагменте кода, но ida разделяет получившееся инструкции на блоки и разделяет их комментариями. Но насколько мне известно один такой блок не равно одной функции. Тогда возникает вопрос как мне среди получившейся каши инструкций выделить отдельные функции ибо если просто взять какой-нибудь произвольный участок кода и пометить его как функцию я сомневаюсь что это будет правильно. Должен же быть какой-то способ как их выделить?
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
[uquote="Kot4512",url="/forum/viewtopic.php?p=4801679#p4801679"]...как мне среди получившейся каши ?[/uquote]
Я вот ничего не понял в этой каше.
Такое впечатление, что написано через переводчик.
Я вот ничего не понял в этой каше.
Такое впечатление, что написано через переводчик.
Audiatur et altera pars !
Re: Дизассемблирование прошивки siemens (infeneon) C167CS
У меня вот новый вопрос появился: IDA почему-то изначально и даже после моей настройки неправильно интерпретирует большую часть объявлений прерываний.
Пример плохой интерпретации:
ROM:00000040: CC0INT:
jmps 9, 250h; 90250h
Пример хорошей интерпретации:
ROM:00000028 BTRAP:
jmps 0, BTRAP_HANDLER
В плохом примере у нас переход к 9-му сегменту кода которого просто не существует, также как и адреса 0x90250 т.к моя прошивка весит всего ровно 512 Кбайт и её граница по адресам это 0x7FFFF, но уж никак не 0x90250. И все валидные объявления прерываний переходят к 0-му сегменту (по поим наблюдениям), а невалидные к 9-му.
Как это выправить?
Мои настройки: удалил все (сегменты кроме ROM) т.к у меня в файле помимо ROM ничего то и нет, расширил сегмент ROM до границ файла.
P.S: Под сегментами в настройках я имел ввиду разделы такие как: ROM, XRAM, IRAM и т.д, открывающиеся через Shift+F7
Пример плохой интерпретации:
ROM:00000040: CC0INT:
jmps 9, 250h; 90250h
Пример хорошей интерпретации:
ROM:00000028 BTRAP:
jmps 0, BTRAP_HANDLER
В плохом примере у нас переход к 9-му сегменту кода которого просто не существует, также как и адреса 0x90250 т.к моя прошивка весит всего ровно 512 Кбайт и её граница по адресам это 0x7FFFF, но уж никак не 0x90250. И все валидные объявления прерываний переходят к 0-му сегменту (по поим наблюдениям), а невалидные к 9-му.
Как это выправить?
Мои настройки: удалил все (сегменты кроме ROM) т.к у меня в файле помимо ROM ничего то и нет, расширил сегмент ROM до границ файла.
P.S: Под сегментами в настройках я имел ввиду разделы такие как: ROM, XRAM, IRAM и т.д, открывающиеся через Shift+F7