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

 
 
> STM32F051 - запуск приложения из заводского загрузчика, Команда Go запускает, но приложение работает криво
scifi
сообщение Jan 27 2016, 14:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



В системе есть ведущий МК и ведомые (STM32F051). У ведомых на BOOT0 подан уровень "1", так что при старте в них запускается заводской загрузчик. Ведущий проверяет наличие правильной версии прошивки и при необходимости перепрошивает их. Потом выдаёт команду "Go" для запуска прошивки. Прошивка отлажена в обычном режиме (BOOT0 = "0").
Проблема в том, что при запуске командой "Go" прошивка не работает. Она спотыкается, когда разрешаю хотя бы одно прерывание. Я бы посмотрел внутрисхемным отладчиком, но заводской загрузчик отрубает SWD (для включения USART2, видите ли). Я запускал заводской загрузчик под отладчиком, нашёл, где он блокирует SWD, отменил блокировку, но после команды "Go" что-то там расклеивается и отладчик показывает полный бред.
Что интересно, STM пишут, что команда "Go" возвращает настройки всей периферии в исходное состояние (как после сброса). Но, очевидно, что-то в МК всё-таки меняется и мешает работе прошивки.
Пока не могу угадать, где это вредное изменение и как его исправить. Имею возможность выводить на UART информацию (регистры, память), но пока нет идей, куда смотреть.

Update:
Ну вот, нужно было написать вопрос, чтобы понять, какой ответ. Видимо, дело в таблице векторов прерываний. Должно быть, там висит таблица загрузчика. Надо исправлять SYSCFG_CFGR1, поле MEM_MODE. Пойду проверять.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 12:30
Рейтинг@Mail.ru


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