Easyelectronics.ru

Электроника для всех
Текущее время: 24 апр 2018, 15:55

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Подскажите по bootloaderу, STM32F405 Keil 4
СообщениеДобавлено: 11 янв 2018, 14:13 
Старожил

Зарегистрирован: 05 апр 2012, 16:47
Сообщения: 387
Откуда: Киев
Добрый день.

Подскажите тугому по бутлоадеру, а то не совсем догоняю с векторами.

Есть бутлоадер (0х08000000), который прошивает по уарту бинарник основной программы начиная с 0x08010000.
После прошивки переход
Код:
   __set_PRIMASK(1);
    NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x08010000);
   __set_PRIMASK(0);
   jumpToApplication( 0x08010000);


В кейле основной программы IROM настроен соответственно на 08010000.
Программа не работает, т.к. видно что таблица векторов не соответствует действительности.
Менял даже #define VECT_TAB_OFFSET на 0x010000, короче, уже перепробовал что позволяли мои мозги.

И что характерное, hex, который создает кейл основной программы отличается этой таблицей от просмотра в дебаге.
В дебаге в memory по этому адресу совсем не то, что в хексе. Если сохранить эту memory в файл и им прошиться через бут, то всё работает как и должно.
Знаю, что где-то что упустил, не могу догнать что.

Посоветуйте что нибудь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите по bootloaderу, STM32F405 Keil 4
СообщениеДобавлено: 11 янв 2018, 20:03 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 336
Откуда: Санкт-Петербург
может так надо jumpToApplication( 0x08010000+4);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите по bootloaderу, STM32F405 Keil 4
СообщениеДобавлено: 11 янв 2018, 23:53 
Старожил

Зарегистрирован: 05 апр 2012, 16:47
Сообщения: 387
Откуда: Киев
Именно так и написано. Просто крапаль недогоняю, как можно в процессе программы бута зашить в область флеша. Это же флешь, которая стирается постранично по хер знает сколько килобайт и имеет ресурс в 10к перезаписей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите по bootloaderу, STM32F405 Keil 4
СообщениеДобавлено: 12 янв 2018, 00:55 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 336
Откуда: Санкт-Петербург
бутлоодер думаю не рассчитывает на то, что пользователь будет каждый день по многу раз перезаписывать память.
стирается по страницам , поскольку кб описано в документах.

а вообще не понял вопроса.
запускается программа с нулевого адреса, проверяет необходимость перезаписи. если нужно, то записывает в свободное место прошивку и перепрыгивает на нее. если необходимости нет, то просто перепрыгивает на нее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите по bootloaderу, STM32F405 Keil 4
СообщениеДобавлено: 12 янв 2018, 01:09 
Старожил

Зарегистрирован: 05 апр 2012, 16:47
Сообщения: 387
Откуда: Киев
Это в авр так, так как бутлоадер и вектора прерываний физически на одном и том-же месте. В стм вы можете хоть десять разных программ написать и с помощью бутлоадера стартовать любую из них, и таблица векторов тоже переносимая. Только я до конца не понял процедуру. Точнее вроде понял, вот только мне надо получить бинарник основной прошивки именно с учетом этих векторов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите по bootloaderу, STM32F405 Keil 4
СообщениеДобавлено: 12 янв 2018, 02:32 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1279
Можно поступить проще - посмотреть любой из 100500 готовых бутлодеров.
Как грязи их на github'e.
Их уйма там.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите по bootloaderу, STM32F405 Keil 4
СообщениеДобавлено: 12 янв 2018, 10:52 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 336
Откуда: Санкт-Петербург
да и тут , на форуме каждый месяц темы про бутлоодер появляются, с кодами и разными вариантами исполнения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите по bootloaderу, STM32F405 Keil 4
СообщениеДобавлено: 12 янв 2018, 12:56 
Старожил

Зарегистрирован: 05 апр 2012, 16:47
Сообщения: 387
Откуда: Киев
Да перелопатил всё что можно, всё сделал "как книжка пишет". Фигня в том, что оно то всё работает если прошить через jlink, а вот отдельно hex файл уже нет тот, не работает. Возможно в самом кейле где-то надо что-то настроить, нигде упоминаний нет.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: kos, Редиска, Sergey_spb


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB