Я работаю над проектом с использованием STM32F103, и я закончил разработку прошивки. Я использую утилиту ST-Link для загрузки файлов на микроконтроллер. Когда я активирую считывание защиты на моем чипе, он перестает работать. И мне нужно защитить свою прошивку. В чем проблема?Как защитить вспышку чтения stm32f10x
ответ
Это было некоторое время, так как я отвечал на этот вопрос, и как это было какой-то новый вид деятельности, я вывешу ответ, который я нашел.
Сразу после программирования контроллера перейдите в раздел «Параметры байтов» утилиты ST-Link и включите функцию «Отключить защиту». Просто помните, что после включения этого ядра ядро перестанет работать, и вы должны сбросить микроконтроллер самостоятельно. Чтобы запрограммировать его снова, вы должны отключить защиту от чтения, и утилита сделает это автоматически.
Прежде всего, вам необходимо разблокировать вспышку. Должен быть вызов в библиотеке STM32 StdPeriph. Мой код выглядит примерно так:
/* Read protect the flash. NEVER EVER set this to level 2. You can't
* write to the chip ever again after that. */
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_1);
if (FLASH_OB_Launch() != FLASH_COMPLETE)
{
err_printf("Error enabling RDP\n");
}
FLASH_OB_Lock();
Просто немного больше информации к принятому ответу:
ST32F10XXX docs Из раздела «2.4.1 Защита от чтения»:
Защита чтения активируется путем установки параметра RDP байт и затем, применяя системный сброс для перезагрузки нового байта опций RDP.
Примечания: Если защита чтения устанавливается в то время как отладчик по-прежнему подключен через JTAG/SWD, применить POR (сброс мощность) вместо сброс системы (без подключения отладчика).
После байта защиты запрограммирован:
- Главной Флэш-память доступа для чтения не допускается для кода пользователя, за исключением (при загрузке с главной самой флэш-памяти в режиме отладки не активно) ,
- Страницы 0-3 (для устройств со средней плотностью и ) или страницы 0-1 (для устройств с высокой плотностью и ) автоматически защищены от записи. Остальные памяти могут быть запрограммированы кодом, выполненным из основной флэш-памяти (для IAP, постоянного хранения и т. Д.), Но он защищен от записи/стирания (но не против стирания массы) в режиме отладки или когда загрузка из встроенного SRAM.
- Все функции, связанные с загрузкой кода и выполнением кода из встроенного SRAM , по-прежнему активны (JTAG/SWD и загрузка со встроенной SRAM), и это может быть использовано для , чтобы отключить защиту чтения. Когда байт опции защиты чтения изменяется на значение памяти с защитой , выполняется массовое стирание.
- При загрузке со встроенной SRAM доступ к флэш-памяти через код и чтение данных с использованием DMA1 и DMA2 запрещены.
- флэш-доступ к памяти через данные для чтения с помощью JTAG, SWV (серийный телезрителя провода), ДСО (серийный отладочный провод), ETM и граничное сканирование не допускаются
снятия защиты
Чтобы отключить прочитайте защиту от встроенной SRAM:
- Удалите всю область байта опций. В результате код защиты чтения (RDP) будет равен 0xFF. На этом этапе защита чтения по-прежнему включена.
- Запрограммируйте правильный код RDP 0x00A5 для снятия защиты с памяти. Эта операция сначала заставляет Mass Erase основной флэш-памяти.
- Сбросьте устройство (POR Reset), чтобы перезагрузить байты опции (и новый код RDP) и , чтобы отключить защиту чтения.
Примечание: Защита чтения можно отключить с помощью загрузчика (в данном случае используется только система сброса необходимо перезагрузить опцию байт). Подробнее см. AN2606.
Существует также защита от записи на чипе, см. Документ.
- 1. STM32F10X таймер
- 2. Как перенаправить printf() на STM32F10x?
- 3. Как защитить .apk файл от чтения
- 4. Сложение Failed - Embedded C STM32F10X
- 5. Как защитить файл хранимой процедуры от чтения - SQL Server
- 6. Как защитить столбцы в спящем режиме от чтения
- 7. Как защитить мой файл excel от чтения другими?
- 8. Android: Как защитить файлы для чтения/копирования/удаления видео?
- 9. Как включить вспышку на NWJS?
- 10. Как предотвратить нечетную вспышку прокрутки?
- 11. Как разместить вспышку над текстом
- 12. как включить вспышку в wordpress
- 13. Как защитить файлы пользователя
- 14. Подайте вспышку конкретного исключения
- 15. Сделать вспышку камеры вспышкой
- 16. Улучшите мою вспышку JLabel
- 17. Гиперссылка на вспышку
- 18. Заменить вспышку JavaScript
- 19. Как защитить код сценария оболочки
- 20. Как защитить багажник от разработчиков
- 21. Как обнаружить автоматическую звуковую вспышку на странице?
- 22. Как проверить вспышку с помощью огурца
- 23. Как запретить другим встроить мою вспышку?
- 24. Как заставить вспышку мигать при нажатии кнопки
- 25. Как реализовать игру или приостановить вспышку?
- 26. Как заглушить вспышку в спецификации RSpec?
- 27. Как сделать вспышку экрана, не работает
- 28. Как петля видео на вспышку для воздуха?
- 29. Как загрузить внешнюю вспышку в html
- 30. Как сделать вспышку доступной по запросу?
Не могли бы вы дать более подробную информацию? Для примера: когда вам нужно позвонить этому из прошивки пользователя? – hoo2