Перейти к содержанию
    

Чем прошить Infineon XC886?

Добрый день.

Есть задача попытаться прочитать флеш с МК Infineon XC886 (https://www.infineon.com/dgdl/Infineon-XC88XCLM-DS-v01_02-en.pdf?fileId=db3a304412b407950112b40c4a9e0afb). Я прекрасно понимаю, что может стоять защита от чтения, но думаю стоит попробовать.

Согласно даташиту, МК построен на High-performance XC800 Core – compatible with standard 8051 processor. У меня есть опыт работы с ARM контроллерами, которые прошиваются по SWD, с 8051 не работал. В наличии есть J-Link. В списке совместимости Segger такого МК нет. Насколько я понял, программируется он по JTAG. Я нашел пример демо-платы, для программирования на разъем JTAG выведено много ног. Я правильно понимаю, что для чтения и записи мне достаточно TCK, TDO, TDI и TMS?  На плате есть пятаки на этих ногах, можно удобно подпаяться. В описании от Infineon для программирования предлагается ULINK2. У китайцев вроде есть недорогие клоны https://aliexpress.ru/item/1705172312.html  Есть шанс, что заработает?

PS: МК стоит на плате автомобильного датчика. Я хочу использовать этот датчик в своих целях, мне нужно разобраться с протоколом обмена по CAN. Основные параметры я разобрал анализом шины, но некоторые параметры таким образом не узнать. Если получится считать прошивку, возможно в дизассемблере удастся выяснить то, что мне нужно. Все что удалось узнать - https://github.com/Sergey1560/sas

Изменено пользователем sst78rus

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 минут назад, sst78rus сказал:

Есть задача попытаться прочитать флеш с МК Infineon XC886 (https://www.infineon.com/dgdl/Infineon-XC88XCLM-DS-v01_02-en.pdf?fileId=db3a304412b407950112b40c4a9e0afb). Я прекрасно понимаю, что может стоять защита от чтения, но думаю стоит попробовать.

Согласно даташиту, МК построен на High-performance XC800 Core – compatible with standard 8051 processor. У меня есть опыт работы с ARM контроллерами, которые прошиваются по SWD, с 8051 не работал. В наличии есть J-Link.

ARM-процессоры Infineon программируются и читаются через UART (серия XMC4xxx). Утилита есть на сайте Infineon. По аналогии можно предположить, что и для XC886 возможно есть подобная утилита. Попробуйте поискать на их сайте. Это будет проще, чем через отладочный интерфейс.

Кроме того - в случае ARM ядер Infineon, в битах защиты отладочный интерфейс может вообще быть отключен. При том, что остальной функционал работы с флешкой вполне нормально работать через UART. Возможно это справедливо и для XC886.

36 минут назад, sst78rus сказал:

МК стоит на плате автомобильного датчика.

Раз так, до защита от чтения там есть почти 100%.

Раз это не гаражное поделие, а продукт от серьёзного производителя....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, jcxz сказал:

ARM-процессоры Infineon программируются и читаются через UART (серия XMC4xxx). Утилита есть на сайте Infineon. По аналогии можно предположить, что и для XC886 возможно есть подобная утилита. Попробуйте поискать на их сайте. Это будет проще, чем через отладочный интерфейс.

Кроме того - в случае ARM ядер Infineon, в битах защиты отладочный интерфейс может вообще быть отключен. При том, что остальной функционал работы с флешкой вполне нормально работать через UART. Возможно это справедливо и для XC886.

Раз так, до защита от чтения там есть почти 100%.

Раз это не гаражное поделие, а продукт от серьёзного производителя....

Спасибо, почитал User Manual, есть режим прошивки по UART. Утилиту пока не нашел, но продолжу изучение сайта 🙂 Немного огорчает только, что в User Manual упоминается возможность записи и стирания по UART, но про чтение ни слова.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Глянул у себя в компе в архив с IAR EW8051 v8.1 - infineon xc886 есть: при отсутствии защиты в контроллере это удобный способ (jtag-ом всё равно обзаводиться) получить dump прошивки (подключиться без загрузки проекта) и за одно дизассемблировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, sst78rus сказал:

Немного огорчает только, что в User Manual упоминается возможность записи и стирания по UART, но про чтение ни слова.

Не удивлюсь, если такой возможности вообще нет. Ибо - зачем она честному потребителю контроллеров?   :secret:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, jcxz сказал:

Не удивлюсь, если такой возможности вообще нет. Ибо - зачем она честному потребителю контроллеров?   :secret:

Как это зачем? Для Verify :bye:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, A.V.Avtomat сказал:

Как это зачем? Для Verify :bye:

Для Verify чтение прошивки не нужно. Советую подумать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, jcxz сказал:

Для Verify чтение прошивки не нужно. Советую подумать.

Как это не нужно? Там одними контрольными суммами не обойтись.

Может ещё и для Verify EEPROM чтение не нужно? Что для EEPROM придумаете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, A.V.Avtomat сказал:

Как это не нужно? Там одними контрольными суммами не обойтись.

Может ещё и для Verify EEPROM чтение не нужно? Что для EEPROM придумаете?

Ещё раз: Советую подумать. А также почитать описание соответствующих API разных микроконтроллеров. Если вы конечно не совсем писатель, но иногда и читатель. :unknw:

Операция чтения - это дыра в защите флешки. Соответственно - многие производители МК её вообще не реализуют. Но верификации прошивки это никак не мешает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, jcxz сказал:

Ещё раз: Советую подумать. А также почитать описание соответствующих API разных микроконтроллеров. Если вы конечно не совсем писатель, но иногда и читатель. :unknw:

Да ну Вас! Ерунду написали, а теперь своей бестолковой загадкой голову морочите.

4 часа назад, jcxz сказал:

Операция чтения - это дыра в защите флешки. Соответственно - многие производители МК её вообще не реализуют. Но верификации прошивки это никак не мешает.

Дыра - это когда флэшка читается не так, как её записали. И это проверяется именно её чтением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/20/2024 at 8:17 PM, sst78rus said:

Спасибо, почитал User Manual, есть режим прошивки по UART.

Полистал user manual. Какой-то кривой этот BSL. С большой вероятностью, он подразумевает загрузку собственного загрузчика в RAM и работу уже через него. CAN BSL вообще только так и работает.

 

Попробуйте, действительно, ULink. Возможно, стоит искать оригинал - у меня 100% уверенность, что китайцы свои клоны на совместимость с 8051 не проверяли. Мне кажется, с рук приобрести будет несложно - для современных чипов проще JLink (или его клон) использовать. На моей позапрошлой работе он в шкафу валялся, никому не нужный.

 

On 1/20/2024 at 1:32 PM, sst78rus said:

Все что удалось узнать - https://github.com/Sergey1560/sas

Ну и сделайте НОРМАЛЬНЫЕ фото платы. По имеющимся, например, отследить подключение ног TMS / MBC - глаза сломаешь.

 

И вообще - что вы там хотите увидеть? Угол / скорость вы уже нашли. Контрольную сумму, наверное, можно и так подобрать. Команду установки нуля можно добыть из программы диагностики (https://gitlab.com/py_ren/pyren). А кофе варить эта штука всё равно не научится...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 часов назад, esaulenka сказал:

И вообще - что вы там хотите увидеть? Угол / скорость вы уже нашли. Контрольную сумму, наверное, можно и так подобрать. Команду установки нуля можно добыть из программы диагностики (https://gitlab.com/py_ren/pyren). А кофе варить эта штука всё равно не научится...

Команду диагностики я послушаю в CAN шине. Этот датчик сидит на отдельной CAN шине и общается только с блоком ESP. Из pyren вытащить команду калибровки не получится, поскольку pyren командует блоку ESP, а уже тот командует датчику. Просто нет машины подходящей для экспериментов под рукой. Но вопрос  решаемый и я именно так его и решу - через pyren запущу процесс калибровки и послушаю обмен на шине.

В байте контрольной суммы присутствуют какие-то флаги. Не особо важно для моих целей, но все же было бы неплохо разобрать. И еще один довод для чтения дампа - у меня шина в которую хочу подключить этот датчик на 1000 кб/с работает, а датчик на 500 кб/с. При наличии дампа, вполне может получиться пропатчить инициализацию CAN и не использовать лишних шлюзов. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...