Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Keil & Watchdog
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
toweroff
Добрый день!
Что-то никак не найду. Хотелось бы "на лету", а не каждый раз перекомпилируя, определять, нахожусь ли я под управлением отладчика (JLink) или нет
И уже, в зависимости от этого, выполнять код инициализации собаки

Как вообще это лучше сделать? Я что-то прихожу к выводу, что, дойдя до бряка, камень "улетает" в сброс, а JLink об этом ничего и не знает
MiklPolikov
Цитата(toweroff @ Jan 9 2013, 15:49) *
Добрый день!
Что-то никак не найду. Хотелось бы "на лету", а не каждый раз перекомпилируя, определять, нахожусь ли я под управлением отладчика (JLink) или нет
И уже, в зависимости от этого, выполнять код инициализации собаки

Как вообще это лучше сделать? Я что-то прихожу к выводу, что, дойдя до бряка, камень "улетает" в сброс, а JLink об этом ничего и не знает


1)Когда я программировал SAM7 , такая возможность была :
В дереве проекта надо было выделить файл startap. При этом в рабочей области появлялся либо ассемблерный код,
либо Konfiguration Wizard в котором можно было галочками настраивать PLL, частоты и т.п. Что именно в рабочей области, Configuration Wizard или просто код выбиралось внизу рабочей области.
Так вот, там была опция отключения WDT под отладкой.
Сейчас программирую STM32 , и в Konfiguration Wizard почти никаких опций нету.

2) Могу посоветовать , что бы было проще перекомпилировать , сделать через #ifdef :
Код
      #define DEBUG       //это в файле main.h
    
............................................
      #ifndef DEBUG  
             включаем  WDT;  // эта строчка кампилируется только если закоментировано   #define DEBUG
      #endif


Если У вас так не сделано, и Вы роетесь по всему коду что бы то что надо отключать под отладкой закоментировать


toweroff
Это понятно и известно
Я говорю о выполняемом коде из-под отладчика, а не об условной компиляции. Есть какие-то инструменты у камня? Знает ли он, как его запустили?
Лазил по всему UM, но так и не нашел. Вот и возник вопрос - я плохо искал или этого нет в принципе?
(камень LPC29xx)
ViKo
Цитата(toweroff @ Jan 14 2013, 10:24) *
Я говорю о выполняемом коде из-под отладчика, а не об условной компиляции. Есть какие-то инструменты у камня? Знает ли он, как его запустили?

Если есть, например, такие функции..., запускаемые при входе в отладку, то кто мешает в отладчике запретить Watchdog таким же образом?
Код
FUNC void EnableTPIU(void) {
  _WDWORD(0xE0042004, 0x00000020);    // Set asynchronuous communication via DBGMCU_CR
}
LOAD Objects\...
G, main
EnableTPIU();
toweroff
Цитата(ViKo @ Jan 14 2013, 12:44) *
Если есть, например, такие функции..., запускаемые при входе в отладку, то кто мешает в отладчике запретить Watchdog таким же образом?
Код
FUNC void EnableTPIU(void) {
  _WDWORD(0xE0042004, 0x00000020);    // Set asynchronuous communication via DBGMCU_CR
}
LOAD Objects\...
G, main
EnableTPIU();

то есть просто записать в определенном месте в памяти magic word и в коде проверить?
вариант...
но, все-таки, не совсем то. Без подобного шаманства вообще проц может на основании каких-то своих регистров знать о том, под отладкой он или нет?
Или, если уж открыл JTAG, так сиди и недергайся, его лапы тебя и держат?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.