Диагностика двигателя, логгирование и прошивка ECU. |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Диагностика двигателя, логгирование и прошивка ECU. |
1.6.2009, 13:00
Сообщение
#1
|
|
Супер Технический Маньяк Группа: Администраторы Сообщений: 818 Регистрация: 29.5.2009 Из: Нижний Новгород Вне форума Репутация: 57 |
Предлагаю развить тему логгирования, чтения ошибок перепрошивки ECU.
Mprog и EPT - прошивальщик и прошивка для кабеля. (что бы виделся прогами как родной) Unlocker - для разблокирования ECU - если по каким то причинам не получается считать прошивку. Проги для пользования думаю найдете сами в инете. EcuFlash 1.28 и 1,29 (версии выше для этого шнурка уже не подходят- нужен OpenEcu2.0) в ней же драйвера для шнура EvoScan 2.5 EcuEdit 3.5 Mitsulogger как прошивать http://forums.evolutionm.net/ecuflash-179/ (на английском) не забудьте записать код иммобилайзера перед прошивкой Для каждой прошивки ROM или BIN нужен файл XML в котором написано расположение всех нужных таблиц. Иначе допустим в EcuFlash вместо таблиц будет открываться абракадабра. Кто ни то снимал логи или прошивал ?? У кого есть опыт в этих делах поделитесь плиз. |
|
|
2.4.2012, 20:04
Сообщение
#2
|
|
Turbo Stackwalker Группа: Технический Маньяк Сообщений: 626 Регистрация: 1.8.2011 Из: Челябинск Вне форума Авто: MMC Colt CZT Репутация: 28 |
Про вытаскивание внутренних данных интересно насколько мозги на SH похожи на M32R. Судя по коду кольта арта и CZT запрос 16 битный и если не попадает в таблицу, то обрабатывается как смещение для прямого доступа к памяти.
Код /*uint16_t get_mut_value(uint16_t req)*/
56e68: 2e 7f 2a 7f push lr -> push r10 #- 56e6c: 29 7f 28 7f push r9 -> push r8 #- 56e70: ea 00 bf ff ld24 r10,0xbfff #- 56e74: 63 00 12 80 ldi r3,#0 -> mv r2,r0 #- 56e78: 52 48 14 80 slli r2,#0x8 -> mv r4,r0 #- 56e7c: 54 50 54 10 slli r4,#0x10 -> srli r4,#0x10 #- 56e80: 54 08 10 84 srli r4,#0x8 -> mv r0,r4 #- 56e84: 00 e2 f0 00 or r0,r2 || nop # req = SWAP_BYTES(req); 56e88: e6 01 32 0c ld24 r6,0x1320c #- 56e8c: 25 b6 11 80 lduh r5,@r6 -> mv r1,r0 #- 56e90: 51 50 51 10 slli r1,#0x10 -> srli r1,#0x10 #- 56e94: 05 51 7c 05 cmpu r5,r1 -> bc 0x56ea8 # if (flash_mut_variables_table_size >= req) { 56e98: 51 42 f0 00 slli r1,#0x2 || nop #- 56e9c: e7 03 bf 44 ld24 r7,0x3bf44 #- 56ea0: 01 a7 29 c1 add r1,r7 -> ld r9,@r1 # r9 = flash_mut_variables_table[req]; 56ea4: 7f 14 f0 00 bra 0x56ef4 || nop # } else { 56ea8: 80 51 40 00 cmpui r1,#16384 #- 56eac: 7c 02 0a 51 bc 0x56eb4 -> cmpu r10,r1 # if (((req < 0x4000) 56eb0: 7d 07 f0 00 bnc 0x56ecc || nop # || (0xbfff < req)) 56eb4: 82 a0 80 00 add3 r2,r0,#-32768 #- 56eb8: 81 c2 ff ff and3 r1,r2,#0xffff #- 56ebc: 80 51 40 00 cmpui r1,#16384 #- 56ec0: 7c 03 0a 51 bc 0x56ecc -> cmpu r10,r1 # && (req - 0x8000 >= 0x4000) 56ec4: 7c 02 63 01 bc 0x56ecc -> ldi r3,#1 # && (0xbfff >= req - 0x8000)) { r3 = 1; 56ec8: 10 82 f0 00 mv r0,r2 || nop # req -= 0x8000; 56ecc: 81 c0 ff ff and3 r1,r0,#0xffff # } 56ed0: 80 51 40 00 cmpui r1,#16384 #- 56ed4: 7d 02 f0 00 bnc 0x56edc || nop # if (req < 0x4000) { 56ed8: 90 f0 40 00 ldi r0,#16384 # req = 0x4000; 56edc: 81 c0 ff ff and3 r1,r0,#0xffff # } 56ee0: 0a 51 7d 02 cmpu r10,r1 -> bnc 0x56ee8 # if (0xbfff < req) { 56ee4: e0 00 bf ff ld24 r0,0xbfff # req = 0xbfff; 56ee8: 81 c0 ff ff and3 r1,r0,#0xffff # } 56eec: e2 80 00 00 ld24 r2,0x800000 #- 56ef0: 01 a2 19 81 add r1,r2 -> mv r9,r1 # r9 = ram_start + req; 56ef4: 80 c0 ff ff and3 r0,r0,#0xffff # } 56ef8: 91 f0 00 bf ldi r1,#191 #- 56efc: 01 50 7d 03 cmpu r1,r0 -> bnc 0x56f08 # if ((191 >= req) 56f00: 53 50 f0 00 slli r3,#0x10 || nop #- 56f04: b0 83 00 05 beqz r3,0x56f18 # || r3) { 56f08: 20 99 11 80 ldub r0,@r9 -> mv r1,r0 #- 56f0c: 51 48 50 50 slli r1,#0x8 -> slli r0,#0x10 #- 56f10: 50 10 50 08 srli r0,#0x10 -> srli r0,#0x8 # return SWAP_BYTES(r9_u8); 56f14: 00 e1 7f 07 or r0,r1 -> bra 0x56f30 # } else { 56f18: fe ff df fa bl 0x4ef00 # pushi(); 56f1c: 20 99 49 01 ldub r0,@r9 -> addi r9,#1 #- 56f20: 21 99 51 48 ldub r1,@r9 -> slli r1,#0x8 #- 56f24: 18 81 08 e0 mv r8,r1 -> or r8,r0 # ret = r9_u8a[0] | (r9_u8a[1] << 8); 56f28: fe ff df fc bl 0x4ef18 # popi(); 56f2c: 10 88 f0 00 mv r0,r8 || nop # return ret; 56f30: 28 ef 29 ef pop r8 -> pop r9 # } 56f34: 2a ef 2e ef pop r10 -> pop lr #- 56f38: 1f ce f0 00 jmp lr || nop #- |
|
|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Текстовая версия | © 2006-2024 Форум Технических Маньяков. |
|