X

Здравствуйте, гость ( Вход | Регистрация )

Скрыть объявления

Объявления

9S12 Write/Read OBD, Чтение и запись процессора не вытаскивая его из машины  
«<2 из 3>»
 
Ответить
 Saveliy
сообщение 8.4.2017, 21:29
Сообщение #244223


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

Цитата(RedYu @ 8.4.2017, 21:12) *
в эмуляторе оно записывается, в живом нет

Может обойтись без сложения адреса 'STD 0,Y', то есть написать просто 'STD Y', вдруг компилятор капризничает и не поддерживает такую конструкцию)) Ну так, чисто мысля)
  Пользователя нет на форуме
 
 RedYu
сообщение 8.4.2017, 21:31
Сообщение #244224


Группа: Участник

Сообщений: 12
Спасибо сказали: 4 раза

Цитата(Saveliy @ 8.4.2017, 21:25) *
Уточнения принял. А при эмуляции основная флэш та же, что и внутри живого камня?

П-флеш я не трогаю, внедрение пишу в Ram память. Оттуда и запускаю свой код, при этом основная программа которая находится на П-флеше останавливается, и вся процессорная мощь сосредоточилась на моем коде:) только таймер наблюдатель подсматривает :)
Полная эмуляция процессора осуществляется программой которую я скачал из сайта Freescale.


--------------------
Telegram: @RedYu
http://rover.kulibin-auto.com/
  Пользователя нет на форуме
 
 Saveliy
сообщение 8.4.2017, 21:32
Сообщение #244225


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

И вторая бредовая идея, впиши один байт, не слово, что будет..
  Пользователя нет на форуме
 
 RedYu
сообщение 8.4.2017, 21:36
Сообщение #244226


Группа: Участник

Сообщений: 12
Спасибо сказали: 4 раза

Цитата(Saveliy @ 8.4.2017, 21:29) *
Может обойтись без сложения адреса 'STD 0,Y', то есть написать просто 'STD Y', вдруг компилятор капризничает и не поддерживает такую конструкцию)) Ну так, чисто мысля)

Дело в том что процессор же постоянно свою д-флеш переписывает, и я не думаю что он для этого останавливает все прерывания. Запись я ещё предполагаю происходит (возможно) отдельным "потоком", ведь все хотят д-флеш, а она одна только:) возможно сценарий следующий:
Записать данные в RAM и выставить флаг что нужно записать данные в д-флеш. После чего когда д-флеш будет готова к записи, эти данные занесутся в неё.


--------------------
Telegram: @RedYu
http://rover.kulibin-auto.com/
  Пользователя нет на форуме
 
 Saveliy
сообщение 8.4.2017, 21:37
Сообщение #244227


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

Цитата(RedYu @ 8.4.2017, 21:31) *
П-флеш я не трогаю, внедрение пишу в Ram память.

На самом деле я про это и говорил, что без изменения флеши, такая фишка может не прокатить на реальном камне, а сама запись применяется не мгновенно. Если подменить непосредственно загрузчик, тогда все будет тип топ, другой вопрос, как подменить загрузчик)) Это я и назвал замкнутым кругом :). Возможно, проц сам откатывает изменения, т.к. условия записи не выполнены. Поэтому я не зря говорю, набросай для камня свой код программы P-FLASH, запиши в проц и протестируй. Мне кажется что собака может быть зарыта в коде основной "родной" программы проца, которая отслеживает состояния до сна и после.
  Пользователя нет на форуме
 
 Saveliy
сообщение 8.4.2017, 21:38
Сообщение #244228


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

Цитата(RedYu @ 8.4.2017, 21:36) *
Дело в том что процессор же постоянно свою д-флеш переписывает

Все верно, и не только постоянно переписывает, но и воссоздает ее с нуля так сказать из P-FLASH.
  Пользователя нет на форуме
 
 Saveliy
сообщение 8.4.2017, 21:41
Сообщение #244229


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

Цитата(RedYu @ 8.4.2017, 21:36) *
возможно сценарий следующий:
Записать данные в RAM и выставить флаг что нужно записать данные в д-флеш. После чего когда д-флеш будет готова к записи, эти данные занесутся в неё.

Так правильно, об этом мы и говорили пол страницы)) Нужно дождаться разрешения записи. Вполне возможно, что на реальном камне много других отвлекающих процессов общаются и мешают, тупо не укладываемся в тайминги, начиная операцию раньше, чем это можно.
  Пользователя нет на форуме
 
 RedYu
сообщение 8.4.2017, 21:55
Сообщение #244232


