Блокировка прошивки в контроллере - Fuse bits

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
Ответить
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Блокировка прошивки в контроллере - Fuse bits

#1

Сообщение Сергей » 08.09.2015{, 15:05}

Выставляю тему на голосование за новый функционал программы. Прошивка битов блокировки.

Фьюзы - что это?
FUSE – биты (с англ. Предохранительные биты) -  это конфигурационные программируемые биты, которые определяют дальнейший режим работы МК. Эти биты или ячейки сгруппированы в несколько байтов: cтарший конфигурационный байт, младший конфигурационный байт и бывает еще дополнительный конфигурационный байт.
Каждый , кто имел дело с программированием FUSE-битов (для краткости называют фьюзы), загонял свою микросхему в глубокий сон. Другими словами неверные действия над фьюзами легко могут привести к тому, что МК никогда не проснется, либо он будет жив, но программу в него не зашьешь. Поэтому, большинство любителей электроники просто игнорируют их.

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Блокировка прошивки в контроллере - Fuse bits

#2

Сообщение Max » 08.09.2015{, 15:13}

Насколько я знаю, с этими фьюзами надо быть осторожным. Сталкивался с подобной защитой ПО в МК, что бы считать её не смогли.

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Блокировка прошивки в контроллере - Fuse bits

#3

Сообщение support » 08.09.2015{, 19:25}

Я проголосовал против. Фьюзы это очень опасное дело, и играться с ними не стоит. При прошивке через Arduino-IDE выставляются необходимые фьюзы. Не вижу необходимости рисковать и менять их.
Автор программы FLProg.

Аватара пользователя
dekorator
Лейтенант
Сообщения: 427
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Блокировка прошивки в контроллере - Fuse bits

#4

Сообщение dekorator » 09.09.2015{, 13:02}

support писал(а):Фьюзы это очень опасное дело, и играться с ними не стоит.
Добавить считаю нужно. А Ваш пост, выдавать как предупреждение.

Надо так: - Фьюзы это очень опасное дело, и играться с ними при отсутствии серого вещества, не стоит.

Играться с электричеством - очень опасно!!!!
               Закроем проект??? Изображение

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Блокировка прошивки в контроллере - Fuse bits

#5

Сообщение support » 09.09.2015{, 19:18}

dekorator писал(а):Надо так: - Фьюзы это очень опасное дело, и играться с ними при отсутствии серого вещества, не стоит.Играться с электричеством - очень опасно!!!!
Закроем проект??? hands
Давате постараюсь объяснить свою позицию.
  • Во первых проект расчитан в основном на людей не знкомых с программированием, и для них игры со фьюзами может окончится плачевно. Для специалистов никто не запрещает поправить файл /ide/hardware/arduino/avr/boards.txt boards.txt в котором описанны фьюзы для всех плат, и который используется при заливке проекта в контроллер.
  • Во вторых я стараюсь реализовывать только те вещи в которых сам разобрался. Иначе получится как с мастером модбаса. Я торопился и получилась совершенно кривая реализация которую надо переписывать с нуля. Но если в случае с модбасом самое страшное что может произойти - это при загрузки старого проекта мгут удалится переменные мастера и пользователю придётся их пересоздавать (и то если мне не удасться сделать корректный updater, а я постараюсь ), то в случае с фьюзами моя ошибка может стоит пользователю превращения платы в кусок железа. Я не считаю себя в праве так рисковать оборудованием пользователя. Да и не вижу необходимости в этом. Какие плюсы дает возможность управлять фьюзами? Повышение частоты процессора? что то ещё? Стоит ли игра свечь? Я пока считаю что настройки от авторов платы  достаточными и оптимальными
Автор программы FLProg.

Аватара пользователя
dekorator
Лейтенант
Сообщения: 427
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Блокировка прошивки в контроллере - Fuse bits

#6

Сообщение dekorator » 09.09.2015{, 21:44}

support писал(а):Какие плюсы дает возможность управлять фьюзами? Повышение частоты процессора? что то ещё?
Не надо все. нужен один, который безопасный, тот который запрещает считывание программы из МК.
 
В модбасе только одна проблема. Программа пытается создать в контроллере,  массив данных, величиной равной наибольшему адресу из списка созданных тегов ведущего. 
 uint16_t _regModSlav_1[8193];
Последний раз редактировалось dekorator 09.09.2015{, 22:07}, всего редактировалось 1 раз.

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Блокировка прошивки в контроллере - Fuse bits

#7

Сообщение support » 10.09.2015{, 05:48}

Цитата dekorator236Не надо все. нужен один, который безопасный, тот который запрещает считывание программы из МК.
А разве сейчас это возможно? Нее, честно я не знаю как это сделать. Вроде можно с помощью программатора сделать дамп памяти процессора, но что это даст?. Разбираться с двоичным кодом..., проще заново написать
Автор программы FLProg.

Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 6
Откуда: Маркс-Энгелс
Имя: Alexander

Блокировка прошивки в контроллере - Fuse bits

#8

Сообщение Grafsaxar » 11.09.2015{, 00:20}

support писал(а):сделать дамп памяти процессора, но что это даст?. Разбираться с двоичным кодом..., проще заново написать
Согласен.  Пытался я как-то перекинуть дамп. 2 недели убил. результат 0 .
Качество — это делать что-либо правильно, даже когда никто не смотрит

Аватара пользователя
dekorator
Лейтенант
Сообщения: 427
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Блокировка прошивки в контроллере - Fuse bits

#9

Сообщение dekorator » 11.09.2015{, 00:41}

Код с ардуины, спокойно считывается через ISP, и при набности, так же записывается обратно. Конечно, можно устанавливать бит защиты от считывания программатором, но несколько не удобно.
Разбираться с двоичным кодом - гемор, а скопировать не защищенный - как два пальца!

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Блокировка прошивки в контроллере - Fuse bits

#10

Сообщение Max » 11.09.2015{, 07:07}

dekorator писал(а):Код с ардуины, спокойно считывается через ISP, и при набности, так же записывается обратно. Конечно, можно устанавливать бит защиты от считывания программатором, но несколько не удобно.Разбираться с двоичным кодом - гемор, а скопировать не защищенный - как два пальца!
Кстати, по этой причине и расплодилось клонов известной зарядки iMax6, т.к. просто скопировали ПО и стали лепить контрафакт.
К слову, защита своего проекта - дело хорошее! Если это будет, как опция в FLProg, то ценность её для коммерческих проектов несомненно увеличится!

shtirlitz
Рядовой
Сообщения: 3
Зарегистрирован: 16.09.2015{, 18:47}
Репутация: 0
Откуда: Москва

Блокировка прошивки в контроллере - Fuse bits

#11

Сообщение shtirlitz » 16.09.2015{, 18:53}

Воистину так, говорю как потенциальный коммерческий пользователь.

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

Блокировка прошивки в контроллере - Fuse bits

#12

Сообщение kulibinsvv » 28.09.2015{, 10:52}

Прочитал ветку и понял, что у многих путаница с режимами программирования контроллеров 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 никто не отменял. Кстати, Гугл с Яндексом тоже.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Аватара пользователя
dekorator
Лейтенант
Сообщения: 427
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Блокировка прошивки в контроллере - Fuse bits

#13

Сообщение dekorator » 28.09.2015{, 11:22}

kulibinsvv, Вы вссё испортили. 
Я ждал, кто ещё что- то предложит :)))

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

Блокировка прошивки в контроллере - Fuse bits

#14

Сообщение kulibinsvv » 28.09.2015{, 11:26}

Прошу прощения за испорченный праздник души. Изображение
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Ответить

Вернуться в «Новые»