Сейчас на форуме: Dart Raiden, Alf, bedop66938 (+7 невидимых)

 eXeL@B —› Электроника —› Реверс с167cs флэш с эбу моторника
Посл.ответ Сообщение

Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 июня 2017 23:42 · Поправил: tritri
· Личное сообщение · #1

всем привет.
не могу разобраться как работает алгоритм проверки и записи ошибки при обрыве плюса.
на транзистор(M1D2) через сопротивление 5 ом(подогрев датчика кислорода) подается плюс,а 44(мс#44) нога проца контролирует этот плюс(когда транзистор закрыт)
при обрыве этого плюса пишется номер ошибки.
44 нога это вход таймера 2( T2EUD ) и АЦП AN15
на схеме справа вверху на транзисторе эта нога.
прошелся по коду наставил коментов но понять пока не могу.
правильно ли я открыл прошивку в ида v6.8?
схему эбу и файл иды прилагаю.
огромное спасибо всем кто примет участие.
http://rgho.st/7Jgh7XrnM

добавил схемку блока таймеров. ногу T2EUD мс#44 обвел.

a7e5_30.06.2017_EXELAB.rU.tgz - схема таймера.gif




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 29 июня 2017 23:52
· Личное сообщение · #2

уважайте чужое время
2 минуты рекламы задержки и куча баннеров
rghost или sendspace не в моде ?



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 июня 2017 23:56
· Личное сообщение · #3

счас перезалью.сори.



Ранг: 92.4 (постоянный), 2thx
Активность: 0.040
Статус: Участник

Создано: 30 июня 2017 07:41
· Личное сообщение · #4

А почему тема не в разделе про электронику ?



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 июня 2017 09:33
· Личное сообщение · #5

вот кажись нашел mov r9, #0Fh ; p5.15 M1D2 дк2
надо было искать по АЦП а я новичок и меня сбило название T2EUD и я искал по таймеру

Добавлено спустя 14 часов 23 минуты
Code:
  1. ROM:00000948 sub_948:                                ; CODE XREF: sub_8E8+4Ap
  2. ROM:00000948                                         ; ROM:00000A22p
  3. ROM:00000948                 cmp     r9, #0Fh
  4. ROM:0000094C                 jmpr    cc_C, loc_95E   ; переход если 10 -15? произвольно выбрал 10.
  5. ROM:0000094E                 add     r9, #1
  6. ROM:00000950                 bmov    P4_4, r9.0      ; CAN линия
  7. ROM:00000954                 bmov    P4_7, r9.1      ; CAN линия
  8. ROM:00000958                 mov     r9, #0Fh        ; зачем здесь запись p5.15?
  9. 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 точно не порт пишется.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 01 июля 2017 14:44 · Поправил: reversecode
· Личное сообщение · #6

скачайте ассемблер к этому процу и все станет понятно
если судить по аналогии к другим ассемблерам то все вроде бы понятно

Code:
  1. ROM:0000094C                 jmpr    cc_C, loc_95E   ; переход если 10 -15? произвольно выбрал 10.

переход если 15 (больше ? меньше ? равно ?) нужно смотреть в ассемблер

Code:
  1. ROM:00000958                 mov     r9, #0Fh        ; зачем здесь запись p5.15?

аргумент 15 передается в функцию паузы

Code:
  1. ROM:0000095E                 or      r9, #0B000h     ; логическое сложение. и какой тут будет порт? явно не с 0 по 15

зависит от того что в r9
0B000Fh например если 15

Code:
  1. ROM:00000974                 and     r9, #3FFh       ; логическое умножение. можно заменить на mov.

логическое И выбираем из r9 только 0x3FF по маске

почитайте все же ассемблер, зачем угадывать



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2017 18:28
· Личное сообщение · #7

Code:
  1.  sub_5B4:                                ; CODE XREF: sub_948+12p
  2. ROM:000005B4                 mov     r3, #7Ah ; 'z'
  3. ROM:000005B8
  4. ROM:000005B8 loc_5B8:                                ; CODE XREF: sub_5B4+6j
  5. ROM:000005B8                 cmpd1   r3, #0
  6. ROM:000005BA                 jmpr    cc_NZ, loc_5B8
  7. ROM:000005BC                 ret

это функция паузы,забыл указать.
с and r9, #3FFh я разобрался, сюда результат преобразования пишется с вольт в цифру, 12бит млад *3FF
в этом мк 16 портов ацп. в ADCON пишется с 0 по 15, что делает or r9, #0B000h ; ваще непонимаю ттсюда и непонимаю смысл функции.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 01 июля 2017 18:42
· Личное сообщение · #8

or r9, #0B000h
https://en.wikipedia.org/wiki/OR_gate
r9 = r9 OR #0B000h



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2017 21:55
· Личное сообщение · #9

поправлены коменты.всем спасибо.
Code:
  1.  sub_948:                                ; CODE XREF: sub_8E8+4Ap
  2. ROM:00000948                                         ; ROM:00000A22p
  3. ROM:00000948                 cmp     r9, #0Fh
  4. ROM:0000094C                 jmpr    cc_C, loc_95E   ; прыжок, если в R9 значение меньше #0Fh (то есть от 0 до Eh)
  5. ROM:0000094E                 add     r9, #1
  6. ROM:00000950                 bmov    P4_4, r9.0      ; CAN линия
  7. ROM:00000954                 bmov    P4_7, r9.1      ; CAN линия
  8. ROM:00000958                 mov     r9, #0Fh        ; p5.15
  9. ROM:0000095A                 calla   cc_UC, sub_5B4  ; пауза без r9
  10. ROM:0000095E
  11. ROM:0000095E loc_95E:                                ; CODE XREF: sub_948+4j
  12. ROM:0000095E                 or      r9, #0B000h     ; #0B скорость преобразования+порт r9 p5.15=#0B00Fh
  13. ROM:00000962                 mov     ADCON, r9       ; записываем скорость и порт #0B00Fh
  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       ; старш 4бит=p5.15 ост 12бит=результат.после считки результата ADBSY=1
  20. ROM:00000974                 and     r9, #3FFh       ; в r9=12бит результат умн битно на 3FF.
  21. ROM:00000978
  22. ROM:00000978 loc_978:                                ; CODE XREF: sub_948+36j
  23. ROM:00000978                 mov     [r10], r9
  24. ROM:0000097A                 ret



 eXeL@B —› Электроника —› Реверс с167cs флэш с эбу моторника
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати