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

 
 
> Проблема с самозагрузчиком во freeRTOS
inventor
сообщение Oct 20 2017, 09:02
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



для своей проги сделал самозагрузчик
который пишет образ с SD карты на flash с адреса 0x08008000
загрузчик проверил - работает,
образ пишет
проблема начинаетсяесли в качестве образа
программа написанная для RTOS
после инициализации оборудования
вылетает в HardFault
я прошел отладчиком и посмотрел
что выпадает в том месте, когда я внутри программы работаю с
внутренней flash (использую ее в режиме псевдо-EEPROM)
делаю в IAR
сморю Call Stack и вижу, что эксепшен
вызвала функция PendSV_Handler
мне не совсем понятно каким образом она вызывается
я закоментировал то, где запускаются задачи
и в самой первой функции hw_init_all()
поставил бесконечный цикл моргания лампочкой
но все равно происходит ексепшен
даже если я в asm файле закоментировал вызов
переключения контекстов
она все равно сидит на B PendSV_Handler
в файле startup_stm32f4xx.s
вообще как то можно замаскировать это прерывание
пока идет работа с flash ?
и еще непонятно:
если запускаю первый раз "из среды"
то она не входит в точку останова PendSV
а после ресета входит.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kabdim
сообщение Oct 21 2017, 15:06
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



У меня ремап векторов делает бутлоадер. Это его функциональная обязанность подготовить всё необходимое перед запуском прошивки.
Go to the top of the page
 
+Quote Post
inventor
сообщение Oct 21 2017, 18:42
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(Kabdim @ Oct 21 2017, 18:06) *
У меня ремап векторов делает бутлоадер. Это его функциональная обязанность подготовить всё необходимое перед запуском прошивки.


в смысле в программе загрузчика вы перемещаете вектора?
мне кажется это сама программа должна делать,
чтобы она оставвалась независимой от него
а так получается, что у вас программа состоит из 2-х зависимых частей
Go to the top of the page
 
+Quote Post



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

 


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


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