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

 
 
> stm32 NVIC: сброс маскировки прерываний внутри обработчика
jeka
сообщение Jul 12 2017, 16:58
Сообщение #1


Administrator
***

Группа: Свой
Сообщений: 400
Регистрация: 10-05-04
Пользователь №: 1



Назрела необходимость (уже давно), разрешить прерывания более низкого приоритета в обработчике высокого приоритета. Способ в лоб - подкорректировав стек и сделать фиктивный возврат из прерывания.
С помощью MRS/MSR как я понял этого не сделать - в документации написано что запись в IPSR игнорируется.
Есть ли какое-то более человеческое решение чем через формирование стека возврата и возврат из прерывания?

Собственно, зачем это нужно - в случае аварии вызывается определенный irq. В обработчике нужно сделать некую аварийную последовательность действий, но для этого нужны рабочие обработчики другиз, в т.ч. низкоприоритетных прерываний. Можно конечно приоритеты нужных irq повысить.
Но есть вторая задача - сделать софтовый ресет (разумеется с обнулением стека), в нужную функцию и с разблокированными прерываниями. Например, в bootolader для перепрошивки.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jeka
сообщение Jul 12 2017, 18:06
Сообщение #2


Administrator
***

Группа: Свой
Сообщений: 400
Регистрация: 10-05-04
Пользователь №: 1



п.с. irq вызывается, поскольку авария может прилететь извне в любой момент и независимо от режима работы нужно немедленно выполнить аварийные процедуры. Проще всего это сделать с чистого листа - заново принудительно с нуля переинициализировать нужную периферию (чтоб наверняка) в нужный режим, отключить все лишнее и сделать несколько действий.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 12 2017, 18:14
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(jeka @ Jul 12 2017, 21:06) *
п.с. irq вызывается, поскольку авария может прилететь извне в любой момент и независимо от режима работы нужно немедленно выполнить аварийные процедуры. Проще всего это сделать с чистого листа - заново принудительно с нуля переинициализировать нужную периферию (чтоб наверняка) в нужный режим, отключить все лишнее и сделать несколько действий.

Так все-таки, чем не годится вызов некой функции, где все это делается?
Она же вызывается при запуске проца однократно.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
jeka
сообщение Jul 12 2017, 18:25
Сообщение #4


Administrator
***

Группа: Свой
Сообщений: 400
Регистрация: 10-05-04
Пользователь №: 1



Цитата(Forger @ Jul 12 2017, 21:14) *
Так все-таки, чем не годится вызов некой функции, где все это делается?
Она же вызывается при запуске проца однократно.

Ей нужно по хорошему передать несколько параметров. Плюс как определить что на ребут для определенной цели ушел? В память записать определенную сигнатуру? Но это то же колхоз.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 12 2017, 18:32
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(jeka @ Jul 12 2017, 21:25) *
Ей нужно по хорошему передать несколько параметров.
Зачем?
Сделайте разные функции для разных задач. Дайте им соотв. имена.

Цитата
Плюс как определить что на ребут для определенной цели ушел?

Я использую модульную структура проекта, каждый модуль нужно инициализировать индивидуально при старте.
Но ничто не мешает принудительно его переинициализировать (скажем, вызвав соотв. SWI).
Каждый модуль у меня "владеет" своими пинами и своими аппаратными узлами (таймеры, цапы и т.п.).
Никто не обращается к одному и тому же аппаратному узлу из разных модулей. Т. е. у всех аппаратных сущностей есть владелец в единственном числе.
Так я точно могу управлять всей системой. Т. е. на этапе проектировки закладывается строгая и очень жесткая иерархия.
Она неизменна в процессе работы всей железки.
Каждый модуль обязан самостоятельно инициализировать "свое" железо (в т.п. числе и пины!).
Общая пока что только инициализация системного таймера и тактовой частоты, но и она скоро "уйдет" в свой модуль (SystemController).

Цитата
В память записать определенную сигнатуру? Но это то же колхоз.

