sst78rus 0 20 января Опубликовано 20 января (изменено) · Жалоба Добрый день. Есть задача попытаться прочитать флеш с МК 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 Изменено 20 января пользователем sst78rus Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 224 20 января Опубликовано 20 января · Жалоба 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%. Раз это не гаражное поделие, а продукт от серьёзного производителя.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sst78rus 0 20 января Опубликовано 20 января · Жалоба 6 часов назад, jcxz сказал: ARM-процессоры Infineon программируются и читаются через UART (серия XMC4xxx). Утилита есть на сайте Infineon. По аналогии можно предположить, что и для XC886 возможно есть подобная утилита. Попробуйте поискать на их сайте. Это будет проще, чем через отладочный интерфейс. Кроме того - в случае ARM ядер Infineon, в битах защиты отладочный интерфейс может вообще быть отключен. При том, что остальной функционал работы с флешкой вполне нормально работать через UART. Возможно это справедливо и для XC886. Раз так, до защита от чтения там есть почти 100%. Раз это не гаражное поделие, а продукт от серьёзного производителя.... Спасибо, почитал User Manual, есть режим прошивки по UART. Утилиту пока не нашел, но продолжу изучение сайта 🙂 Немного огорчает только, что в User Manual упоминается возможность записи и стирания по UART, но про чтение ни слова. По поводу защиты от чтения - я тоже был уверен, что она везде и всегда включена. Тем более на устройствах, которые перепрограммировать не предполагается. Но, как ни странно, оказывается, что во многих автомобильных блоках защита от чтения не стоит. Ну попробовать в любом случае стоит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 36 20 января Опубликовано 20 января · Жалоба Глянул у себя в компе в архив с IAR EW8051 v8.1 - infineon xc886 есть: при отсутствии защиты в контроллере это удобный способ (jtag-ом всё равно обзаводиться) получить dump прошивки (подключиться без загрузки проекта) и за одно дизассемблировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 224 21 января Опубликовано 21 января · Жалоба 8 часов назад, sst78rus сказал: Немного огорчает только, что в User Manual упоминается возможность записи и стирания по UART, но про чтение ни слова. Не удивлюсь, если такой возможности вообще нет. Ибо - зачем она честному потребителю контроллеров? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.V.Avtomat 22 21 января Опубликовано 21 января · Жалоба 4 часа назад, jcxz сказал: Не удивлюсь, если такой возможности вообще нет. Ибо - зачем она честному потребителю контроллеров? Как это зачем? Для Verify Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 224 21 января Опубликовано 21 января · Жалоба 9 часов назад, A.V.Avtomat сказал: Как это зачем? Для Verify Для Verify чтение прошивки не нужно. Советую подумать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.V.Avtomat 22 22 января Опубликовано 22 января · Жалоба 10 часов назад, jcxz сказал: Для Verify чтение прошивки не нужно. Советую подумать. Как это не нужно? Там одними контрольными суммами не обойтись. Может ещё и для Verify EEPROM чтение не нужно? Что для EEPROM придумаете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 224 22 января Опубликовано 22 января · Жалоба 5 часов назад, A.V.Avtomat сказал: Как это не нужно? Там одними контрольными суммами не обойтись. Может ещё и для Verify EEPROM чтение не нужно? Что для EEPROM придумаете? Ещё раз: Советую подумать. А также почитать описание соответствующих API разных микроконтроллеров. Если вы конечно не совсем писатель, но иногда и читатель. Операция чтения - это дыра в защите флешки. Соответственно - многие производители МК её вообще не реализуют. Но верификации прошивки это никак не мешает. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.V.Avtomat 22 22 января Опубликовано 22 января · Жалоба 4 часа назад, jcxz сказал: Ещё раз: Советую подумать. А также почитать описание соответствующих API разных микроконтроллеров. Если вы конечно не совсем писатель, но иногда и читатель. Да ну Вас! Ерунду написали, а теперь своей бестолковой загадкой голову морочите. 4 часа назад, jcxz сказал: Операция чтения - это дыра в защите флешки. Соответственно - многие производители МК её вообще не реализуют. Но верификации прошивки это никак не мешает. Дыра - это когда флэшка читается не так, как её записали. И это проверяется именно её чтением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 22 января Опубликовано 22 января · Жалоба 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). А кофе варить эта штука всё равно не научится... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sst78rus 0 23 января Опубликовано 23 января · Жалоба 19 часов назад, esaulenka сказал: И вообще - что вы там хотите увидеть? Угол / скорость вы уже нашли. Контрольную сумму, наверное, можно и так подобрать. Команду установки нуля можно добыть из программы диагностики (https://gitlab.com/py_ren/pyren). А кофе варить эта штука всё равно не научится... Команду диагностики я послушаю в CAN шине. Этот датчик сидит на отдельной CAN шине и общается только с блоком ESP. Из pyren вытащить команду калибровки не получится, поскольку pyren командует блоку ESP, а уже тот командует датчику. Просто нет машины подходящей для экспериментов под рукой. Но вопрос решаемый и я именно так его и решу - через pyren запущу процесс калибровки и послушаю обмен на шине. В байте контрольной суммы присутствуют какие-то флаги. Не особо важно для моих целей, но все же было бы неплохо разобрать. И еще один довод для чтения дампа - у меня шина в которую хочу подключить этот датчик на 1000 кб/с работает, а датчик на 500 кб/с. При наличии дампа, вполне может получиться пропатчить инициализацию CAN и не использовать лишних шлюзов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться