Организация памяти STM

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 25608
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

При разрушении стека этот метод не работает, а так да...
Реклама
Опытный кот
Аватара пользователя
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Сообщение MLX90640 »

Для обнаружения причины есть биты и регистры ошибок, их и нужно читать. Кагбе вот.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25608
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="MLX90640",url="/forum/viewtopic.php?p=4322372#p4322372"]Для обнаружения причины[/uquote]
Разговор шел не о причине, а о МЕСТЕ возникновения исключения.
Мудрый кот
Сообщения: 1803
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="MLX90640",url="/forum/viewtopic.php?p=4322301#p4322301"]Может, стоит вначале почитать контекст предыдущего поста, прежде чем писать столь длинный мессаг?[/uquote]Какой "контекст"? Этот бред:
[uquote="MLX90640",url="/forum/viewtopic.php?p=4321680#p4321680"]исключение - исключительная ситуация, ну то есть "катастрофа, всё пропало!". Дальнейшая работа микроконтроллера будет невозможна, он переходит в специальный режим и остается в нем до сброса.[/uquote]что-ли?

А вы уже прочитали мануал на ядро, где описано что такое "исключение"? Если бы его открыли, то нашли бы там например следующее:
"Enables SysTick exception request:
0 = counting down to zero does not assert the SysTick exception request
1 = counting down to zero asserts the SysTick exception request.
Software can use COUNTFLAG to determine if SysTick has ever counted to zero.
"
в описании "SysTick Control and Status Register".
Что такое "exception" перевести сможете?
Т.е. по вашему - после первого же exception-а от SysTick остаётся только перегрузиться. Работать никак нельзя. :)))
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Сообщение MLX90640 »

Согласно мануалу, исключение - это исключительная ситуация. Ошибки - это подмножество исключительных ситуаций. А контекст темы касался именно ошибок. Так что сам ты "бред", сударь :) Ичись читать, а не спорить
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25608
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="MLX90640",url="/forum/viewtopic.php?p=4322904#p4322904"]Согласно мануалу, исключение - это исключительная ситуация.[/uquote]
Вообще-то читаем мануал в части его Глоссария:
ARM Architecture Reference Manual писал(а):Exception
Handles an event. For example, an exception could handle an external interrupt or an Undefined instruction.
Далее читаем мануал в части раздела "Исключения":
ARM Architecture Reference Manual писал(а):A2.6 Exceptions
Exceptions are generated by internal and external sources to cause the processor to handle an event, such as
an externally generated interrupt or an attempt to execute an Undefined instruction. The processor state just
before handling the exception is normally preserved so that the original program can be resumed when the
exception routine has completed. More than one exception can arise at the same time.
The ARM architecture supports seven types of exception. Table A2-4 lists the types of exception and the
processor mode that is used to process each type. When an exception occurs, execution is forced from a fixed
memory address corresponding to the type of exception. These fixed addresses are called the exception
vectors.
Изображение
*) по картинке с таблицей в цитате следует кликнуть для увеличения.
Из чего следует, что никаких "караул все пропало" или "исключительной ситуации" из обсуждаемого термина Exception не следует, а данный термин полностью синонимичен термину Non-maskable interrupt в других архитектурах.
Обрабатывается как обычное прерывание, потому что по сути ничем от него не отличается.
А уж если совсем строго по терминологии Мануала, то ЛЮБОЕ ПРЕРЫВАНИЕ классифицируется как Mode of Exception. Смотрим таблицу в цитате.
[uquote="MLX90640",url="/forum/viewtopic.php?p=4321680#p4321680"]работа микроконтроллера будет невозможна, он переходит в специальный режим и остается в нем до сброса.[/uquote]Никакого "специального режима" нет. Просто в обработчике ПО ДЕФОЛТУ startup-а тупо записан зацикливающий branch (B). Если туда написать возврат из прерывания, то получим игнорирование исключения. Можно уйти на иное тело обработчика и там разрулить исключение.
Реклама
Опытный кот
Аватара пользователя
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Сообщение MLX90640 »

Ну тогда следует почитать мануал чуть дальше показанного.
Друг Кота
Аватара пользователя
Сообщения: 25608
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="MLX90640",url="/forum/viewtopic.php?p=4323034#p4323034"]почитать мануал чуть дальше[/uquote]
Зачем? Если у вас есть возражения по существу, то цитируйте дальше сами. Могу только намекнуть, что "дальше" в этом параграфе мануала расписаны все типы исключений в порядке указанном в представленной таблице. И среди них есть и обычные IRQ.
Мудрый кот
Сообщения: 1803
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="MLX90640",url="/forum/viewtopic.php?p=4322904#p4322904"]Согласно мануалу, исключение - это исключительная ситуация. Ошибки - это подмножество исключительных ситуаций. А контекст темы касался именно ошибок.[/uquote]Ясно, предпочитаем крутиться как уж на сковородке, лишь бы не признавать свою ошибку. Всё с вами ясно. Эксперд млин....
Ответить

Вернуться в «ARM»