STM32 JTAG контакты с помощью

Я использую SWD для загрузки прошивки в чип stm32 и отладки. Он использует 3 контакта: SWCLK(TCK), SWDIO(TMS) а также GND,

Могу ли я использовать другие выводы JTAG, которые не используются в интерфейсе SWD:(TDI, TDO, TRST) для собственных целей при сохранении возможности перепрошивки прошивки в чип?

5 ответов

На самом деле SWD использует только два контакта SWD и SCLK. GND распространены и не могут быть использованы для любых других целей. SWO - только если вы используете (и нуждаетесь) такие функции, как полухостинг

Если вы запустите CubeMx - вы увидите, что если вы выберете SWD, все остальные выводы JTAG станут доступны для общего пользования.

Ну, это может зависеть от возможностей вашего отладчика....

Но в целом: да, вы можете программировать флэш-память только через SWD и использовать оставшиеся контакты JTAG для других целей. Например, отладчик Lauterbach может сделать это.

Однако, если ваш инструмент отладчика поддерживает запись трассировки, я бы не использовал вывод TDO для вашего приложения, так как этот вывод обычно можно использовать как вывод трассировки SWO в режиме SWD. (с Cortex-M3/M4 или M7)

Я просто могу добавить, что вы всегда можете подключиться к stm32 с помощью JTAG или SWD, если вы выберете в настройках отладчика подключение при перезагрузке.
Это необходимо, когда вы намеренно или непреднамеренно перенастраиваете выводы JTAG или SWD. Однако это также зависит от оборудования, подключенного к этим контактам, поэтому иногда это не будет работать.
Тем не менее, этого должно быть достаточно для загрузки прошивки.

После сброса UC будет готов к подключению через SWD или JTAG, все зависит от вашего отладчика (так как все контакты будут в конфигурации по умолчанию), но когда ваше приложение перенастроит один из IO, используемых интерфейсом отладки, вы потеряете возможность подключения к ядру через этот интерфейс.

Если вы не используете какой-либо из выводов SWD (CLK и DIO), вы сможете подключиться к своей цели в любое время, даже не сбрасывая УЦ, так как эти выводы будут готовы к подключению в любое время.

но, если вы переконфигурировали один из этих контактов, например, для чтения кнопки, вам нужно будет сбросить цель и подключиться к ней до запуска вашего кода, в этом случае вам нужно будет добавить к интерфейсу отладки соединение с RESET, поэтому отладчик сбрасывает цель и подключается к ней сразу после. (и, очевидно, вы не можете нажать кнопку во время отладки),поэтому всегда полезно добавить RESET к соединению отладчика

Да, вы можете использовать другие контакты JTAG. И если вам не нужна отладка, вы также можете использовать выводы SWD после перепрошивки чипа, но в этом случае вам, скорее всего, потребуется перепрограммировать память из системной памяти.

Другие вопросы по тегам