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

 
 
> Тестирование 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
Ответов
adnega
сообщение Feb 26 2014, 07:42
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



А у Вас действительно эти обработчики заведены, настроены и разрешены?
Вам будет какая-то выгода, если вместо одного HardFault будут вызаваться все эти обработчики?
В конце концов есть регистры xFSR.
Естественно, что для "не-fault-овых" исключений (SysTick, NMI{CSS}, SVC) должен быть свой обработчик,
но во флеш при этом сохранять ничего не требуется.
Go to the top of the page
 
+Quote Post



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

 


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


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