|
stm32 NVIC: сброс маскировки прерываний внутри обработчика |
|
|
|
 |
Ответов
|
Jul 12 2017, 17:29
|

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

|
Цитата(jeka @ Jul 12 2017, 19:58)  Назрела необходимость (уже давно), разрешить прерывания более низкого приоритета в обработчике высокого приоритета. Это противоречит самому принципу приоритетов прерываний. Странная необходимость ... Цитата Способ в лоб - подкорректировав стек и сделать фиктивный возврат из прерывания. С помощью MRS/MSR как я понял этого не сделать - в документации написано что запись в IPSR игнорируется. В режиме handler (обработка прерываний) автоматом включается привилегированный режим, т.е. при остром желании можно влезть в любой стек и нагадить там как положено )) Обычно это используют лишь в портах RTOS. Цитата Есть ли какое-то более человеческое решение чем через формирование стека возврата и возврат из прерывания? Можно форсить более высокоприоритетное прерывание прямо из текущего обработчика. В зависимости от его приоритета оно будет вызвано сразу или лишь после выхода из текущего обработчика. Для этой цели хорошо подойдет NMI, у него самый высокий приоритет (после Reset). Можно даже извратиться - вызывать hardfault, например, обращаясь к несуществующей памяти Цитата Собственно, зачем это нужно - в случае аварии вызывается определенный irq. А в чем проблема вызывать некую функцию? К чему городить огород с отдельным прерыванием? Цитата Например, в bootolader для перепрошивки. А вот эта задача реализуется уже несколько иначе. Тут неоднократно поднималась эта тема. Пройдитесь поиском )) зы. Подобную задачу я реализую просто: вызываю в случае аварии System Reset (нужно смотреть на его реализацию в каждом семействе МК). Однако, не во всех задачах полный сброс допустим. Аппаратно само устройство делаю так, что в сброшенном состоянии все силовые цепи отключаются, автоматом снимаются все сигналы готовности (если используются внешние силовые модули). Это реализована подтяжками соотв. портов МК внешними резисторами. Остальные обработчики типа HardFault у меня тоже в итоге вызывают System Reset (после анализа и фиксации в журнале событий причины сбоя). Т.е. любое зависание, срабатывание вотчдога и т. д. всегда сбрасывают проц, что автоматом вырубает все силовые цепи. Это удобно при отладке и прошивке - пока шьется проц, вырубается всякая опасная "сила", скажем силовые ключи привода мощного мотора, гасится мощной источник для "силы". В таком решении гарантировано, что ничего никуда не поедет и не сожжет никакие "пробки" )))
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
Сообщений в этой теме
jeka stm32 NVIC: сброс маскировки прерываний внутри обработчика Jul 12 2017, 16:58 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 jeka п.с. irq вызывается, поскольку авария может прилет... Jul 12 2017, 18:06 Forger Цитата(jeka @ Jul 12 2017, 21:06) п.с. ir... Jul 12 2017, 18:14  jeka Цитата(Forger @ Jul 12 2017, 21:14) Так в... Jul 12 2017, 18:25   Forger Цитата(jeka @ Jul 12 2017, 21:25) Ей нужн... Jul 12 2017, 18:32    jeka Цитата(Forger @ Jul 12 2017, 21:32) Я сов... Jul 12 2017, 18:45     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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|