реклама на сайте
подробности

 
 
> Передача адреса DATA ABORT из исключения
id_Alx
сообщение Mar 25 2011, 12:18
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 12-08-06
Из: Минск
Пользователь №: 19 504



В ходе выполения программа выпадает в DATA ABORT и перезапускается WDT. Хочу после перезапуска получить адрес инструкции вызвавшей исключение. В исключении сохраняю в глобальную переменную, в основном теле вычитываю при старте. В отладчике все работает. Без отладчика переменная abort_addr из исключения не устанавливается, а при каждом нажатии на сброс увеличивается на единицу. Почему не устанавливается?

Код
static volatile __no_init dword abort_addr;

#pragma optimize = none
__irq __arm void Abort_Handler()
{
  static __no_init dword j;
  dword ttt = j;
  
  asm("sub r0,lr,#8  \n" );
  abort_addr = ttt;
  while (1)
  {
  }
}


int main( void )
{
  // всякая инициализация

  printf( "0x%08X", abort_addr ); // III
  abort_addr++;

  while (1);
}


Сообщение отредактировал id_Alx - Mar 25 2011, 12:18
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 21:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016