через блютуз удалось скачать .НЕХ, строка в батнике " 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. Может ли это повлиять на то что залился непонятный объем?
Ничего удивительного или неправильного в этом размере нет, HEX - это текстовой формат и его размер всегда больше бинарника минимум в 2 раза, а обычно еще больше.
НОООО !!!! Размер НЕХ файла 77кб (семьдесят семь килобайт) КАК ТАКОЕ МОЖЕТ БЫТЬ? Стоит про мини Atmega328 32 кб.
ООО!!! Ты HEX от бинарника не отличаешь оказывается )))
ага оказывается дуб дубом...))
b707 пишет:
Ничего удивительного или неправильного в этом размере нет, HEX - это текстовой формат и его размер всегда больше бинарника минимум в 2 раза, а обычно еще больше.
В бинарнике FF - это один байт, а в HEX - два
т.е. все норм, а фигли Xloader его отказывается заливать? Пробовал другие hех скачивать и заливать все в порядке.
HEX считался на все 32К, но записать 32K можно ТОЛЬКО ЧЕРЕЗ ISP. Загрузчик не может писать сам в себя !
походу, да...
НЕХ в центре пустой, данные только в начале и в конце
поигрался с AVRDUDE_PROG, итогом скетч залитый ардуиноайди по UART считывается на все 32К, т.е. как я понял командос - с загрузчиком, скетч залитый ардуиноайди через USBasp считвается фактическим объемом кода во флэш
Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !
Отрезать все не нужное и все дела ...
Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.
Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !
Отрезать все не нужное и все дела ...
Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.
побайтно весь загрузчик не сверял, выборочно - стандартный 2х килобатный от промини
код годный залить в другую промини через программатор и попробовать, самого кода 5130 байт
Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !
Отрезать все не нужное и все дела ...
Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.
побайтно весь загрузчик не сверял, выборочно - стандартный 2х килобатный от промини
код годный залить в другую промини через программатор и попробовать, самого кода 5130 байт
Считал по ISP флэш, епром и фьюзы (инверсные), считывал/прошивал прогой AVRDUDE_PROG https://www.yourdevice.net//avrdude-prog В епроме похоже что-то есть. Прошил дубликат, (автоматическое программирование -программировать все).
НО дубликат работает не так как оригинал. Оригинал при включении щелкает всеми релюшками, типа опроса чтоли и уходит в ожидание команды. Дубликат щелкает только раз (одной) и замолкает.
Вопросы:
1. Может ли загрузчик влиять на ход выполнения программы? Если да, то как его обрезать\ исправить? Знаю что вроде загрузчик может задавать частоту тактирования
2. Какие есть более информативные программы для считывания/прошивки? Вот как вы Komandir определили что там 5130 кб самого кода?
3. Какие еще могут быть подводные камни?
ПиСи соседи про промплощадке попросили помочь, сам я фрезеровщик-ЧПУшник, что у них за отношения там были я не знаю и лезть в них не хочу, сказали что чел пропал больше года назад и на связь не выходит, соседи хорошие, трудяги, на мерсах не ездят.
У тебя же есть полный «образ» вместе с загрузчиком, залейте его через usbasp.
так и сделал, но при установки ардуино-дубликат в исполнительный блок реле он работает не так как оригинал
значит в прошивке заложена программа от копирования, автор уверен, что код управления 6-ю релюшками никто ломать не будет, так как значительно дешевле написать новый, на порядки, поэтому и залочивать даже не стал )))
Да, жаль что в МК не проходит фокус с "плавающими битами", как у УФ ППЗУ.)
у важгата есть серийный номер, а здесь не знаю, что автор мог использовать, самое главное должен отсутствовать механизм принятия решения, иначе защита ломается на раз )))
Программа AVRDUDE_PROG 3.3 отличная, сам ей пользуюсь. Но никогда ни в каких «автоматических режимах» ей ничего не шил (даже не представляю как). Шей в ручную. Сначала одно, потом другое, фьюзы последними.
Да, жаль что в МК не проходит фокус с "плавающими битами", как у УФ ППЗУ.)
Зато там проходит "другой фокус" и если даже СПЕЦИАЛЬНО оставить лок-биты открытыми, отличить один кристалл от другого программно всё-таки можно с вероятностью 2^24. Это для 328р. )))))))
Интересно, а что за защиту китайцы ставят? У меня было несколько раз с pic-контроллерами такое: подключаю PICkit3, жму считать - он читает, но устройство больше не работает.( Благо это были устройства с доступным кодом и прошивку оригинал к той конструкции смог найти. Но вопрос остался - Как же так то?!(((
Ну, а оригинальная перепрошивается таким же образом?
Не понял вопроса. Оригинальная (когда записана в мк устройства) и читается и пишется и переписывается и потом все работает. А китайская версия как-то портится, как я понимаю, при попытке чтения...
PIC-и разные были, PIC16F876A и PIC16F628. PICkit3 отлично чипы сам определял, никаких ошибок или чего подобного во время чтения не выдавал. Утилита родная от microchip. Вычитывал все и флэш и еепром.
EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.
попробовал,
если писать епром потом флэш, то епром зачищается, файл пустой при считывании...
ключик -D добавить или убрать -e при записи во флэш
в автоматическом режиме AVFDUDE_PROG великолепно делает все сама, если в ручном сначала записать епром, а потом флэш, то флэш затирает епром и ключеков на панели программы AVFDUDE_PROG нет, только если самому прописывать в командной строке или писать сначала флэш потом епром
Я так и не понял считанное с дубля совпадает с оригиналом или нет ? Считайте и сравните через HxD содержимое flash и eeprom, фьюзы и локбиты сравните визуально.
Умеет наверное, но я не пробовал.
Ну что, мужчины, хотите продолжение?
Итогом:
- подключиться через ВТ к 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. Может ли это повлиять на то что залился непонятный объем?
НОООО !!!! Размер НЕХ файла 77кб (семьдесят семь килобайт) КАК ТАКОЕ МОЖЕТ БЫТЬ? Стоит про мини Atmega328 32 кб.
ООО!!! Ты HEX от бинарника не отличаешь оказывается )))
Ничего удивительного или неправильного в этом размере нет, HEX - это текстовой формат и его размер всегда больше бинарника минимум в 2 раза, а обычно еще больше.
В бинарнике FF - это один байт, а в HEX - два
НОООО !!!! Размер НЕХ файла 77кб (семьдесят семь килобайт) КАК ТАКОЕ МОЖЕТ БЫТЬ? Стоит про мини Atmega328 32 кб.
ООО!!! Ты HEX от бинарника не отличаешь оказывается )))
ага оказывается дуб дубом...))
Ничего удивительного или неправильного в этом размере нет, HEX - это текстовой формат и его размер всегда больше бинарника минимум в 2 раза, а обычно еще больше.
В бинарнике FF - это один байт, а в HEX - два
т.е. все норм, а фигли Xloader его отказывается заливать? Пробовал другие hех скачивать и заливать все в порядке.
HEX-ы разные бывают... возможно надо добавить Xloader-у какие-то опции.... сам дело с ним не имел.
т.е. все норм, а фигли Xloader его отказывается заливать? Пробовал другие hех скачивать и заливать все в порядке.
пришли на почту ник @ yandex.ru гляну твой HEX, или здесь выложи только под кат спрячь...комментировать не будем, потом грохнешь
HEX считался на все 32К, но записать 32K можно ТОЛЬКО ЧЕРЕЗ ISP. Загрузчик не может писать сам в себя !
HEX считался на все 32К, но записать 32K можно ТОЛЬКО ЧЕРЕЗ ISP. Загрузчик не может писать сам в себя !
да я что-то протупил )))
ЗЫ по хэксу это будет видно однако...
т.е. все норм, а фигли Xloader его отказывается заливать? Пробовал другие hех скачивать и заливать все в порядке.
пришли на почту ник @ yandex.ru гляну твой HEX, или здесь выложи только под кат спрячь...комментировать не будем, потом грохнешь
отправил
HEX считался на все 32К, но записать 32K можно ТОЛЬКО ЧЕРЕЗ ISP. Загрузчик не может писать сам в себя !
походу, да...
НЕХ в центре пустой, данные только в начале и в конце
поигрался с AVRDUDE_PROG, итогом скетч залитый ардуиноайди по UART считывается на все 32К, т.е. как я понял командос - с загрузчиком, скетч залитый ардуиноайди через USBasp считвается фактическим объемом кода во флэш
объяснить не могу, я в этом дуб дубом )))
Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !
Отрезать все не нужное и все дела ...
Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.
Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !
Отрезать все не нужное и все дела ...
Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.
побайтно весь загрузчик не сверял, выборочно - стандартный 2х килобатный от промини
код годный залить в другую промини через программатор и попробовать, самого кода 5130 байт
PS ТС! Вы точно гидравлика не кинули?
PS ТС! Вы точно гидравлика не кинули?
а ты сомневаешься? :)
PS ТС! Вы точно гидравлика не кинули?
точно
PS ТС! Вы точно гидравлика не кинули?
а ты сомневаешься? :)
понимаешь, в Москве у меня приятели из дворян, им "шариковость" не присуща, крайне порядочные люди...
Даже если ругается при верификации - различия скорее всего находятся именно в области загрузчика и основной код записан верно !
Отрезать все не нужное и все дела ...
Или считать HEX с целевой платы и вырезать из него загрузчик. Заменить в оригинальном HEX код загрузчика на код загрузчика из целевой платы. Залить итоговый файл в целевую плату - верификация пройдет без проблем.
побайтно весь загрузчик не сверял, выборочно - стандартный 2х килобатный от промини
код годный залить в другую промини через программатор и попробовать, самого кода 5130 байт
Считал по ISP флэш, епром и фьюзы (инверсные), считывал/прошивал прогой AVRDUDE_PROG https://www.yourdevice.net//avrdude-prog В епроме похоже что-то есть. Прошил дубликат, (автоматическое программирование -программировать все).
НО дубликат работает не так как оригинал. Оригинал при включении щелкает всеми релюшками, типа опроса чтоли и уходит в ожидание команды. Дубликат щелкает только раз (одной) и замолкает.
Вопросы:
1. Может ли загрузчик влиять на ход выполнения программы? Если да, то как его обрезать\ исправить? Знаю что вроде загрузчик может задавать частоту тактирования
2. Какие есть более информативные программы для считывания/прошивки? Вот как вы Komandir определили что там 5130 кб самого кода?
3. Какие еще могут быть подводные камни?
ПиСи соседи про промплощадке попросили помочь, сам я фрезеровщик-ЧПУшник, что у них за отношения там были я не знаю и лезть в них не хочу, сказали что чел пропал больше года назад и на связь не выходит, соседи хорошие, трудяги, на мерсах не ездят.
У тебя же есть полный «образ» вместе с загрузчиком, залейте его через usbasp.
У тебя же есть полный «образ» вместе с загрузчиком, залейте его через usbasp.
так и сделал, но при установки ардуино-дубликат в исполнительный блок реле он работает не так как оригинал
Так ты же пишешь, что по isp считал прошивку, а я говорил о той, что считана по UART
по UART считана только флэш без епрома и фьюзов
Стало быть и eeprom нужно копировать
Вынес нам мозг с BT... Теперь очередь за ISP ???
Ума на: прочитать дубликат и сравнить с оригиналом не хватает ???
У тебя же есть полный «образ» вместе с загрузчиком, залейте его через usbasp.
так и сделал, но при установки ардуино-дубликат в исполнительный блок реле он работает не так как оригинал
значит в прошивке заложена программа от копирования, автор уверен, что код управления 6-ю релюшками никто ломать не будет, так как значительно дешевле написать новый, на порядки, поэтому и залочивать даже не стал )))
Да, жаль что в МК не проходит фокус с "плавающими битами", как у УФ ППЗУ.)
Да, жаль что в МК не проходит фокус с "плавающими битами", как у УФ ППЗУ.)
у важгата есть серийный номер, а здесь не знаю, что автор мог использовать, самое главное должен отсутствовать механизм принятия решения, иначе защита ломается на раз )))
EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.
EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.
AVRDUDE_PROG после прошивки пишет, что верификация - ОК, если вы об этом, или нужен другой способ?
прошивал в автоматическом режиме сразу все и флэш и епром и фьюзы, в какой последовательности эта прога их шила не знаю
И мы не знаем что и куда прошила это прога.
Программа AVRDUDE_PROG 3.3 отличная, сам ей пользуюсь. Но никогда ни в каких «автоматических режимах» ей ничего не шил (даже не представляю как). Шей в ручную. Сначала одно, потом другое, фьюзы последними.
Все она прекрасно шьет на автомате. Только ее нужно настроить
Да, жаль что в МК не проходит фокус с "плавающими битами", как у УФ ППЗУ.)
Зато там проходит "другой фокус" и если даже СПЕЦИАЛЬНО оставить лок-биты открытыми, отличить один кристалл от другого программно всё-таки можно с вероятностью 2^24. Это для 328р. )))))))
Интересно, а что за защиту китайцы ставят? У меня было несколько раз с pic-контроллерами такое: подключаю PICkit3, жму считать - он читает, но устройство больше не работает.( Благо это были устройства с доступным кодом и прошивку оригинал к той конструкции смог найти. Но вопрос остался - Как же так то?!(((
Ну, а оригинальная перепрошивается таким же образом?
Ну, а оригинальная перепрошивается таким же образом?
Не понял вопроса. Оригинальная (когда записана в мк устройства) и читается и пишется и переписывается и потом все работает. А китайская версия как-то портится, как я понимаю, при попытке чтения...
Значит, не всё копируется. ПИК какая серия? PICKIT-ом что считываем/копируем?
PIC-и разные были, PIC16F876A и PIC16F628. PICkit3 отлично чипы сам определял, никаких ошибок или чего подобного во время чтения не выдавал. Утилита родная от microchip. Вычитывал все и флэш и еепром.
как то это неправильно, чтобы залоченный пик при чтении ломался
EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.
попробовал,
если писать епром потом флэш, то епром зачищается, файл пустой при считывании...
EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.
попробовал,
если писать епром потом флэш, то епром зачищается, файл пустой при считывании...
ключик -D добавить или убрать -e при записи во флэш
EEPROM записать, потом всю флэш (с загрузчиком слитую), в конце фьюзы записать. В конце прочитать все из мк и сравнить с тем что заливалось.
попробовал,
если писать епром потом флэш, то епром зачищается, файл пустой при считывании...
ключик -D добавить или убрать -e при записи во флэш
в автоматическом режиме AVFDUDE_PROG великолепно делает все сама, если в ручном сначала записать епром, а потом флэш, то флэш затирает епром и ключеков на панели программы AVFDUDE_PROG нет, только если самому прописывать в командной строке или писать сначала флэш потом епром
вопрос ни о чем...)
Я так и не понял считанное с дубля совпадает с оригиналом или нет ? Считайте и сравните через HxD содержимое flash и eeprom, фьюзы и локбиты сравните визуально.