-
- вообще-то по нулевому смещению у STM32 лежит не переход на "обработчик Reset", и даже не его адрес, а начальное значение указателя стека. Адрес "обработчика сброса" лежит по смещению 4. А вообще пользуйтесь штатной возможностью сброса, встроенной koyodza(536 знак., 27.08.2012 19:40)
- Не очень понятно, а зачем такое замысловатое присваивание SCB->AIRCR ? Он вроде как, сам насильно устанавливается в исходное положение по сбросу ? Юрий_СВ(178 знак., 27.08.2012 22:34)
- не знаю, не разбирался. Наверняка зачем-то нужно. Это кусок core_cm3.h - koyodza(27.08.2012 22:37)
- "|(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)" - они, видимо, по "инерции" вписали (как для обычного бита). Остальное - понятно зачем. - Юрий_СВ(27.08.2012 22:57)
- Перестраховались похоже: можно было бы и так записать Apтём(43 знак., 27.08.2012 23:33)
- Как это? Без ключа? - Юра(27.08.2012 23:37, )
- В доке написано, что Vectorkey Reads as 0x05FA, но может опечатка - Apтём(104 знак., 27.08.2012 23:46)
- Reads as 0xFA05, On writes, write 0x5FA to VECTKEY, otherwise the write is ignored. - rezident(28.08.2012 00:00, ссылка)
- Да я и сам в отладчике вижу Apтём(24 знак., 28.08.2012 00:13)
- Reads as 0xFA05, On writes, write 0x5FA to VECTKEY, otherwise the write is ignored. - rezident(28.08.2012 00:00, ссылка)
- В доке написано, что Vectorkey Reads as 0x05FA, но может опечатка - Apтём(104 знак., 27.08.2012 23:46)
- Как это? Без ключа? - Юра(27.08.2012 23:37, )
- Это наверно чтобы если прерывание возникнет до достижения барьера - чтобы приоритет оставался тем же. - Юра(27.08.2012 23:16, )
- Перестраховались похоже: можно было бы и так записать Apтём(43 знак., 27.08.2012 23:33)
- "|(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)" - они, видимо, по "инерции" вписали (как для обычного бита). Остальное - понятно зачем. - Юрий_СВ(27.08.2012 22:57)
- не знаю, не разбирался. Наверняка зачем-то нужно. Это кусок core_cm3.h - koyodza(27.08.2012 22:37)
- Ну понятно, мы же на 0x4 прыгаем :) Jmp 0 это просто бренд. Мне не очень понятно как сбросить приоритеты прерываний, если Jmp 0 будет где-то глубоко в обработчиках. - Юра(27.08.2012 19:43, )
- Вручную вообще смысла нет ресет делать. Могу ошибиться, т.к. читал что делает при ресете давно, но Cortex при реальном ресете делает очень много. Dir(418 знак., 27.08.2012 20:00)
- не надо ничего сбрасывать, никаких приоритетов. Если Вам нужен сброс, то делайте его не переходом, а через NVIC, всё что надо само будет сброшено - koyodza(27.08.2012 19:48)
- мы на 0х4 не прыгаем. Мы по адресу 0х???????4 должны взять 32-битное значение, которое является адресом того места, куда надо прыгнуть. Это принципиально разные действия - koyodza(27.08.2012 19:44)
- Не очень понятно, а зачем такое замысловатое присваивание SCB->AIRCR ? Он вроде как, сам насильно устанавливается в исходное положение по сбросу ? Юрий_СВ(178 знак., 27.08.2012 22:34)
- koyodza уже намекал ниже, что не анализируются выводы бутлоадера без реального ресета. Потому отладка из ОЗУ и запуск бутлоадера сразу же недоступны. PS. Да и вообще мутно все это. Это совсем не ресет... - Dir(27.08.2012 19:35 - 19:39)
- вообще-то по нулевому смещению у STM32 лежит не переход на "обработчик Reset", и даже не его адрес, а начальное значение указателя стека. Адрес "обработчика сброса" лежит по смещению 4. А вообще пользуйтесь штатной возможностью сброса, встроенной koyodza(536 знак., 27.08.2012 19:40)