Я совсем запутался ... Какую еще сигнатуру?
Что же на самом деле вы хотите реализовать?
Распишите конкретный пример, а то, может оказаться, что мы толкуем о разных вещах )))


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
jeka
сообщение Jul 12 2017, 18:45
Сообщение #6


Administrator
***

Группа: Свой
Сообщений: 400
Регистрация: 10-05-04
Пользователь №: 1



Цитата(Forger @ Jul 12 2017, 21:32) *
Я совсем запутался ... Какую еще сигнатуру?
Что же на самом деле вы хотите реализовать?
Распишите конкретный пример, а то, может оказаться, что мы толкуем о разных вещах )))

Мы видимо по разному думаем.

Я про то, как передать загрузчику после железного ресета параметры. Это некий квест и тоже с колхозом.

Работает примерно так: работает девайс в обычном режиме. Приходит кодограмма на перепрошивку, с дополнительными данными. Независимо от режима он должен ребутнуться, продолжить обмен по этому протоколу (без обрыва и без переинициализации протокола обмена) и прошиться. При этом в этой кодограмме содержатся данные, которые надо передать загрузчику.
То есть загрузчик должен получить содержимое кодограммы и все состояния протокола обмена.
После перепрошивки также без переинициализации протокола обмена запустить основную программу.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jeka   stm32 NVIC: сброс маскировки прерываний внутри обработчика   Jul 12 2017, 16:58
- - Forger   Цитата(jeka @ Jul 12 2017, 19:58) Назрела...   Jul 12 2017, 17:29
- - jeka   Собственно в мягком ресете есть необходимость имен...   Jul 12 2017, 17:55
|- - Forger   Цитата(jeka @ Jul 12 2017, 20:55) Единств...   Jul 12 2017, 18:02
|- - jeka   Цитата(Forger @ Jul 12 2017, 21:02) Я бы ...   Jul 12 2017, 18:14
|- - Forger   Цитата(jeka @ Jul 12 2017, 21:14) как вар...   Jul 12 2017, 18:18
|- - Forger   Цитата(jeka @ Jul 12 2017, 21:45) После п...   Jul 12 2017, 18:56
- - jeka   Сейчас я в одном из девайсов делаю примерно так. Т...   Jul 12 2017, 18:34
|- - Forger   Цитата(jeka @ Jul 12 2017, 21:34) Вполне ...   Jul 12 2017, 18:36
- - jeka   Специфика такая. Не хочется протокол обмена обрыва...   Jul 12 2017, 19:17
|- - Forger   Цитата(jeka @ Jul 12 2017, 22:17) Специфи...   Jul 12 2017, 19:19
- - jeka   годится, но больно сложно получается. Плюс дополни...   Jul 12 2017, 19:29
|- - Forger   Цитата(jeka @ Jul 12 2017, 22:29) годится...   Jul 12 2017, 19:36
- - jeka   Ну не хочется городить огород с записью во флеш, п...   Jul 12 2017, 20:01
|- - Forger   Цитата(jeka @ Jul 12 2017, 23:01) ... ког...   Jul 12 2017, 20:08
- - jeka   Цель - понять, можно ли на arm сбросить маскировку...   Jul 12 2017, 23:47
- - KSN   По поводу непрерывного протокола обмена. Делаю та...   Jul 13 2017, 02:24
|- - Forger   Цитата(KSN @ Jul 13 2017, 05:24) По повод...   Jul 13 2017, 06:04
|- - KSN   Цитата(Forger @ Jul 13 2017, 13:04) Скаже...   Jul 13 2017, 07:18
- - jcxz   Цитата(jeka @ Jul 12 2017, 19:58) Назрела...   Jul 13 2017, 06:03
- - jcxz   Цитата(jeka @ Jul 12 2017, 19:58) в докум...   Jul 13 2017, 06:20
- - Obam   ЦитатаНазрела необходимость (уже давно), разрешить...   Jul 13 2017, 07:58
- - jeka   Прошу прощения, не указал один важный момент, из-з...   Jul 13 2017, 09:59
- - Obam   Тогда вообще ни о чём: сброс и всё.   Jul 13 2017, 10:58
- - jeka   Сброс не желателен, т.к. состояние части периферии...   Jul 13 2017, 12:27
|- - Forger   Цитата(jeka @ Jul 13 2017, 15:27) сброс н...   Jul 13 2017, 12:34
- - jeka   Мешает то что если из обработчика прерывания прост...   Jul 13 2017, 12:48
|- - Forger   Цитата(jeka @ Jul 13 2017, 15:48) Мешает ...   Jul 13 2017, 12:54
|- - jcxz   Цитата(jeka @ Jul 13 2017, 15:48) Мешает ...   Jul 13 2017, 15:02
- - Obam   "сброс текущего приоритета прерываний без шам...   Jul 13 2017, 13:09
- - AVI-crak   Цитата(jeka @ Jul 12 2017, 22:58) Собстве...   Jul 13 2017, 15:12
- - jeka   jcxz, спасибо за ответ. В целом как и предполагал....   Jul 13 2017, 16:11
|- - jcxz   Цитата(jeka @ Jul 13 2017, 19:11) jcxz, с...   Jul 13 2017, 16:30
|- - Forger   Вот читаю, вижу интересные мудрёные решения, но во...   Jul 13 2017, 17:14
|- - AVI-crak   Цитата(Forger @ Jul 13 2017, 23:14) Имхо,...   Jul 13 2017, 23:05
|- - Forger   Цитата(AVI-crak @ Jul 14 2017, 02:05...   Jul 14 2017, 08:16
- - jeka   Цитата(AVI-crak @ Jul 14 2017, 02:05...   Jul 14 2017, 15:37
- - Forger   Цитата(jeka @ Jul 14 2017, 18:37) Включая...   Jul 14 2017, 16:15
- - LightElf   QUOTE (jeka @ Jul 14 2017, 18:37) Чтобы ч...   Jul 24 2017, 09:50
- - Forger   Цитата(LightElf @ Jul 24 2017, 12:50) Дык...   Jul 24 2017, 10:10
- - jcxz   Цитата(LightElf @ Jul 24 2017, 12:50) Рес...   Jul 25 2017, 10:45
- - Forger   Цитата(jcxz @ Jul 25 2017, 13:45) Да ладн...   Jul 25 2017, 11:14
- - jcxz   Цитата(Forger @ Jul 25 2017, 14:14) В STM...   Jul 25 2017, 12:02
- - Forger   Цитата(jcxz @ Jul 25 2017, 15:02) Да ладн...   Jul 25 2017, 12:30
- - jcxz   Цитата(Forger @ Jul 25 2017, 15:30) Вы ни...   Jul 25 2017, 13:15
|- - Forger   Цитата(jcxz @ Jul 25 2017, 16:15) В AN260...   Jul 25 2017, 13:20
|- - jcxz   Цитата(Forger @ Jul 25 2017, 16:20) Это у...   Jul 25 2017, 13:30
|- - Forger   Цитата(jcxz @ Jul 25 2017, 16:30) Содержи...   Jul 25 2017, 13:31
- - jcxz   Цитата(Forger @ Jul 25 2017, 15:30) STM32...   Jul 25 2017, 13:25
- - Forger   Цитата(jcxz @ Jul 25 2017, 16:25) boot / ...   Jul 25 2017, 13:29
- - jcxz   Цитата(Forger @ Jul 25 2017, 16:29) Дык, ...   Jul 25 2017, 13:33
- - Forger   Цитата(jcxz @ Jul 25 2017, 16:32) Вопрос ...   Jul 25 2017, 13:48
- - LightElf   QUOTE (jcxz @ Jul 25 2017, 16:33) Вопрос ...   Aug 3 2017, 09:28
- - Forger   Цитата(LightElf @ Aug 3 2017, 12:28) Пред...   Aug 3 2017, 09:47
- - AVI-crak   Режим отладки в памяти. Программа в флеш выполняет...   Aug 3 2017, 13:25
- - LightElf   QUOTE (Forger @ Aug 3 2017, 12:47) Предпо...   Aug 3 2017, 14:06
- - Forger   Цитата(LightElf @ Aug 3 2017, 17:06) Надо...   Aug 3 2017, 14:21
- - AVI-crak   Цитата(LightElf @ Aug 3 2017, 20:06) Дейс...   Aug 3 2017, 16:16
- - Forger   Цитата(AVI-crak @ Aug 3 2017, 19:16)...   Aug 4 2017, 06:56
- - jcxz   Цитата(AVI-crak @ Aug 3 2017, 19:16)...   Aug 4 2017, 06:59
|- - AVI-crak   Цитата(jcxz @ Aug 4 2017, 12:59) Или что ...   Aug 4 2017, 08:29
||- - jcxz   Цитата(AVI-crak @ Aug 4 2017, 11:29)...   Aug 4 2017, 10:43
||- - Forger   Цитата(jcxz @ Aug 4 2017, 13:43) Может бы...   Aug 4 2017, 11:04
||- - jcxz   Цитата(Forger @ Aug 4 2017, 14:04) Встрое...   Aug 4 2017, 12:19
||- - AVI-crak   Цитата(Forger @ Aug 4 2017, 17:04) зы Рад...   Aug 4 2017, 12:38
||- - Forger   Цитата(AVI-crak @ Aug 4 2017, 15:38)...   Aug 4 2017, 13:12
|- - LightElf   QUOTE (jcxz @ Aug 4 2017, 09:59) Очевидно...   Aug 5 2017, 13:26
|- - Forger   Цитата(LightElf @ Aug 5 2017, 16:26) Дабы...   Aug 5 2017, 16:10
|- - LightElf   QUOTE (Forger @ Aug 5 2017, 19:10) Встрое...   Aug 8 2017, 17:04
|- - Forger   Цитата(LightElf @ Aug 8 2017, 20:04) Знае...   Aug 8 2017, 17:48
|- - LightElf   QUOTE (Forger @ Aug 8 2017, 20:48) Не виж...   Aug 15 2017, 14:53
|- - Forger   Цитата(LightElf)А что, возможен вариант И/И? В фан...   Aug 16 2017, 06:50
|- - LightElf   QUOTE (Forger @ Aug 16 2017, 09:50) Если ...   Aug 22 2017, 17:54
|- - Forger   Цитата(LightElf @ Aug 22 2017, 20:54) И г...   Aug 22 2017, 18:22
|- - LightElf   QUOTE (Forger @ Aug 22 2017, 21:22) Мля, ...   Aug 24 2017, 09:20
|- - Forger   Цитата(LightElf @ Aug 24 2017, 12:20) что...   Aug 24 2017, 10:54
|- - LightElf   QUOTE (Forger @ Aug 24 2017, 13:54) Камен...   Aug 30 2017, 08:38
|- - Forger   Цитата(LightElf @ Aug 30 2017, 11:38) Вы ...   Aug 30 2017, 09:07
|- - LightElf   QUOTE (Forger @ Aug 30 2017, 12:07) Поско...   Aug 30 2017, 15:50
|- - Forger   Цитата(LightElf @ Aug 30 2017, 18:50) И в...   Aug 30 2017, 16:17
- - LightElf   QUOTE (AVI-crak @ Aug 3 2017, 19:16)...   Aug 4 2017, 10:23
- - Forger   Цитата(LightElf @ Aug 4 2017, 13:23) В да...   Aug 4 2017, 10:33
- - LightElf   QUOTE (Forger @ Aug 4 2017, 13:33) Это ещ...   Aug 5 2017, 10:06
- - Forger   Цитата(LightElf @ Aug 5 2017, 13:06) Горо...   Aug 5 2017, 10:29
- - jcxz   Цитата(LightElf @ Aug 5 2017, 13:06) Горо...   Aug 5 2017, 10:37
- - Forger   Цитата(jcxz @ Aug 5 2017, 13:37) Вот имен...   Aug 5 2017, 10:49
- - jcxz   Цитата(Forger @ Aug 5 2017, 13:49) Т.е. я...   Aug 5 2017, 11:03
- - Forger   Цитата(jcxz @ Aug 5 2017, 14:03) Ядро/так...   Aug 5 2017, 12:10


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

 


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


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