Перейти к содержанию

Регистры DBGMCU STM32F7

Регистры DBGMCU STM32F74x/F75x: код устройства и ревизии, отладка в режимах пониженного потребления, выводы трассировки и остановка таймеров, RTC, сторожей, bxCAN и тайм-аута I2C при остановке ядра.

DBGMCU лежит на внешней шине PPB по адресу 0xE004 2000 и сбрасывается только включением питания. DBGMCU_CR сохраняет отладку в Sleep, Stop и Standby и включает трассировку; APB1_FZ и APB2_FZ останавливают периферию, пока ядро стоит на точке останова (RM0385, раздел 40.16).

ЭкземплярБазовый адресЕсть у
DBGMCU0xE004 2000всех

Регистры блока

РегистрСмещениеНазначениеПосле сброса
DBGMCU_IDCODE0x00Код устройства и ревизии—
DBGMCU_CR0x04Отладка в режимах пониженного потребления и трассировка0x0000 0000 (при включении питания; системный сброс регистр не меняет)
DBGMCU_APB1_FZ0x08Остановка периферии APB1 на точке останова0x0000 0000 (при включении питания; системный сброс регистр не меняет)
DBGMCU_APB2_FZ0x0CОстановка периферии APB2 на точке останова0x0000 0000 (при включении питания; системный сброс регистр не меняет)

Конструктор значения

Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.

Значение: 0x00000000

0000 0000 0000 0000 0000 0000 0000 0000

DBGMCU->IDCODE = 0x00000000;

DBGMCU_IDCODE — код устройства и ревизии

Смещение 0x00, адрес 0xE004 2000, 32 бит. В коде: DBGMCU->IDCODE.

31302928272625242322212019181716
REV_ID
1514131211109876543210
—DEV_ID
  • REV_ID (биты 31:16) — Ревизия кристалла.
  • DEV_ID (биты 11:0) — Код устройства.

DBGMCU_CR — отладка в режимах пониженного потребления и трассировка

Смещение 0x04, адрес 0xE004 2004, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет). В коде: DBGMCU->CR.

31302928272625242322212019181716
—
1514131211109876543210
—TRACE_MODETRACE_IOEN—DBG_STANDBYDBG_STOPDBG_SLEEP
  • TRACE_MODE (биты 7:6) — Режим трассировки.
    TRACE_MODEЗначение
    00Асинхронный
    01Синхронный, 1 бит данных
    10Синхронный, 2 бита данных
    11Синхронный, 4 бита данных
  • TRACE_IOEN (бит 5) — Включение выводов трассировки.
  • DBG_STANDBY (бит 2) — STANDBY останавливается, когда ядро остановлено отладчиком.
  • DBG_STOP (бит 1) — STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_SLEEP (бит 0) — SLEEP останавливается, когда ядро остановлено отладчиком.

DBGMCU_APB1_FZ — остановка периферии APB1 на точке останова

Смещение 0x08, адрес 0xE004 2008, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет). В коде: DBGMCU->APB1FZ.

31302928272625242322212019181716
—DBG_CAN2_STOPDBG_CAN1_STOPDBG_I2C4_SMBUS_TIMEOUTDBG_I2C3_SMBUS_TIMEOUTDBG_I2C2_SMBUS_TIMEOUTDBG_I2C1_SMBUS_TIMEOUT—
1514131211109876543210
—DBG_IWDG_STOPDBG_WWDG_STOPDBG_RTC_STOPDBG_LPTIM1_STOPDBG_TIM14_STOPDBG_TIM13_STOPDBG_TIM12_STOPDBG_TIM7_STOPDBG_TIM6_STOPDBG_TIM5_STOPDBG_TIM4_STOPDBG_TIM3_STOPDBG_TIM2_STOP
  • DBG_CAN2_STOP (бит 26) — CAN2_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_CAN1_STOP (бит 25) — CAN1_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_I2C4_SMBUS_TIMEOUT (бит 24) — I2C4_SMBUS_TIMEOUT останавливается, когда ядро остановлено отладчиком.
  • DBG_I2C3_SMBUS_TIMEOUT (бит 23) — I2C3_SMBUS_TIMEOUT останавливается, когда ядро остановлено отладчиком.
  • DBG_I2C2_SMBUS_TIMEOUT (бит 22) — I2C2_SMBUS_TIMEOUT останавливается, когда ядро остановлено отладчиком.
  • DBG_I2C1_SMBUS_TIMEOUT (бит 21) — I2C1_SMBUS_TIMEOUT останавливается, когда ядро остановлено отладчиком.
  • DBG_IWDG_STOP (бит 12) — IWDG_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_WWDG_STOP (бит 11) — WWDG_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_RTC_STOP (бит 10) — RTC_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_LPTIM1_STOP (бит 9) — LPTIM1 останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM14_STOP (бит 8) — TIM14_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM13_STOP (бит 7) — TIM13_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM12_STOP (бит 6) — TIM12_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM7_STOP (бит 5) — TIM7_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM6_STOP (бит 4) — TIM6_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM5_STOP (бит 3) — TIM5_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM4_STOP (бит 2) — TIM4_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM3_STOP (бит 1) — TIM3_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM2_STOP (бит 0) — TIM2_STOP останавливается, когда ядро остановлено отладчиком.

DBGMCU_APB2_FZ — остановка периферии APB2 на точке останова

Смещение 0x0C, адрес 0xE004 200C, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет). В коде: DBGMCU->APB2FZ.

31302928272625242322212019181716
—DBG_TIM11_STOPDBG_TIM10_STOPDBG_TIM9_STOP
1514131211109876543210
—DBG_TIM8_STOPDBG_TIM1_STOP
  • DBG_TIM11_STOP (бит 18) — TIM11_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM10_STOP (бит 17) — TIM10_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM9_STOP (бит 16) — TIM9_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM8_STOP (бит 1) — TIM8_STOP останавливается, когда ядро остановлено отладчиком.
  • DBG_TIM1_STOP (бит 0) — TIM1_STOP останавливается, когда ядро остановлено отладчиком.

Частые вопросы

Как не дать IWDG сбросить STM32F7 на точке останова?

Установите DBG_IWDG_STOP в DBGMCU->APB1FZ: при остановленном ядре сторож замирает.

Источники

  1. STMicroelectronics. RM0385: Reference manual (Rev 9) — раздел 40.16: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-f7 v1.2.10: заголовки CMSIS stm32f745xx.h, stm32f746xx.h, stm32f750xx.h, stm32f756xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры STM32F7

Калькуляторы и статьи