|
stm32 NVIC: сброс маскировки прерываний внутри обработчика |
|
|
|
 |
Ответов
|
Jul 14 2017, 15:37
|
Administrator
  
Группа: Свой
Сообщений: 400
Регистрация: 10-05-04
Пользователь №: 1

|
Цитата(AVI-crak @ Jul 14 2017, 02:05)  Править уровни прерываний и их очереди в теле пользовательских прерываний - это есть громадный костыль, означающий что программист накосячил в нескольких местах и не смог исправить. Никто уровни и очереди не правит. Еще раз - задача выполнить reset, но не всего и сразу, а выборочный. Включая сброс NVIC. Чтобы часть периферии и данных в RAM остались нетронутыми. Цитата Чтобы не ресетить девайс - нужно изначально закладывать архитектуру здоровой OS Вы эту ОС будете переустанавливать/обновлять без ресета? Действия при аварии электропитания тоже предполагаются без ресета?
|
|
|
|
|
Jul 24 2017, 09:50
|
Частый гость
 
Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205

|
QUOTE (jeka @ Jul 14 2017, 18:37)  Чтобы часть периферии и данных в RAM остались нетронутыми. Дык не трогайте данные в RAM - они и останутся нетронутыми. Ресет содержимое SRAM не затрагивает. Для пущей безопасности нужный кусок SRAM защитите CRC или еще каким образом.
|
|
|
|
|
Jul 25 2017, 12:30
|

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

|
Цитата(jcxz @ Jul 25 2017, 15:02)  Да ладно?!! Они умудрились написать код чисто на регистрах и без использования стека??? Прямо чудеса чудесатые какие-то рассказываете.....  Вы ничего не путаете?  В STM32 есть два спец пина BOOT0 и BOOT1, оменно они определяют кто будет запускаться при старте проца: user-код (User Flash memory), boot-загручик (System memory), ОЗУ или еще что-то (например, в "толстых" камнях). Опрос этих пинов производится ядром (или узлом, который отвечает за выбор области загрузки) в течение нескольких тактов после сброса. Но даже в случае безусловного использования бут-загручика можно выяснить области ОЗУ, которые он использует. А используют они совсем небольшую часть ОЗУ. Это не секретная информация  Все есть в соотв. мануалах )) Еще раз: BOOT-загрузчик в STM32 НЕ стартует безусловно. Более того, в тотально залоченном состоянии бут вообще невозможно запустить (разве что прочитать его версию): When readout protection Level2 is activated, STM32 does not boot on system memory in any case and Bootloader can't be executed (unless jumping to it from Flash user code, all commands are not accessible except Get, GetID, and GetVersion).Может, вы путаете STM32 с другими камнями (которые без своей FLASH), где BOOT стартует ВСЕГДА после сброса?
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Jul 25 2017, 13:15
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Forger @ Jul 25 2017, 15:30)  Вы ничего не путаете?  В AN2606 в Table 66. STM32F42xxx/43xxx configuration in system memory boot mode указано, что 8 Kbyte starting from address 0x20000000 are used by the bootloader firmware. И эта область указана как Common to all bootloaders. Также видно, что указатель стека из вектора сброса из таблицы векторов прерываний в ROM по адресу 0x1FFF0000 (из STM32F429 который у меня сейчас на столе) указывает на адрес 0x20002318 опять-же - внутри этих 8КБ. Вот именно этот код, который считывает BOOT-пины и определяет куда передать управление (и возможно что-то ещё делает), видимо и находится по адресу, на который указывает вектор сброса из 0x1FFF0000. PS: Не посчитал однако... 0x20002318 - это ведь уже за пределами 8КБ. Странно....  Опять-же - в AN2606 говорится про Bootloader V7.x. А какая у моего версия - не знаю.
|
|
|
|
|
Jul 25 2017, 13:20
|

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

|
Цитата(jcxz @ Jul 25 2017, 16:15)  В AN2606 в Table 66. STM32F42xxx/43xxx configuration in system memory boot mode указано, что 8 Kbyte starting from address 0x20000000 are used by the bootloader firmware. И эта область указана как Common to all bootloaders. Также видно, что указатель стека из вектора сброса из таблицы векторов прерываний в ROM по адресу 0x1FFF0000 (из STM32F429 который у меня сейчас на столе) указывает на адрес 0x20002318 опять-же - внутри этих 8КБ. Дык, я с этим и не спорю, в прошлом посте я дал ссылку на большой документ, где это написано. Вот только это имеет отношение только для случая, если boot загручик был запущен. Цитата Вот именно этот код, который считывает BOOT-пины и определяет куда передать управление (и возможно что-то ещё делает), видимо и находится по адресу, на который указывает вектор сброса из 0x1FFF0000. Вы не понимате ))) Нету никакого кода, который якобы считывает эти два пина. Это все сделано аппаратно. И происходит это в первые 4 такта проца после сброса. Это указано в мануале на каждый проц: The boot mode configuration is latched on the 4th rising edge of SYSCLK after a reset. It is up to the user to set boot mode configuration related to the required boot mode.Даже если бы эти пины опрашивались в неком коде, то даже гипотетически невозможно создать такой код, который бы за 4 такта умудрился проинитить хотя бы стек, настроить пару пинов и прочитать их содержимое  Кстати, вот это только что выяснил: The boot mode configuration is also re-sampled when exiting from Standby mode, на будущее надо учесть!
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
Сообщений в этой теме
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 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 Forger Цитата(jeka @ Jul 14 2017, 18:37) Включая... Jul 14 2017, 16:15  Forger Цитата(LightElf @ Jul 24 2017, 12:50) Дык... Jul 24 2017, 10:10        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
|
|
|