tritri 0 1 июля, 2017 Опубликовано 1 июля, 2017 · Жалоба 01.ROM:00000948 sub_948: ; CODE XREF: sub_8E8+4Ap 02.ROM:00000948 ; ROM:00000A22p 03.ROM:00000948 cmp r9, #0Fh 04.ROM:0000094C jmpr cc_C, loc_95E ; переход если 10 -15? произвольно выбрал 10. 05.ROM:0000094E add r9, #1 06.ROM:00000950 bmov P4_4, r9.0 ; CAN линия 07.ROM:00000954 bmov P4_7, r9.1 ; CAN линия 08.ROM:00000958 mov r9, #0Fh ; зачем здесь запись p5.15? 09.ROM:0000095A calla cc_UC, sub_5B4 ; пауза 10.ROM:0000095E 11.ROM:0000095E loc_95E: ; CODE XREF: sub_948+4j 12.ROM:0000095E or r9, #0B000h ; логическое сложение. и какой тут будет порт? явно не с 0 по 15 13.ROM:00000962 mov ADCON, r9 ; записываем выбраный порт 14.ROM:00000966 bset ADST ; включаем АЦП 15.ROM:00000968 16.ROM:00000968 loc_968: ; CODE XREF: sub_948:loc_968j 17.ROM:00000968 jb ADBSY, loc_968 ; время преобразоания 0=готово.Переход если бит установлен 18.ROM:0000096C jbc word_FDD0.4, loc_97C; если бит=1 то Переход и сброс бита 19.ROM:00000970 mov r9, ADDAT ; результат преобразования.после считки результата ADBSY=1 20.ROM:00000974 and r9, #3FFh ; логическое умножение. можно заменить на mov. 21.ROM:00000978 22.ROM:00000978 loc_978: ; CODE XREF: sub_948+36j 23.ROM:00000978 mov [r10], r9 24.ROM:0000097A ret 25.ROM:0000097C; --------------------------------------------------------------------------- 26.ROM:0000097C 27.ROM:0000097C loc_97C: ; CODE XREF: sub_948+24j 28.ROM:0000097C mov r9, #0 29.ROM:0000097E jmpr cc_UC, loc_978 всем здрасте, коменты я правильно написал? что делает эта функция. обьясните пожалуйста. судя по команде or в ADCON точно не порт пишется. cmp r9, #0Fh jmpr cc_C, loc_95E при каких условиях прыжок? or r9, #0B000h что в r9? and r9, #3FFh что в r9? что делают эти команды? описания команд я брал с www.kaskod.ru но не все досупно понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
controller_m30 1 1 июля, 2017 Опубликовано 1 июля, 2017 (изменено) · Жалоба Моё предположение. В первом куске кода (строки 3-9) проверяется будущий номер канала АЦП, и если он >=15, то на линии P4_4, P4_7 выводится какое-то значение, связанное с двумя младшими битами R9 - после увеличения их на 1. Зачем это, без схемы устройства сказать трудно. А если номер канала <15, то переход к строкам 11-14, где значение в R9 дополняется битами, задающими скорость оцифровки АЦП (команда OR R9,#0B000h), это значение загружается в ADCON, и запускается конверсия. Дальше вроде всё ясно. Я нашёл даташит на C167CR от Infineon, и если он правильный, то вот формат регистра ADCON (картинка). Например, если в R9 было значение #0007h, то после OR R9,#0B000h - там будет значение #0B007h. Вот это #B в старшей тетраде - задаст скорость выборки и конверсии, а 7 - будет содержать номер канала. cmp r9, #0Fh jmpr cc_C, loc_95E при каких условиях прыжок? прыжок будет, если в R9 значение меньше #0Fh (то есть от 0 до Eh) or r9, #0B000h что в r9? В R9 будет #0B00xh, где х - номер канала, заданный в R9 изначально. and r9, #3FFh что в r9? В R9 будет результат конверсии, считанный из ADDAT, в котором старше 6 бит обнулены, а то что было "накрыто" маской #3FFh - осталось неизменным. Так "чистят" число от всяких посторонних данных, которые не нужны. В данном случае не нужны были старшие 6 бит. Изменено 1 июля, 2017 пользователем controller_m30 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 1 июля, 2017 Опубликовано 1 июля, 2017 · Жалоба спасибо все четко расписал. читаю вникаю. вот функция паузы,забыл добавить. sub_5B4: ; CODE XREF: sub_948+12p 02.ROM:000005B4 mov r3, #7Ah; 'z' 03.ROM:000005B8 04.ROM:000005B8 loc_5B8: ; CODE XREF: sub_5B4+6j 05.ROM:000005B8 cmpd1 r3, #0 06.ROM:000005BA jmpr cc_NZ, loc_5B8 07.ROM:000005BC ret Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 1 июля, 2017 Опубликовано 1 июля, 2017 (изменено) · Жалоба вот такое у меня описание флагов с сайта, и как понять сс_С что за перенос или что за заем? мож кто обьяснит. http://www.kaskod.ru/filemanager/download/23157 http://www.kaskod.ru/article/10scom/ Изменено 1 июля, 2017 пользователем tritri Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 1 июля, 2017 Опубликовано 1 июля, 2017 · Жалоба перенос или заем - смотрите на то, как используют этот флаг инструкции сложения/вычитания с использование переноса/займа от предыдущей операции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 2 июля, 2017 Опубликовано 2 июля, 2017 (изменено) · Жалоба ROM:000015C4 mov r1, #5B5Ch ROM:000015C8 mov r2, #0E184h ROM:000015CC ROM:000015CC loc_15CC: ; CODE XREF: sub_15AC+2Aj ROM:000015CC movb rh3, #0 ; обнуляем старш байт ROM:000015CE movb rl3, [r1+] ; сдесь как прибавляется? ROM:000015D0 callr sub_15DA ; считка портов 1....15 ROM:000015D2 cmpi2 r2, #0E1A4h ; сравниваем результат ROM:000015D6 jmpr cc_C, loc_15CC ; прыжок если r2<#0E1A4h ROM:000015D8 ret собственно вопросик в коменте. подскажите Изменено 2 июля, 2017 пользователем tritri Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
controller_m30 1 2 июля, 2017 Опубликовано 2 июля, 2017 · Жалоба ROM:000015C4 mov r1, #5B5Ch ................... ROM:000015CE movb rl3, [r1+] ; сдесь как прибавляется? ...................... В RL3 будет загружен байт из ячейки памяти, адрес которой находится в регистре R1, после чего значение в R1 будет увеличено на 1. Поскольку эта команда будет вызвана в цикле несколько раз, то сначала считается байт из ячейки по адресу #5B5Ch, при следующем витке цикла из #5B5Dh, потом из #5B5Еh, и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 4 июля, 2017 Опубликовано 4 июля, 2017 (изменено) · Жалоба ROM:000008F4 movb rl0, [r4+4EB8h] ; здесь должен быть порт ацп p5.0...p5.15 В r4 находится адресс на данные но там FFFFFF видать это оперативка которая заполняется при работе проца где эти данные искать как они туда попадают? по второй фотке seg012:015C calls 11h, 4EB8h ; 114EB8h вот таких вызовов более 100 что к чему не пойму. ложу бинарник флеши мож кто глянет. мож у кого дизасемблер другой. Изменено 5 июля, 2017 пользователем tritri Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 6 июля, 2017 Опубликовано 6 июля, 2017 · Жалоба собственно не важно какой порт будет в r4 ,сдесь идет проверка порта на соответствие напряжения. а вот возможное решение вопроса т.е. отключение проверки порта 5.15 ROM:00000948 sub_948: ; CODE XREF: sub_8E8+4Ap ROM:00000948 ; ROM:00000A22p ROM:00000948 cmp r9, #0Fh ROM:0000094C jmpr cc_C, loc_95E ; прыжок, если в R9 значение меньше #0Fh (то есть от 0 до Eh) ROM:0000094E add r9, #1 ROM:00000950 bmov P4_4, r9.0 ; CAN линия при 0Fh=0, при 10h=1 ROM:00000954 bmov P4_7, r9.1 ; CAN линия 0 ROM:00000958 mov r9, #0Fh ; p5.15 вместо 15 порта ставим например 13 !!! ROM:0000095A calla cc_UC, sub_5B4 ; пауза без r9 ROM:0000095E ROM:0000095E loc_95E: ; CODE XREF: sub_948+4j ROM:0000095E or r9, #0B000h ; #0B скорость преобразования+порт r9 p5.15=#0B00Fh ROM:00000962 mov ADCON, r9 ; записываем скорость и порт #0B00Fh ROM:00000966 bset ADST ; включаем АЦП ROM:00000968 ROM:00000968 loc_968: ; CODE XREF: sub_948:loc_968j ROM:00000968 jb ADBSY, loc_968 ; время преобразоания 0=готово.Переход если бит установлен ROM:0000096C jbc word_FDD0.4, loc_97C; если бит=1 то Переход и сброс бита ROM:00000970 mov r9, ADDAT ; старш 4бит=p5.15 ост 12бит=результат.после считки результата ADBSY=1 ROM:00000974 and r9, #3FFh ; в r9=12бит результат умн битно на 3FF. ROM:00000978 ROM:00000978 loc_978: ; CODE XREF: sub_948+36j ROM:00000978 mov [r10], r9 ROM:0000097A ret Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 16 июля, 2017 Опубликовано 16 июля, 2017 (изменено) · Жалоба чип SAK-C167CS-LM 4DC4h 4D9Eh по этим адресам лежит dword_4830: dd 0FFFFFFFFh, 0FFFFFFFFh, 0FFFFFFFFh, 0FFFFFFFFh, 0FFFFFFFFh подскажите как сюда попадают данные? пробовал по разному искать но опыто мало. или где найти специалиста по реверсу прошивок? бинарник прошивки прилагаю 29F200_380.zip Изменено 17 июля, 2017 пользователем tritri Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 18 июля, 2017 Опубликовано 18 июля, 2017 (изменено) · Жалоба подправил листинг ида, смотрите в аттаче. IDA_listing.zip Изменено 18 июля, 2017 пользователем tritri Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 19 июля, 2017 Опубликовано 19 июля, 2017 · Жалоба Увы, у Вас ВСЁ неправильно. Для начала надо б понять, на какие адреса приходится эта внешняя память. В том, что выложено, она волшебным образом накладывается на SRAM,SFR,... - в реальной жизни так не бывает. Также у этих C166 есть различные режимы адресации. Почитайте обязательно про регистры DPP0..DPP3. И сами данные - оно программатором прямо с флешки считано, или какой-то утилитой? Утилиты для чтения ECU, на мой дилетантский взгляд, могут отдельно выдавать область с настройками, и отдельно - с кодом (хотя "в железе" всё это хранится рядом). Так что вместо FF'ов в реальности могут быть данные. И про IDA почитать стоит. Она не особо умная, много чего надо делать руками (или скриптами). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 20 июля, 2017 Опубликовано 20 июля, 2017 (изменено) · Жалоба И сами данные - оно программатором прямо с флешки считано, или какой-то утилитой? все с флэши 29F200, програмка чип лоадер сливает всю флэш в буте. по адресам должны лежать данные для сравнения результатов проверки портов ацп, берутся они с тех самых настроек с адреса 8080 по FFFF в сегменте 011 я раскрыл функции вот там есть ADCON возможно там есть указатель на данные для сравнения Изменено 20 июля, 2017 пользователем tritri Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tritri 0 20 июля, 2017 Опубликовано 20 июля, 2017 · Жалоба сдесь опять вместо данных фки. подскажите как совместить данные с флэши с памятью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться