OUT-CLUB.RU

OUT-CLUB.RU (https://out-club.ru/board/index.php)
-   Outlander XL 2007 - 2012 г.в. - Электроника, мультимедиа, навигация (https://out-club.ru/board/forumdisplay.php?f=271)
-   -   Исследование механизма работы ПО MMCS (https://out-club.ru/board/showthread.php?t=37735)

Bedolaga 07.06.2011 18:09

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Ёжик Пых (Сообщение 1031857)
Вот оно как. А я думал это с JTAG связано :).

Убедитесь сами на примере начального фрагмента:

Код:

.text:00013A64                .export start
.text:00013A64 start:
.text:00013A64                mov.l  r8, @-r15
.text:00013A66                mov.l  r9, @-r15
.text:00013A68                mov.l  r10, @-r15
.text:00013A6A                mov.l  r11, @-r15
.text:00013A6C                mov.l  r12, @-r15
.text:00013A6E                mov.l  r13, @-r15
.text:00013A70                sts.l  pr, @-r15
.text:00013A72                add    #-h'68, r15
.text:00013A74                mov    r6, r8
.text:00013A76                mov.l  @(h'28C,pc), r4 ; [00013D04] = aStartJitdebugg
.text:00013A78                mov.l  @(h'28C,pc), r9 ; [00013D08] = _NKDbgPrintfW
.text:00013A7A                jsr    @r9 ; _NKDbgPrintfW
.text:00013A7C                nop
.text:00013A7E                mov.l  @(h'28C,pc), r4 ; [00013D0C] = aSetJitDebugger
.text:00013A80                jsr    @r9 ; _NKDbgPrintfW
.text:00013A82                nop

где NKDbgPrintfW - это штатная ВинЦе функция отладочного вывода.

Вот Вы ранее писали:

Цитата:

Нужен дамп RAM запущеной системы...
а ведь jitdbgr это фактически умеет делать, да еще при своем вызове пишет логи на "Disk2" в файл HL.TXT:

Код:


.text:00016404                mov.l  @(h'B0,pc), r4 ; [000164B8] = aLgd1
.text:00016406                mov.l  @(h'B4,pc), r3 ; [000164BC] = _CreateFileW
.text:00016408                jsr    @r3 ; _CreateFileW
.text:0001640A                mov    #0, r6
.text:0001640C                cmp/eq  #-1, r0
.text:0001640E                bt/s    loc_16448
.text:00016410                mov    r0, r8
.text:00016412                mov    #8, r3
.text:00016414                mov.l  r13, @(h'1C,r15)
.text:00016416                add    r14, r3
.text:00016418                mov.l  @(h'A4,pc), r6 ; [000164C0] = aHl_txt
.text:0001641A                mov.l  r3, @(h'18,r15)
.text:0001641C                mov    #4, r3
.text:0001641E                mov.l  r3, @(h'14,r15)
.text:00016420                add    r14, r3
.text:00016422                mov.l  r3, @(h'10,r15)
.text:00016424                mov    #h'C, r7
.text:00016426                mov.l  @(h'9C,pc), r3 ; [000164C4] = _DeviceIoControl
.text:00016428                mov    #0, r5
.text:0001642A                jsr    @r3 ; _DeviceIoControl
.text:0001642C                mov    r8, r4
.text:0001642E                cmp/eq  #1, r0
.text:00016430                bf/s    loc_16442
.text:00016432                mov    r8, r4
.text:00016434                mov.l  @(4,r14), r6
.text:00016436                mov    r14, r7
.text:00016438                mov.l  @(h'8C,pc), r3 ; [000164C8] = _WriteFile
.text:0001643A                mov    r12, r5
.text:0001643C                jsr    @r3 ; _WriteFile
.text:0001643E                mov.l  r13, @(h'10,r15)
.text:00016440                mov    r8, r4


Ёжик Пых 08.06.2011 01:01

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Bedolaga (Сообщение 1031937)

а ведь jitdbgr это фактически умеет делать, да еще при своем вызове пишет логи на "Disk2" в файл HL.TXT:

Алексей, позвольте на "ты", если нет возражений ?

Этот Disk2 спокойно может оказаться RAM диском, я видел ссылки на его создание в коде. Жесткий диск система обзывает по моему HDD1, HDD2 и т.д.

---------- Добавлено в 01:35 ---------- Предыдущее сообщение было написано в 01:01 ----------

Цитата:

Сообщение от Filly (Сообщение 1032258)
уважаемые одноклубники,
живу в славном городе Саратове, кто нибудь может наладить навигацию по городу? у меня почему то нету ее....если есть желающие помочь пишите в ЛС плиз)

Читайте внимательно шапку темы и сдклайте сами. В версии карт 2010-А Саратов нарисован достаточно подробно.

Bedolaga 08.06.2011 02:50

Вложений: 1
Цитата:

Сообщение от Ёжик Пых (Сообщение 1032273)
Алексей, позвольте на "ты", если нет возражений ?

Этот Disk2 спокойно может оказаться RAM диском, я видел ссылки на его создание в коде. Жесткий диск система обзывает по моему HDD1, HDD2 и т.д.

Конечно, Дмитрий.

По поводу DSK2:
там вот какие еще фрагменты есть:

Код:


.text:00013B62                mov.l  @(h'210,pc), r4 ; [00013D74] = aDsk2
.text:00013B64                mov.l  @(h'1C0,pc), r3 ; [00013D28] = _CreateFileW
.text:00013B66                jsr    @r3 ; _CreateFileW
.text:00013B68                mov    r10, r5
.text:00013B6A                cmp/eq  #-1, r0
.text:00013B6C                bf/s    loc_13B7C
.text:00013B6E                mov    r0, r8
.text:00013B70                mov.l  @(h'204,pc), r4 ; [00013D78] = aCouldNotOpenHd
.text:00013B72                mov.l  @(h'194,pc), r3 ; [00013D08] = _NKDbgPrintfW
.text:00013B74                jsr    @r3 ; _NKDbgPrintfW
 
....
 
.text:000114B0 aCouldNotOpenHd:                        ; DATA XREF: start:off_13D78o
.text:000114B0                unicode 0, <Could not open HDD device(DSK2). STANDBY IMMEDIATE failed>

все это говорит, за то, что JIT дебаггер открывает файл на HDD для логгинга и пишет туда. Я конечно не ратую прямо вот сейчас все это ковырять, но думаю как способ делать дампы на диск и управлять процессом в динамике - это хороший, годный способ.

Update:

что радует, в MMCS режим JIT отладки включен, т.е. не нужно мучительно править и перешивать реестр, как описано здесь.

Действительно, смотрим содержимое реестра посредство loadingview (см. вложенную картинку). Режим отладки включен. Значит можно этим пользоваться.

Update2:

еще немного поковырявшись с использованием в MMCS JIT отладчика и функции вывода отладочных сообщений NKDbgPrintfW могу высказать предположение, что та маленькая дырочка с торца экрана (типа аудиоджека) это COM порт, через который в частности может проводится отладка MMCS посредством Platform Builder'a. Так-то вот.

Alex01 08.06.2011 13:31

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Bedolaga (Сообщение 1032298)
По поводу DSK2:

все это говорит, за то, что JIT дебаггер открывает файл на HDD для логгинга и пишет туда.

на жестком диске есть пустой раздел, возможно он как раз для этих целей и существует..

Bedolaga 08.06.2011 13:48

Исследование механизма работы программного обеспечения MMCS
 
Я хотел вот прямо сегодня вечером проверить гипотезу о MMCS COM порте, взял уже с собой ноутбук в гараж и вдруг понял, что у меня на нем нет COM порта.

Поэтому у кого COM порт под рукой и есть немного свободного времени проделать следущий простой эксперимент:

1) Установить на свой ноутбук любой из COM sniffer'ов. Например взяв отсюда: http://easyelectronics.ru/links/oldforum/oursoft/com

2) найти кабель DB9-Female to 3.5mm Jack или спаять его самому: http://www.pccables.com/87050.htm


подключить ноутбук с установленным сниффером к MMCS и запустить MMCS. Посмотреть что там в COM порт со стороны MMCS шлется в процессе запуска, если шлется. Мне кажется туда должны как минимум слаться текстовые сообщения JIT отладчика о своей инициализации.

ну и понятно дело, если все это работает и таки serial port, можно легко сварганить эмулятор хитрого мицовского ключа для обновления карт. Это как побочный продукт.

Alex01 08.06.2011 16:27

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Bedolaga (Сообщение 1032582)
Поэтому у кого COM порт под рукой и есть немного свободного времени проделать следущий простой эксперимент:

можно USB-COM переходник использовать, т.к. нынче ком-портов ни в одном ноуте не осталось :) И еще один момент - часто ком-порты в такого рода устройствах не честные, там может быть 3.3 вольта, а может быть 5, вместо 12. Честный ком-порт будет давать 12 вольт. Надо этот момент тоже не упустить, чтобы не пожечь электронику в MMCS. Видимо можно просто тестером замерить на 3.5 мм джеке напруги.

Ёжик Пых 08.06.2011 17:03

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Bedolaga (Сообщение 1032582)
Я хотел вот прямо сегодня вечером проверить гипотезу о MMCS COM порте, взял уже с собой ноутбук в гараж и вдруг понял, что у меня на нем нет COM порта....

ОТСТАВИТЬ!
Нет там СОМ порта. Это Шина I2C выведенная с М16С дисплея. Уровни TTL. Если правильный СОМ порт с +-12В и током 20 мА как по спецификации - есть шанс увалить контроллер в дислее.

Bedolaga 08.06.2011 17:09

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Alex01 (Сообщение 1032710)
можно USB-COM переходник использовать, т.к. нынче ком-портов ни в одном ноуте не осталось :) И еще один момент - часто ком-порты в такого рода устройствах не честные, там может быть 3.3 вольта, а может быть 5, вместо 12. Честный ком-порт будет давать 12 вольт. Надо этот момент тоже не упустить, чтобы не пожечь электронику в MMCS. Видимо можно просто тестером замерить на 3.5 мм джеке напруги.

Алекс, я так и поступил, не вытерпил: купил USB-COM переходник с красивым и загадочным названием Orient uss-101 в ближайшем магазине, переходник с последовательного порта на аудиоджек у меня уже был. Собрал все и подключил к MMCS. Каюсь, напряжений не мерил, спешил, понадеялся на Богородицу и Николая Угодника. И они не подвели. Вроде бы ничего не пожег. При включении зажигания ничего в порт не шлется. Сперва меня это расстроило, но потом подумал, что ядро-то уже в памяти, т.е. ждать инициализации дебагера и сообщений об этом не следует. Потом поперли пачки байтов с большой частотой. После выключения ключа зажигания несколько секунд слались байты, потом все встало. Если кому интересно, лог могу показать, но он не сильно читаемый. Важен вывод: все-таки похоже это COM. Было бы интересно, что получили другие.
Например Ёжик Пых. Я так понял, что он купил оригинальный ключ. В принципе можно было бы подсмотреть обмен.

============

Отбой. Ёжик Пых крайне не рекомендует и я ему полностью верю.

Bedolaga 08.06.2011 17:33

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Ёжик Пых (Сообщение 1032730)
ОТСТАВИТЬ!
Нет там СОМ порта. Это Шина I2C выведенная с М16С дисплея. Уровни TTL. Если правильный СОМ порт с +-12В и током 20 мА как по спецификации - есть шанс увалить контроллер в дислее.

Жуть! :what: Теперь буду знать. Но снифер как-то что-то из порта читал, тем не менее.
Дмитрий, а куда ты подсоединял ключ при обновлении карт? Я этот ключ на твоих фотографиях видел.

Фрагмент дампа, если кому интересно:

Цитата:

000001 19:59:48.218 FF
000002 19:59:49.656 FF FF
000003 19:59:51.328 FF
000004 19:59:52.890 FF FF FF FF FF FF FF FF FF FF FF FE FF DF FF FF
000005 19:59:53.578 FF F7 FF FF FF FF FF F7 FD FF FF FF FF FF FF FF
000006 19:59:53.718 FF FF FF FF EF FF FF FF FF FF BF F7 FF 7F FF EF
000007 19:59:53.765 FF DF F7 FF FE FF F5 5F FE DF FF F7 F7 EE 7F FA
000008 19:59:53.796 FF DB EF EF FF ED BF FF FF EF BF FF FF FE 2F FF
000009 19:59:53.828 FF FE BE 7F FF E7 F7 FE FF BF EF DF FD BF FF FF
000010 19:59:53.875 F7 D2 FF E7 FE FE FE F7 FF F7 FF FF EF FB FE FB
000011 19:59:53.906 FF 7F FB FF F7 FB FF FF FF 7F EB FE FF FF F5 BF
000012 19:59:53.937 FF FF D3 F7 F7 FF BF FF FF FE FF F5 BF FE FF EF
000013 19:59:53.968 FF F9 FA 7F F7 FF 6E FB FF F9 DF DF FF FB FD 7F
000014 19:59:54.000 7F 9D 7A FF DE F7 DF 6F EE FF FF B7 F3 FF F7 FB
000015 19:59:54.031 FA ED F3 FF BE 3F EF FF FF FF FF BF 7F 7F ED BF
000016 19:59:54.078 FF FE BE 7F FF 7F FF F1 FB F7 EF FF 7B FF F8 FF
000017 19:59:54.093 7F FF 75 3B FB B7 EF FF FE BF BF EB FF FF 6F F5
000018 19:59:54.125 FF FF EB FE F9 9A FE CE DE 77 EF FF FF F5 F7 FD
000019 19:59:54.156 FE FF FF FD EF F5 FF AE 2F EB BF FF FF FA FF 2A


Ёжик Пых 08.06.2011 18:47

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Вложений: 1
Цитата:

Сообщение от Bedolaga (Сообщение 1032751)
Жуть! :what: Теперь буду знать. Но снифер как-то что-то из порта читал, тем не менее.
Дмитрий, а куда ты подсоединял ключ при обновлении карт? Я этот ключ на твоих фотографиях видел.

Фрагмент дампа, если кому интересно:

Гы. А если скорость порта поменять ещё интересней будет :). Там запрашивается устройство с адресом А0 на шине в цикле и ждет ACK, которого нет.

https://www.out-club.ru/board/attach...1&d=1307544174

Bedolaga 08.06.2011 18:51

Исследование механизма работы программного обеспечения MMCS
 
Дмитрий, я ж не виноват что у нас разница во времени 5 часов. Про скорость порта я тоже подумал :-))

А все же, куда ключик-то вставляется? (С) Буратино.

WhiteTiger 08.06.2011 20:11

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Ключ для обновления карт вставляется в этот самый 3.5 на торце экрана

https://out-club.ru/board/attachment...ez1gbfxhuh.gif

к сожалению, изображение утрачено

Bedolaga 08.06.2011 20:30

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от WhiteTiger (Сообщение 1032830)
Ключ для обновления карт вставляется в этот самый 3.5 на торце экрана

ну а раз так, то к ключу должен иметься программный доступ, причем не со стороны какого-то микрокода видеоконтроллера или еще какой периферии, а со стороны центрального процессора и исполняемого кода. Каким образом к этому порту (ключу) организован программный доступ мне совершенно пока не понятно. Он куда-то в память отмэппирован?

Но в сети много простых схем TTL- ES-232 конверторов, т.е. возможность перехватить и затем программно эмулировать этот ключ имеется.

Ёжик Пых 08.06.2011 23:48

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Bedolaga (Сообщение 1032794)
Дмитрий, я ж не виноват что у нас разница во времени 5 часов. Про скорость порта я тоже подумал :-))

А все же, куда ключик-то вставляется? (С) Буратино.

Алексей, лучше копай в сторону AuxInMotion :), с ключом там всё ясно, программный обработчик внутри HMIManager.exe. Если интересно, в этой теме мы его с cyv7 обсуждали подробно.
Дело в том, что обновление картографии возможно только с родного DVD, путем выполнения сценария с диска. Файлы там лежат упакованые в хитром формате (Пример http://rutracker.org/forum/viewtopic.php?t=3350044). Так вот, диски эти достать актуальные есть большая проблема, поэтому альтернативы съему харда и перезаписи напрямую пока нет.

Bedolaga 09.06.2011 03:19

Re: FAQ по штатной MMCS (Все вопросы в одной теме)
 
Цитата:

Сообщение от Ёжик Пых (Сообщение 1032909)
Алексей, лучше копай в сторону AuxInMotion :), с ключом там всё ясно, программный обработчик внутри HMIManager.exe. Если интересно, в этой теме мы его с cyv7 обсуждали подробно.
Дело в том, что обновление картографии возможно только с родного DVD, путем выполнения сценария с диска. Файлы там лежат упакованые в хитром формате (Пример http://rutracker.org/forum/viewtopic.php?t=3350044). Так вот, диски эти достать актуальные есть большая проблема, поэтому альтернативы съему харда и перезаписи напрямую пока нет.

Yes, sir! Да я на этот порт отвлекся только в контексте возможной двухсторонней связи с MMCS при отладке. Было бы неплохо зряче отлаживать, а не смотреть на черный или не черный экран. AuxInMotion это у меня в приоритете. :)


Текущее время: 00:36. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.10
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Использование материалов сайта разрешается только при условии размещения активной ссылки на OUT-CLUB.RU
Copyright ©2006 - 2024, WWW.OUT-CLUB.RU