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

 
 
> Передача управления на Cortex-M4F
AlexeyT
сообщение May 30 2017, 22:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 5-06-07
Пользователь №: 28 207



Уважаемые коллеги, помогите разобраться:
Есть процессор на базе Cortex-M4, с FPU. У него есть встроенный загрузчик, но нет ПЗУ - только ОЗУ.
Есть подключенные к нему внешняя флэш-память и программатор JTAG.
Есть тестовая прошивка - настройка тактовой частоты, СОМ-порта и пока всё, дальше бесконечный цикл while(1) {}. Раньше было больше, но при уменьшении до нынешнего варианта косяк не исчез. Принципиальный момент - NVIC в тестовой прошивке не настраивается, обработчики исключений не переопределены.

Последовательность работы:
При подаче питания процессор начинает исполнять код заводского загрузчика, анализирует линии задания режима загрузки и переходит в режим исполнения программы из внешней флэш-памяти. Она успешно исполняется, используя прерывания - одно от периферийного блока СнК (контроллер МКИО) и одно внешнее. После чего в какой-то момент надо передать управление другой программе. Имитирую передачу управления. Для этого я выполняю останов (команда "h") процессора через J-Link Commander. А вот дальше есть два варианта развития событий:
1) не_выполняя_сброса, заливаю в ОЗУ инструкций образ тестовой прошивки, пишу во VTOR новый адрес таблицы, указываю новую вершину стека (первое слово прошивки), пишу в PC адрес вектора сброса (второе слово прошивки) и запускаю (команда "g"). После чего снова останавливаю ядро и вижу, что упал в исключение NMI.
2) выполняю сброс (команда "R"), и выполняю те же действия, что и ранее, над той же тестовой прошивкой. После чего останавливаю ядро и вижу, что что ядро спокойно остановлено (NoException).

В чем может быть принципиальное отличие этих режимов?
Какие регистры SCB нужно сбросить в начале п.1, чтобы состояние стало близким к идеальному, т.е. после Reset?
Чем сброс через JTAG отличается от сброса через NVIC_SystemReset() с точки зрения системных процедур, выполняемых перед main?
Go to the top of the page
 
+Quote Post



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

 


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


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