Easyelectronics.ru

Электроника для всех
Текущее время: 21 июл 2018, 04:52

Часовой пояс: 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
Сообщения: 389
Откуда: Киев
Добрый день.

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

Есть бутлоадер (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
Сообщения: 373
Откуда: Санкт-Петербург
может так надо jumpToApplication( 0x08010000+4);


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

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


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

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

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


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

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


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

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


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

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


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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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