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

 
 
> Тестирование exceptions для STM32, Как гарантированно вызвать обработчики исключений?
Lyrri
сообщение Feb 25 2014, 09:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 15-01-11
Из: Киев
Пользователь №: 62 244



В текущем проекте сделал сохранение последнего исключения во внешнюю flash память для дальнейшего анализа (сохранение последней причины перезагрузки системы). Осталось это все дело протестировать. То есть написать тестовый код так, чтобы гарантированно вызвать исключения: NMI, HardFault, MemManage, BusFault, UsageFault.
Нашел как вызвать HardFault на просторах этого форума (попытка чтения по невыровненному адресу).

Код
void make_hard_fault()
{
    __asm volatile
    (
        "MOVS r0, #1       \n"
        "LDM r0,{r1-r2}    \n"
        "BX LR                \n"
    );
}


Как лучше/правильнее протестировать все остальные исключения?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Feb 26 2014, 11:49
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



У меня так. А какое исключение вызывается, не помню. :-)
Код
/*!****************************************************************************
@brief        HardFault generate
@details    Создать исключительное событие (для проверки)
@param        none
@return    
@note        Create unaligned multiple load/store
*/
__asm void HardFault_generate(void) {
  MOVS R0, #1
  LDM R0, {R1-R2}
  B .
}

Ой, это то же самое, что в первом сообщении!
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 27 2014, 20:35
Сообщение #3


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ViKo @ Feb 26 2014, 15:49) *
... А какое исключение вызывается, не помню. :-)..

sm.gif
чукча не читатель, чукча писатель (из анекдота)

там как бы название функции само за себя говорит

"HardFault_generate"
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 27th August 2025 - 17:42
Рейтинг@Mail.ru


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