Снова приветствую,
у меня еще один скорее всего простой вопрос... Зачем нужен вход BOOT0 у микроконтроллеров STM32? Смотрю готовые схемы почти везде он просто подключен через резистор к земле.
Доброго времени, если в двух словах, то у STM32 существуют разные режимы запуска, в частности:
- Main flash memory - контроллер стартует с адреса пользовательской прошивки, по дефолту - 0x08000000
- ST bootloader - системный бутлодер, расположенный в отдельной области памяти и зашитый при производстве. Нужен для обновления "основной" прошивки, например, по UART'у (один из вариантов)
- SRAM
Пины BOOTx как раз и отвечают за выбор между этими вариантами, вот пример для наглядности (STM32F4):
В большинстве случаев системный бутлодер не используют (либо пишут свой, либо вообще не предусматривают возможность обновления прошивки в процессе эксплуатации), поэтому просто подтягивают к земле. Это если кратко, а так вот еще информация:
Вроде разобрался... Получается чтобы использовать системный загрузчик надо предусмотреть кнопку или джампер на BOOT0 на плате?
Вроде разобрался... Получается чтобы использовать системный загрузчик надо предусмотреть кнопку или джампер на BOOT0 на плате?
Чаще всего так и делают, но можно и программно перейти в системный бутлодер, например, при получении какого-либо внешнего сигнала ил команды.
@aveal А можете пример небольшой написать, как программно перейти?
P. S. Сейчас создам отдельную тему, чтобы людям проще было потом найти.
Сейчас создам отдельную тему, чтобы людям проще было потом найти.
Отлично 👍