Считать код c ардуино по UART

lilik
Offline
Зарегистрирован: 19.10.2017

Умеет наверное, но я не пробовал.

alfacnc
Offline
Зарегистрирован: 29.06.2022

Ну что, мужчины, хотите продолжение?

Итогом:

- подключиться через ВТ к Arduino удалось, комп ардуинку видит, СОМ порт определяется

- по этой методике https://lampcore.ru/%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%...

через блютуз удалось скачать .НЕХ, строка в батнике " avrdude -F -p m328p -c arduino -b 57600 -P COM4 -v -U flash:r:flash_press.hex:i "

НОООО !!!! Размер НЕХ файла 77кб (семьдесят семь килобайт) КАК ТАКОЕ МОЖЕТ БЫТЬ? Стоит про мини Atmega328 32 кб.

Снял про мини, она на колодке, подсоединил UART напрямую без блютуз, прочитал по методике выше, теже 77кб, Карл!

Что это такое считалось, почему, как передалать в удобоваримый вид, потому что залить этот .НЕХ в другую ардуино XLoader отказывается?

При настройки  скорости BT модуля, устанавливается стоп-бит, в модуле -0 их нет, а вот в настройках параметров BT модуля компа параметр стоп-бит есть = 1. Может ли это повлиять на то что залился непонятный объем?

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

alfacnc пишет:

НОООО !!!! Размер НЕХ файла 77кб (семьдесят семь килобайт) КАК ТАКОЕ МОЖЕТ БЫТЬ? Стоит про мини Atmega328 32 кб.

ООО!!! Ты HEX от бинарника не отличаешь оказывается )))

b707
Offline
Зарегистрирован: 26.05.2017

Ничего удивительного или неправильного в этом размере нет, HEX - это текстовой формат и его размер всегда больше бинарника минимум в 2 раза, а обычно еще больше.

В бинарнике FF - это один байт, а в HEX - два

alfacnc
Offline
Зарегистрирован: 29.06.2022

ua6em пишет:

alfacnc пишет:

НОООО !!!! Размер НЕХ файла 77кб (семьдесят семь килобайт) КАК ТАКОЕ МОЖЕТ БЫТЬ? Стоит про мини Atmega328 32 кб.

ООО!!! Ты HEX от бинарника не отличаешь оказывается )))

ага оказывается дуб дубом...))

b707 пишет:

Ничего удивительного или неправильного в этом размере нет, HEX - это текстовой формат и его размер всегда больше бинарника минимум в 2 раза, а обычно еще больше.

В бинарнике FF - это один байт, а в HEX - два

т.е. все норм, а фигли Xloader его отказывается заливать? Пробовал другие hех скачивать и заливать все в порядке. 

b707
Offline
Зарегистрирован: 26.05.2017

HEX-ы разные бывают... возможно надо добавить Xloader-у какие-то опции.... сам дело с ним не имел.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

alfacnc пишет:

т.е. все норм, а фигли Xloader его отказывается заливать? Пробовал другие hех скачивать и заливать все в порядке. 

пришли на почту ник @ yandex.ru гляну твой HEX, или здесь выложи только под кат спрячь...комментировать не будем, потом грохнешь

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

HEX считался на все 32К, но записать 32K можно ТОЛЬКО ЧЕРЕЗ ISP. Загрузчик не может писать сам в себя !

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Komandir пишет:

HEX считался на все 32К, но записать 32K можно ТОЛЬКО ЧЕРЕЗ ISP. Загрузчик не может писать сам в себя !

да я что-то протупил )))
ЗЫ по хэксу это будет видно однако...

alfacnc
Offline
Зарегистрирован: 29.06.2022

ua6em пишет:

alfacnc пишет:

т.е. все норм, а фигли Xloader его отказывается заливать? Пробовал другие hех скачивать и заливать все в порядке. 

пришли на почту ник @ yandex.ru гляну твой HEX, или здесь выложи только под кат спрячь...комментировать не будем, потом грохнешь

отправил

alfacnc
Offline
Зарегистрирован: 29.06.2022

Komandir пишет:

HEX считался на все 32К, но записать 32K можно ТОЛЬКО ЧЕРЕЗ ISP. Загрузчик не может писать сам в себя !

походу, да...

НЕХ в центре пустой, данные только в начале и в конце

поигрался с AVRDUDE_PROG, итогом скетч залитый ардуиноайди по UART считывается на все 32К, т.е. как я понял командос - с загрузчиком, скетч залитый ардуиноайди через USBasp считвается фактическим объемом кода во флэш

объяснить не могу, я в этом дуб дубом )))

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !

Отрезать все не нужное и все дела ...

Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Komandir пишет:

Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !

Отрезать все не нужное и все дела ...

Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.

побайтно весь загрузчик не сверял, выборочно - стандартный 2х килобатный от промини
код годный залить в другую промини через программатор и попробовать, самого кода 5130 байт

PS ТС! Вы точно гидравлика не кинули?

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

PS ТС! Вы точно гидравлика не кинули?

а ты сомневаешься? :)

alfacnc
Offline
Зарегистрирован: 29.06.2022

ua6em пишет:

PS ТС! Вы точно гидравлика не кинули?

точно

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

ua6em пишет:

PS ТС! Вы точно гидравлика не кинули?

а ты сомневаешься? :)

понимаешь, в Москве у меня приятели из дворян, им "шариковость" не присуща, крайне порядочные люди...

alfacnc
Offline
Зарегистрирован: 29.06.2022

ua6em пишет:

Komandir пишет:

Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !

Отрезать все не нужное и все дела ...

Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.

побайтно весь загрузчик не сверял, выборочно - стандартный 2х килобатный от промини
код годный залить в другую промини через программатор и попробовать, самого кода 5130 байт

Считал по ISP флэш, епром и фьюзы (инверсные), считывал/прошивал прогой AVRDUDE_PROG https://www.yourdevice.net//avrdude-prog  В епроме похоже что-то есть. Прошил дубликат, (автоматическое программирование -программировать все).

НО дубликат работает не так как оригинал. Оригинал при включении щелкает всеми релюшками, типа опроса чтоли и уходит в ожидание команды. Дубликат щелкает только раз (одной) и замолкает.

Вопросы:

1. Может ли загрузчик влиять на ход выполнения программы? Если да, то как его обрезать\ исправить? Знаю что вроде загрузчик может задавать частоту тактирования

2. Какие есть более информативные программы для считывания/прошивки? Вот как вы Komandir определили что там 5130 кб самого кода?

3. Какие еще могут быть подводные камни?

ПиСи соседи про промплощадке попросили помочь, сам я фрезеровщик-ЧПУшник, что у них за отношения там были я не знаю и лезть в них не хочу, сказали что чел пропал больше года назад и на связь не выходит, соседи хорошие, трудяги, на мерсах не ездят.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

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

alfacnc
Offline
Зарегистрирован: 29.06.2022

BOOM пишет:

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

так и сделал, но при установки ардуино-дубликат в исполнительный блок реле он работает не так как оригинал

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Так ты же пишешь, что по isp считал прошивку, а я говорил о той, что считана по UART 

alfacnc
Offline
Зарегистрирован: 29.06.2022

по UART считана только флэш без епрома и фьюзов

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Стало быть и eeprom нужно копировать

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Вынес нам мозг с BT... Теперь очередь за ISP ???

Ума на: прочитать дубликат и сравнить с оригиналом не хватает ???

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

alfacnc пишет:

BOOM пишет:

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

так и сделал, но при установки ардуино-дубликат в исполнительный блок реле он работает не так как оригинал

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

Green
Offline
Зарегистрирован: 01.10.2015

Да, жаль что в МК не проходит фокус с "плавающими битами", как у УФ ППЗУ.)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Green пишет:

Да, жаль что в МК не проходит фокус с "плавающими битами", как у УФ ППЗУ.)

у важгата есть серийный номер, а здесь не знаю, что автор мог использовать, самое главное должен отсутствовать механизм принятия решения, иначе защита ломается на раз )))

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.

alfacnc
Offline
Зарегистрирован: 29.06.2022

BOOM пишет:

EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.

AVRDUDE_PROG после прошивки пишет, что верификация - ОК, если вы об этом, или нужен другой способ?

прошивал в автоматическом режиме сразу все и флэш и епром и фьюзы, в какой последовательности эта прога их шила не знаю

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

И мы не знаем что и куда прошила это прога.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Программа AVRDUDE_PROG 3.3 отличная, сам ей пользуюсь. Но никогда ни в каких «автоматических режимах» ей ничего не шил (даже не представляю как). Шей в ручную. Сначала одно, потом другое, фьюзы последними.

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Все она прекрасно шьет на автомате. Только ее нужно настроить

-NMi-
Offline
Зарегистрирован: 20.08.2018

Green пишет:

Да, жаль что в МК не проходит фокус с "плавающими битами", как у УФ ППЗУ.)

Зато там проходит "другой фокус" и если даже СПЕЦИАЛЬНО оставить лок-биты открытыми, отличить один кристалл от другого программно всё-таки можно с вероятностью 2^24. Это для 328р.  )))))))

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Интересно, а что за защиту китайцы ставят? У меня было несколько раз с pic-контроллерами такое: подключаю PICkit3, жму считать - он читает, но устройство больше не работает.( Благо это были устройства с доступным кодом и прошивку оригинал к той конструкции смог найти. Но вопрос остался - Как же так то?!(((

Green
Offline
Зарегистрирован: 01.10.2015

Ну, а оригинальная перепрошивается таким же образом?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Green пишет:

Ну, а оригинальная перепрошивается таким же образом?

Не понял вопроса. Оригинальная (когда записана в мк устройства) и читается и пишется и переписывается и потом все работает. А китайская версия как-то портится, как я понимаю, при попытке чтения...

Green
Offline
Зарегистрирован: 01.10.2015

Значит, не всё копируется. ПИК какая серия? PICKIT-ом что считываем/копируем? 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

PIC-и разные были, PIC16F876A и PIC16F628. PICkit3 отлично чипы сам определял, никаких ошибок или чего подобного во время чтения не выдавал. Утилита родная от microchip. Вычитывал все и флэш и еепром.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

как то это неправильно, чтобы залоченный пик при чтении ломался

alfacnc
Offline
Зарегистрирован: 29.06.2022

BOOM пишет:

EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.

попробовал, 

если писать епром потом флэш, то епром зачищается, файл пустой при считывании...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

alfacnc пишет:

BOOM пишет:

EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.

попробовал, 

если писать епром потом флэш, то епром зачищается, файл пустой при считывании...

ключик -D добавить или убрать -e при записи во флэш

alfacnc
Offline
Зарегистрирован: 29.06.2022

ua6em пишет:

alfacnc пишет:

BOOM пишет:

EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.

 

попробовал, 

если писать епром потом флэш, то епром зачищается, файл пустой при считывании...

ключик -D добавить или убрать -e при записи во флэш

в автоматическом режиме AVFDUDE_PROG великолепно делает все сама, если в ручном сначала записать епром, а потом флэш, то флэш затирает епром и ключеков на панели программы AVFDUDE_PROG нет, только если самому прописывать в командной строке или писать сначала флэш потом епром 

вопрос ни о чем...)

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Я так и не понял считанное с дубля совпадает с оригиналом или нет ? Считайте и сравните через HxD содержимое flash и eeprom, фьюзы и локбиты сравните визуально.