Группа: Участник

Сообщений: 12
Спасибо сказали: 4 раза

Цитата(Saveliy @ 8.4.2017, 21:38) *
Все верно, и не только постоянно переписывает, но и воссоздает ее с нуля так сказать из P-FLASH.

Немного поправлю. Этот процессор стоит в автомобиле на электронном блоке управления кузовом. В нем есть P-flash и D-flash. P - program flash, D - data flash. Насчёт программной флеши всё понятно что там код. А флеша данных в ней лежат начальные значения переменных и сохранённая информация (ошибки, время, дата, различные данные по автомобилю). При старте процессора загрузка идёт с д-флеши. Теперь сама перезапись, мы запускаем собственный код в процессоре, для того чтобы он средствами самого процессора изменил нам всё так как надо. Я склонен к тому что всё что запускается всё можно взломать и поломать, ведь процессор это кусок унылого и тупого кристаллика, человек его создал человек его и поломает:) Последовательность действий определяется программистом, все что написано он "ДОЛЖЕН" выполнить для этого он и создан. Просто не получается это из-за того что пишу я не правильно и больше склоняюсь к тому что нужно через RAM писать.
П.С. Нет ничего невозможного.


--------------------
Telegram: @RedYu
http://rover.kulibin-auto.com/
  Пользователя нет на форуме
 
 Saveliy
сообщение 8.4.2017, 22:37
Сообщение #244235


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

Цитата(RedYu @ 8.4.2017, 21:55) *
При старте процессора загрузка идёт с д-флеши

Такого не может быть, из D-FLASH только берутся настройки, если они там есть, или наоборот, там сохраняются, а загрузка программы идет как раз через P-FLASH. Или слово "загрузка" нужно было заменить на "инициализация"?))

Цитата(RedYu @ 8.4.2017, 21:55) *
Теперь сама перезапись, мы запускаем собственный код в процессоре, для того чтобы он средствами самого процессора изменил нам всё так как надо. Я склонен к тому что всё что запускается всё можно взломать и поломать, ведь процессор это кусок унылого и тупого кристаллика, человек его создал человек его и поломает:)

Есть одно но) есть плохо написанные программы, а есть хорошо написанные программы))

Цитата(RedYu @ 8.4.2017, 21:55) *
Последовательность действий определяется программистом, все что написано он "ДОЛЖЕН" выполнить для этого он и создан.

100% )) Но не все так просто, если "там" постарались (предусмотрели такие вылазки), то там могут "посчитать", что твой код не должен выполниться)) Они же тоже писали программу для этого :)

Цитата(RedYu @ 8.4.2017, 21:55) *
Просто не получается это из-за того что пишу я не правильно и больше склоняюсь к тому что нужно через RAM писать.

Пока "есть варианты", можно их проверять. Когда закончатся, я все же бы на живом камне проверял бы свои мысли и код. Эмуляторам нет доверия.
  Пользователя нет на форуме
 
 RedYu
сообщение 8.4.2017, 23:03
Сообщение #244236


Группа: Участник

Сообщений: 12
Спасибо сказали: 4 раза

Цитата(Saveliy @ 8.4.2017, 22:37) *
100% )) Но не все так просто, если "там" постарались (предусмотрели такие вылазки), то там могут "посчитать", что твой код не должен выполниться)) Они же тоже писали программу для этого :)

Программа писалась для того чтобы в автомобиле всё работало, а не для защиты самой программы:) если бы была задача защитить программу получилось ли бы запустить что-то своё на процессоре? :) думаю что нет.


--------------------
Telegram: @RedYu
http://rover.kulibin-auto.com/
  Пользователя нет на форуме
 
 Saveliy
сообщение 8.4.2017, 23:31
Сообщение #244237


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

Цитата(RedYu @ 8.4.2017, 23:03) *
Программа писалась для того чтобы в автомобиле всё работало, а не для защиты самой программы:)

В последние годы "там" умнеют и уже не полагаются на защиту "галочкой" в конфигурации проца, так что не скажи, уже пытаются защищаться по взрослому.

Цитата(RedYu @ 8.4.2017, 23:03) *
если бы была задача защитить программу получилось ли бы запустить что-то своё на процессоре? :) думаю что нет

Ну как сказать) дыры есть везде и разного "диаметра")), и если дыра будет найдена потом не только "умным человечком", но и разработчиками флэши, дырочку то и прикроют, как на мерине или бмв это стали делать.. Так что не показатель и неизвестно, что реально эта дырочка может принести, вдруг ложный след и лишние мучения в пустоту? )) Куй железо, пока горячо! ))
  Пользователя нет на форуме
 
 power1977
сообщение 9.4.2017, 16:45
Сообщение #244266


Группа: Real User

Сообщений: 500
Спасибо сказали: 89 раз

Влезу в вашу тему со своим ламерским вопросом, два идентичных блока с закрытыми 9s12xeg128 2m53j один хпрог снял защиту на ура со второго не смог стер проц и залил дамп из предидущего, что за оно такое - блоки 1 в 1 ....


--------------------
AVDI.UPA.SMOKFULL.OMEGA.XPROG.BMWSCANER.FVDI18.STAR SD CONNECT.LEXIA.CLIP.VAS.IDSII.VVDI PROG.MB KEYMASTER, ICOM NEXT, HEX NET WIFI
  Пользователя нет на форуме
 
 Saveliy
сообщение 9.4.2017, 17:50
Сообщение #244268


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

power1977, а кто его знает) надо щупать, бывает такое. О подобных ситуациях расписано в теме по VVDI-PROG.
  Пользователя нет на форуме
 
 RedYu
сообщение 12.4.2017, 17:59
Сообщение #244504


Группа: Участник

Сообщений: 12
Спасибо сказали: 4 раза

Всем привет! :) Решил всё таки я проблему с D-Flash, писать напрямую в D-Flash нельзя. Нужно как я сказал делать это с помощью RAM. Код показывать не хочу, но расскажу последовательность, также всё очень хорошо расписано в даташите. Итак как я сказал ранее писать напрямую в D-Flash нельзя. То есть вот этот код не верный:
CODE
LDD #$1234; load value
LDX #$0800; load addr
STD 0,X; err


Правильная последовательность записи в D-Flash:
1. Проверяем занята ли флеша.
2. Настраиваем тактирование флеши. (Это достаточно важное действие, без него не будут работать команды работы с флешой) Но для того чтобы его настроить нужно знать тактовую частоту моторолы, и относительно этой частоты выставлять тактирование флеши. Для этого просто достаточно посмотреть на кварц, но бывают такие кварцы где не написано ничего. (Такой как у меня). То это можно сделать двумя способами. 1) Методом подбора, что достаточно долго. 2) С помощью осциллографа, просто прикоснувшись к выходу кварцевого резонатора.
3. Чистим ошибки флеши.
4. Дальше нужно снять protection с флеши.
5. Стираем сектор D-Flash. (Без этого пункта мы не запишем никакие данные)
6. Снова удаляем все ошибки.
7. Пишем данные в D-Flash. (Про этот пункт можно узнать более точно в даташите найдя "Program D-Flash")
8. Снова удаляем все ошибки.
9. Радуемся данные находятся там где нам надо.

Также нужно понимать что когда мы пишем и стираем данные используется глобальный адрес, а не локальный.
Данные можно писать по 2,4,6,8 байта.

После чего я получил готовый загрузчик для чтения и записи RAM, D-FLASH, EEPROM, P-FLASH с помощью OBD2.
У меня получилась вот такая скорость:
1. Чтение 1 кб/сек.
2. Запись 90 байт/сек.

1. Чтение D-FLASH за 30сек, 32кб памяти.
2. Запись D-FLASH за 6мин, 32кб памяти. (Написал поправки и время записи уменьшилось к 2 мин)

3. Чтение P-FLASH не меньше чем за 10мин-15мин, 1мб
4. Запись и говорить не хочу) очень долго)

При этом не нужно разбирать автомобиль. :) Получил то что и хотел:)
Буду переходить на микрокотроллеры NEC.
Отредактированно RedYu - 12.4.2017, 18:00


Спасибо сказали:


--------------------
Telegram: @RedYu
http://rover.kulibin-auto.com/
  Пользователя нет на форуме
 
 Saveliy
сообщение 12.4.2017, 18:18
Сообщение #244507


Special

Группа: Главные администраторы

Сообщений: 13256
Спасибо сказали: 2025 раз

RedYu, вот, расписал все грамотно и ничего лишнего, респект! :a_aas:

Приятно, когда люди добиваются решения вопроса. Вывод, можно решить практически любую задачу, понимая, что делаешь, главное, чтобы "это оно" тебе надо было))

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

В мире часто либо берутся за задачи не те, кто могут, а кто может, у тех интересы другие)) Когда совпадает и то и другое, тогда получаются классные вещи!
  Пользователя нет на форуме
 
«<2 из 3>»
Ответить
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
Режим отображения: ·


  Сейчас: 28.3.2024, 22:16