Страница 1 из 1

Принцип прошивки STM32 по SWD

Добавлено: Пн май 02, 2016 13:41:10
xneo
Здравствуйте. Помогите разобраться с одним моментом.

Итак, есть STM32F Discovery плата с STLink на борту. Есть программируемая плата (таргет) с STM32F, подключённая к STLink по SWD пятью линиями - VDD, GND, SWDIO, SWCLK, NRST.
Итак, мы запускаем прошивку. Допустим от STLink по NRST приходит сброс. Таргет перегружается, и что дальше? Возможно, там уже есть какая-то предыдущая прошивка, которая линии SWDIO и SWCLK использует как GPIO. По какому признаку он должен перейти именно в режим программирования?

Re: Принцип прошивки STM32 по SWD

Добавлено: Пн май 02, 2016 15:45:13
КРАМ
Сразу после сброса пины используемые SWD еще никак не сконфигурированы. Поэтому нет никакой разницы есть там прошивка или ее нет и использует она эти пины для иных целей или нет.

Re: Принцип прошивки STM32 по SWD

Добавлено: Пн май 02, 2016 18:19:06
uk8amk
Если там есть прошивка и установлен Protection Level 2, то ничего не получится.

Re: Принцип прошивки STM32 по SWD

Добавлено: Пн май 02, 2016 18:28:41
КРАМ
Прошивка то причем? Protection Level 2 - достаточно.
Но вопрос был не о защите.

Re: Принцип прошивки STM32 по SWD

Добавлено: Вт май 03, 2016 10:06:10
xneo
Да, вопрос был как именно контроллер переходит в состояние прошивки.
Если никаких дополнительных линий не подключено, выходит что после рестарта контроллер переводит ножки в SWD и какое-то время ждёт комманд. Если их нет, продолжает загрузку пользовательской прошивки?
Я других вариантов не вижу. Есть данный момент в "Reference manual"?

Re: Принцип прошивки STM32 по SWD

Добавлено: Вт май 03, 2016 11:21:08
КРАМ
Читайте 9 раздел:
http://infocenter.arm.com/help/topic/co ... p1_trm.pdf
Пока интерфейс SWD не отключен от пинов, он может перехватить управление на себя.
И из режима удержания ресета и режима исполнения кода.
Алгоритм в референсном мануале на ядро есть.
Естественно, что и SWD и JTAG относятся именно к ядру АРМ, а не к STM32.