ARM Cortex M определяет, находится ли отладчик в режиме Run или Debug. - PullRequest
0 голосов
/ 16 января 2020

Существует проверенный способ определения, подключен ли отладчик к Cortex-M, как видно здесь .

Я использовал как способ автоматической установки точки останова, когда я в сеансе отладки:

void autobreak() {
  if (CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk)  { 
      __asm__ __volatile__ ("bkpt #0"); 
  } 
}

Я использую J-Link и OpenOCD в CLion для отладки. При autobreak() J-Link останавливает выполнение программы без указания вручную точек останова в режиме отладки . Однако, похоже, что в режиме выполнения J-Link по-прежнему останавливает выполнение программы, что нежелательно для моего приложения.

Позвольте мне быстро уточнить, что я имею в виду под каждым режимом:

  • Режим работы : только программа fla sh
  • Режим отладки : программа Fla sh затем позволяет пользователю приостанавливать выполнение программы и устанавливать точки останова вручную

Есть ли способ проверить, подключен ли J-Link в режиме отладки или в режиме работы ?

...