FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Воскресенье, 04.12.2016, 04:54
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Новый функционал » Новые » Блокировка прошивки в контроллере - Fuse bits
Блокировка прошивки в контроллере - Fuse bits
Сергей
Дата: Вторник, 08.09.2015, 15:05 | Сообщение # 1
Модератор
Группа: Модераторы
Сообщений: 366
Награды: 15
Репутация: 5
Статус: Offline
Выставляю тему на голосование за новый функционал программы. Прошивка битов блокировки.

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


Выгодные покупки на AliExpress в Cashback ePN! Возврат до 12 % от стоимости ЛЮБОГО товара!
 
Max Дата: Вторник, 08.09.2015, 15:13 | Сообщение # 2
Гуру
Группа: Проверенные
Сообщений: 482
Награды: 14
Репутация: 4
Статус: Offline
Насколько я знаю, с этими фьюзами надо быть осторожным. Сталкивался с подобной защитой ПО в МК, что бы считать её не смогли.

Максим (VK - Максим Дунаевский)
 
support Дата: Вторник, 08.09.2015, 19:25 | Сообщение # 3
Автор программы
Группа: Администраторы
Сообщений: 579
Награды: 30
Репутация: 21
Статус: Offline
Я проголосовал против. Фьюзы это очень опасное дело, и играться с ними не стоит. При прошивке через Arduino-IDE выставляются необходимые фьюзы. Не вижу необходимости рисковать и менять их.

Разработчик программы FLProg
 
dekorator Дата: Среда, 09.09.2015, 13:02 | Сообщение # 4
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
Цитата support ()
Фьюзы это очень опасное дело, и играться с ними не стоит.
Добавить считаю нужно. А Ваш пост, выдавать как предупреждение.

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

Играться с электричеством - очень опасно!!!!
               Закроем проект??? hands
 
support Дата: Среда, 09.09.2015, 19:18 | Сообщение # 5
Автор программы
Группа: Администраторы
Сообщений: 579
Награды: 30
Репутация: 21
Статус: Offline
Цитата dekorator ()
Надо так: - Фьюзы это очень опасное дело, и играться с ними при отсутствии серого вещества, не стоит.Играться с электричеством - очень опасно!!!!
Закроем проект??? hands
Давате постараюсь объяснить свою позицию.

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


Разработчик программы FLProg
 
dekorator Дата: Среда, 09.09.2015, 21:44 | Сообщение # 6
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
Цитата support ()
Какие плюсы дает возможность управлять фьюзами? Повышение частоты процессора? что то ещё?
Не надо все. нужен один, который безопасный, тот который запрещает считывание программы из МК.
 
В модбасе только одна проблема. Программа пытается создать в контроллере,  массив данных, величиной равной наибольшему адресу из списка созданных тегов ведущего. 
 uint16_t _regModSlav_1[8193];


Сообщение отредактировал dekorator - Среда, 09.09.2015, 22:07
 
support Дата: Четверг, 10.09.2015, 05:48 | Сообщение # 7
Автор программы
Группа: Администраторы
Сообщений: 579
Награды: 30
Репутация: 21
Статус: Offline
Цитата dekorator236Не надо все. нужен один, который безопасный, тот который запрещает считывание программы из МК.
А разве сейчас это возможно? Нее, честно я не знаю как это сделать. Вроде можно с помощью программатора сделать дамп памяти процессора, но что это даст?. Разбираться с двоичным кодом..., проще заново написать


Разработчик программы FLProg
 
Grafsaxar Дата: Пятница, 11.09.2015, 00:20 | Сообщение # 8
Лейтенант
Группа: Проверенные
Сообщений: 67
Награды: 1
Репутация: 1
Статус: Offline
Цитата support ()
сделать дамп памяти процессора, но что это даст?. Разбираться с двоичным кодом..., проще заново написать
Согласен.  Пытался я как-то перекинуть дамп. 2 недели убил. результат 0 .
 
dekorator Дата: Пятница, 11.09.2015, 00:41 | Сообщение # 9
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
Код с ардуины, спокойно считывается через ISP, и при набности, так же записывается обратно. Конечно, можно устанавливать бит защиты от считывания программатором, но несколько не удобно.
Разбираться с двоичным кодом - гемор, а скопировать не защищенный - как два пальца!
 
Max Дата: Пятница, 11.09.2015, 07:07 | Сообщение # 10
Гуру
Группа: Проверенные
Сообщений: 482
Награды: 14
Репутация: 4
Статус: Offline
Цитата dekorator ()
Код с ардуины, спокойно считывается через ISP, и при набности, так же записывается обратно. Конечно, можно устанавливать бит защиты от считывания программатором, но несколько не удобно.Разбираться с двоичным кодом - гемор, а скопировать не защищенный - как два пальца!

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


Максим (VK - Максим Дунаевский)
 
shtirlitz Дата: Среда, 16.09.2015, 18:53 | Сообщение # 11
Рядовой
Группа: Проверенные
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Воистину так, говорю как потенциальный коммерческий пользователь.
 
kulibinsvv Дата: Понедельник, 28.09.2015, 10:52 | Сообщение # 12
Рядовой
Группа: Проверенные
Сообщений: 20
Награды: 1
Репутация: 0
Статус: Offline
Прочитал ветку и понял, что у многих путаница с режимами программирования контроллеров 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 Дата: Понедельник, 28.09.2015, 11:22 | Сообщение # 13
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 10
Репутация: 1
Статус: Offline
kulibinsvv, Вы вссё испортили. 
Я ждал, кто ещё что- то предложит :)))
 
kulibinsvv Дата: Понедельник, 28.09.2015, 11:26 | Сообщение # 14
Рядовой
Группа: Проверенные
Сообщений: 20
Награды: 1
Репутация: 0
Статус: Offline
Прошу прощения за испорченный праздник души. biggrin
 
Форум » Новый функционал » Новые » Блокировка прошивки в контроллере - Fuse bits
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика