Блокировка прошивки в контроллере - Fuse bits
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
Блокировка прошивки в контроллере - Fuse bits
Выставляю тему на голосование за новый функционал программы. Прошивка битов блокировки.
Фьюзы - что это?
FUSE – биты (с англ. Предохранительные биты) - это конфигурационные программируемые биты, которые определяют дальнейший режим работы МК. Эти биты или ячейки сгруппированы в несколько байтов: cтарший конфигурационный байт, младший конфигурационный байт и бывает еще дополнительный конфигурационный байт.
Каждый , кто имел дело с программированием FUSE-битов (для краткости называют фьюзы), загонял свою микросхему в глубокий сон. Другими словами неверные действия над фьюзами легко могут привести к тому, что МК никогда не проснется, либо он будет жив, но программу в него не зашьешь. Поэтому, большинство любителей электроники просто игнорируют их.
Фьюзы - что это?
FUSE – биты (с англ. Предохранительные биты) - это конфигурационные программируемые биты, которые определяют дальнейший режим работы МК. Эти биты или ячейки сгруппированы в несколько байтов: cтарший конфигурационный байт, младший конфигурационный байт и бывает еще дополнительный конфигурационный байт.
Каждый , кто имел дело с программированием FUSE-битов (для краткости называют фьюзы), загонял свою микросхему в глубокий сон. Другими словами неверные действия над фьюзами легко могут привести к тому, что МК никогда не проснется, либо он будет жив, но программу в него не зашьешь. Поэтому, большинство любителей электроники просто игнорируют их.
Блокировка прошивки в контроллере - Fuse bits
Насколько я знаю, с этими фьюзами надо быть осторожным. Сталкивался с подобной защитой ПО в МК, что бы считать её не смогли.
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Блокировка прошивки в контроллере - Fuse bits
Я проголосовал против. Фьюзы это очень опасное дело, и играться с ними не стоит. При прошивке через Arduino-IDE выставляются необходимые фьюзы. Не вижу необходимости рисковать и менять их.
Автор программы FLProg.
Блокировка прошивки в контроллере - Fuse bits
Добавить считаю нужно. А Ваш пост, выдавать как предупреждение.support писал(а):Фьюзы это очень опасное дело, и играться с ними не стоит.
Надо так: - Фьюзы это очень опасное дело, и играться с ними при отсутствии серого вещества, не стоит.
Играться с электричеством - очень опасно!!!!
Закроем проект???

- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Блокировка прошивки в контроллере - Fuse bits
Давате постараюсь объяснить свою позицию.dekorator писал(а):Надо так: - Фьюзы это очень опасное дело, и играться с ними при отсутствии серого вещества, не стоит.Играться с электричеством - очень опасно!!!!
Закроем проект??? hands
- Во первых проект расчитан в основном на людей не знкомых с программированием, и для них игры со фьюзами может окончится плачевно. Для специалистов никто не запрещает поправить файл /ide/hardware/arduino/avr/boards.txt boards.txt в котором описанны фьюзы для всех плат, и который используется при заливке проекта в контроллер.
- Во вторых я стараюсь реализовывать только те вещи в которых сам разобрался. Иначе получится как с мастером модбаса. Я торопился и получилась совершенно кривая реализация которую надо переписывать с нуля. Но если в случае с модбасом самое страшное что может произойти - это при загрузки старого проекта мгут удалится переменные мастера и пользователю придётся их пересоздавать (и то если мне не удасться сделать корректный updater, а я постараюсь ), то в случае с фьюзами моя ошибка может стоит пользователю превращения платы в кусок железа. Я не считаю себя в праве так рисковать оборудованием пользователя. Да и не вижу необходимости в этом. Какие плюсы дает возможность управлять фьюзами? Повышение частоты процессора? что то ещё? Стоит ли игра свечь? Я пока считаю что настройки от авторов платы достаточными и оптимальными
Автор программы FLProg.
Блокировка прошивки в контроллере - Fuse bits
Не надо все. нужен один, который безопасный, тот который запрещает считывание программы из МК.support писал(а):Какие плюсы дает возможность управлять фьюзами? Повышение частоты процессора? что то ещё?
В модбасе только одна проблема. Программа пытается создать в контроллере, массив данных, величиной равной наибольшему адресу из списка созданных тегов ведущего.
uint16_t _regModSlav_1[8193];
Последний раз редактировалось dekorator 09 сен 2015, 22:07, всего редактировалось 1 раз.
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Блокировка прошивки в контроллере - Fuse bits
Цитата dekorator236Не надо все. нужен один, который безопасный, тот который запрещает считывание программы из МК.
А разве сейчас это возможно? Нее, честно я не знаю как это сделать. Вроде можно с помощью программатора сделать дамп памяти процессора, но что это даст?. Разбираться с двоичным кодом..., проще заново написать
А разве сейчас это возможно? Нее, честно я не знаю как это сделать. Вроде можно с помощью программатора сделать дамп памяти процессора, но что это даст?. Разбираться с двоичным кодом..., проще заново написать
Автор программы FLProg.
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Блокировка прошивки в контроллере - Fuse bits
Согласен. Пытался я как-то перекинуть дамп. 2 недели убил. результат 0 .support писал(а):сделать дамп памяти процессора, но что это даст?. Разбираться с двоичным кодом..., проще заново написать
Качество — это делать что-либо правильно, даже когда никто не смотрит
Блокировка прошивки в контроллере - Fuse bits
Код с ардуины, спокойно считывается через ISP, и при набности, так же записывается обратно. Конечно, можно устанавливать бит защиты от считывания программатором, но несколько не удобно.
Разбираться с двоичным кодом - гемор, а скопировать не защищенный - как два пальца!
Разбираться с двоичным кодом - гемор, а скопировать не защищенный - как два пальца!
Блокировка прошивки в контроллере - Fuse bits
Кстати, по этой причине и расплодилось клонов известной зарядки iMax6, т.к. просто скопировали ПО и стали лепить контрафакт.dekorator писал(а):Код с ардуины, спокойно считывается через ISP, и при набности, так же записывается обратно. Конечно, можно устанавливать бит защиты от считывания программатором, но несколько не удобно.Разбираться с двоичным кодом - гемор, а скопировать не защищенный - как два пальца!
К слову, защита своего проекта - дело хорошее! Если это будет, как опция в FLProg, то ценность её для коммерческих проектов несомненно увеличится!
Блокировка прошивки в контроллере - Fuse bits
Воистину так, говорю как потенциальный коммерческий пользователь.
- kulibinsvv
- Лейтенант
- Сообщения: 487
- Зарегистрирован: 18 сен 2015, 10:04
- Откуда: Омск
- Благодарил (а): 3 раза
- Поблагодарили: 5 раз
Блокировка прошивки в контроллере - Fuse bits
Прочитал ветку и понял, что у многих путаница с режимами программирования контроллеров AVR. Возьму на себя смелость внести ясность в этот вопрос.
Микроконтроллеры семейства Mega поддерживают следующие режимы программирования:
• режим последовательного программирования (по интерфейсу SPI);
• режим параллельного программирования при высоком напряжении;
• режим программирования через интерфейс JTAG.
Под «высоким» напряжением здесь понимается управляющее напряжение (12 В), подаваемое на вывод RESET микроконтроллера для перевода последнего в режим программирования.
Какие из режимов поддерживает конкретный микроконтроллер, можно узнать из даташитов.
Конкретно для плат Ардуино основанных на контроллерах ATmtga8,48,88,168,328 поддерживаются первые два режима, программирование по JTAG недоступно.
Кроме того, микроконтроллеры семейства Mega имеют возможность самопрограммирования. Под этим термином понимается изменение содержимого памяти программ, управляемое самим микроконтроллером. Т.е. изменяется содержимое Flash памяти с помощью программы загрузчика (bootloader).
Именно этот режим и используют платы Ардуино для "заливки" программы.
Теперь о Fuse Вits.
Как следует из названия, конфигурационные ячейки определяют различные параметры конфигурации микроконтроллера. Эти ячейки расположены в отдельном адресном пространстве, доступном только при программировании (но не самопрограммировании!!!). Все конфигурационные ячейки сгруппированы в 2 или 3 байта, а состав этих ячеек зависит от конкретной модели микроконтроллера.
Ячейки защиты в состав Fuse Вits не входят и гордо называются Lock Bits.
Все ячейки защиты сгруппированы в одном байте и при различных вариантах защищают Flash, EEPROM и Fuse Bits. Они также как и Fuse Bits недоступны в режиме самопрограммирования.
Подробнее можно узнать в даташитах или из книг Евстифеева, где он делает довольно приличный обзор микроконтроллеров AVR.
По поводу файла boards.txt он предназначен для "заливки" bootloadera в микроконтроллер внешним программатором из IDE Ардуино и менять его категорически не советую. Если вдруг придётся реанимировать "заглохшую" плату Вам поможет только внешний программатор и файлики из папки hardware. Кому интересно, запустите IDE и посмотрите в меню Инструменты -> Программатор или Инструменты -> Записать загрузчик.
Ну, и Help никто не отменял. Кстати, Гугл с Яндексом тоже.
Микроконтроллеры семейства Mega поддерживают следующие режимы программирования:
• режим последовательного программирования (по интерфейсу SPI);
• режим параллельного программирования при высоком напряжении;
• режим программирования через интерфейс JTAG.
Под «высоким» напряжением здесь понимается управляющее напряжение (12 В), подаваемое на вывод RESET микроконтроллера для перевода последнего в режим программирования.
Какие из режимов поддерживает конкретный микроконтроллер, можно узнать из даташитов.
Конкретно для плат Ардуино основанных на контроллерах ATmtga8,48,88,168,328 поддерживаются первые два режима, программирование по JTAG недоступно.
Кроме того, микроконтроллеры семейства Mega имеют возможность самопрограммирования. Под этим термином понимается изменение содержимого памяти программ, управляемое самим микроконтроллером. Т.е. изменяется содержимое Flash памяти с помощью программы загрузчика (bootloader).
Именно этот режим и используют платы Ардуино для "заливки" программы.
Теперь о Fuse Вits.
Как следует из названия, конфигурационные ячейки определяют различные параметры конфигурации микроконтроллера. Эти ячейки расположены в отдельном адресном пространстве, доступном только при программировании (но не самопрограммировании!!!). Все конфигурационные ячейки сгруппированы в 2 или 3 байта, а состав этих ячеек зависит от конкретной модели микроконтроллера.
Ячейки защиты в состав Fuse Вits не входят и гордо называются Lock Bits.
Все ячейки защиты сгруппированы в одном байте и при различных вариантах защищают Flash, EEPROM и Fuse Bits. Они также как и Fuse Bits недоступны в режиме самопрограммирования.
Подробнее можно узнать в даташитах или из книг Евстифеева, где он делает довольно приличный обзор микроконтроллеров AVR.
По поводу файла boards.txt он предназначен для "заливки" bootloadera в микроконтроллер внешним программатором из IDE Ардуино и менять его категорически не советую. Если вдруг придётся реанимировать "заглохшую" плату Вам поможет только внешний программатор и файлики из папки hardware. Кому интересно, запустите IDE и посмотрите в меню Инструменты -> Программатор или Инструменты -> Записать загрузчик.
Ну, и Help никто не отменял. Кстати, Гугл с Яндексом тоже.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)
Блокировка прошивки в контроллере - Fuse bits
kulibinsvv, Вы вссё испортили.
Я ждал, кто ещё что- то предложит
))
Я ждал, кто ещё что- то предложит

- kulibinsvv
- Лейтенант
- Сообщения: 487
- Зарегистрирован: 18 сен 2015, 10:04
- Откуда: Омск
- Благодарил (а): 3 раза
- Поблагодарили: 5 раз
Блокировка прошивки в контроллере - Fuse bits
Прошу прощения за испорченный праздник души. 

Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя