Easyelectronics.ru

Электроника для всех
Текущее время: 05 июн 2020, 15:31

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 105 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 15:38 
Заглядывает иногда

Зарегистрирован: 22 апр 2012, 23:14
Сообщения: 53
Koder писал(а):
Гляну.
На будущее. Осторожнее с проектами которые выкладываете (если для вас они важны). Лучше фрагменты кода.))))

А где же файлы проекта *.с ?

Перезалила архив в предыдущем сообщении. Этот файл загружаемой рпограммки просто на прерывания от юсарта, ничего суперсекретного там нет)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 16:03 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
!? Ничего подозрительного,..А проверяли, работает?

Советую еще из личного опыта NVIC_Configuration(); размещать в самом конце инициализации и помещать вектора прерываний, описание разрешений именно в этой функции т.е не выносить из нее ничего.

Типа
int main (void)
{
Init_CLK();
Init_GPIO();
Init_USART2();
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
USART_ITConfig(USART2,USART_IT_TC,ENABLE);
tmp=0;
USART_SendData(USART2,msg[tmp++]);

NVIC_Configuration(); //Здесь все содержится


while (1)
{
if (buffer)
{
USART2->DR=buffer;
buffer=0;
}
}

}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 16:10 
Заглядывает иногда

Зарегистрирован: 22 апр 2012, 23:14
Сообщения: 53
Koder писал(а):
!? Ничего подозрительного,..А проверяли, работает?

Сам проект, если его залить на плату с настройками памяти (с адреса 0х08000000) работает. Если настроить в проекте адрес 0х08019000, то проект не отлаживается, и вылетает на 0 адрес и там стоит на месте. Если заливать программу то нужно настраивать на адрес 0х08019000. Простые проекты без прерываний тиа подрыгать ножкой заливаются через бутлоадер но отладить через программатор также не получается. Может я чего-то не доделала, недоглядела.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 16:16 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Вы скомпилировали проект под этот адрес? 0х08019000 ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 16:24 
Заглядывает иногда

Зарегистрирован: 22 апр 2012, 23:14
Сообщения: 53
Koder писал(а):
Вы скомпилировали проект под этот адрес? 0х08019000 ?

Да


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 16:32 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Это проблема в адресации, по крайней мере очень похожа.
Проверьте детально этот участок.
На какой физический адрес у вас отправляется прога - проверьте!

void JumpToApplication (uint32_t ApplicationAddress)
{
typedef void (*pFunction)(void);
pFunction Jump_To_Application;
uint32_t JumpAddress;


//__disable_interrupt(); // Запрещаем прерывания
NVIC_SetVectorTable(NVIC_VectTab_FLASH, USER_PROG_OFFSET);
if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000) //Проверяем, есть ли что-нибудь по адресу (там должно лежать значение SP для приложения, его кладет линкер)
{
JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4); //Адрес перехода из вектора Reset
Jump_To_Application = (pFunction) JumpAddress; //Указатель на функцию перехода
__set_MSP(*(__IO uint32_t*) ApplicationAddress); //Устанавливаем SP приложения
Jump_To_Application(); //Запускаем приложение
}
}

Зачем это?
NVIC_SetVectorTable(NVIC_VectTab_FLASH, USER_PROG_OFFSET); ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 16:38 
Заглядывает иногда

Зарегистрирован: 22 апр 2012, 23:14
Сообщения: 53
Так все решено. На самом деле в программу, которая загружается, нужно добавить

Код:
__set_PRIMASK(1);//отключить все прерывания
/* Set the Vector Table base location at 0x08010000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x19000);    //перенести таблицу векторов прерываний по адресу 0х08019000
/*Тут функции настройки NVICа*/
__set_PRIMASK(0);//включить все прерывания


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 16:46 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Ну да так же и было у вас.
Что, заработало?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 16:54 
Заглядывает иногда

Зарегистрирован: 22 апр 2012, 23:14
Сообщения: 53
Koder писал(а):
Ну да так же и было у вас.
Что, заработало?

не знаю какие были глюки, но теперь два проекта проверила и все работает. Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 04 май 2012, 17:06 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Ясно. Попробуйте все же разобраться в чем было дело ибо наткнетесь опять не зная на что.
Это важно. Успехов!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 18 июл 2012, 15:19 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Решил выложить инфу о том, как работает встроенный загрузчик в STM 32. Эта задача стояла у меня в рабочем порядке)
Написал сам все с нуля, имея перед глазами лишь английские инструкции.)))
Подробное описание протокола. Обучающие материалы.

Для тех, кто интересуется принципом работы будет в самый раз.
Это сэкономит время, поскольку из инструкций все надо по нитке вытягивать.

Прошу отнестись к этому материалу критично. Указать на недочеты.
Ссылка
http://filestore.com.ua/?d=BC84822C9


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 25 июл 2012, 16:24 
Старожил

Зарегистрирован: 23 окт 2010, 22:18
Сообщения: 279
Откуда: г. Пермь
Koder писал(а):
Указать на недочеты.
Ссылка
http://filestore.com.ua/?d=BC84822C9


Parse error: syntax error, unexpected '=' in /var/www/filestore/download.php on line 782


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 26 июл 2012, 00:39 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Ultrin писал(а):
Koder писал(а):
Указать на недочеты.
Ссылка
http://filestore.com.ua/?d=BC84822C9


Parse error: syntax error, unexpected '=' in /var/www/filestore/download.php on line 782


Гаплык..
Новая ссылка http: http://www.ex.ua/view_storage/275699526704


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 09 дек 2012, 22:26 
Заглядывает иногда

Зарегистрирован: 20 июн 2012, 12:56
Сообщения: 61
Koder, можно обновить ссылку или закинуть на форум


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 10 дек 2012, 12:25 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Raash писал(а):
Koder, можно обновить ссылку или закинуть на форум

Ок определяю место скачивания:
http://www.ex.ua
введите ключ для скачивания 966231579011


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 14 ноя 2013, 01:07 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Привет всем!
Сейчас стала задача вернуться по адресу с основной программы на прогу загрузчика, чтобы осуществить смену прошивки основной программы.
При переходе с загрузчика на основную программу все ОК, а когда наоборот, то НЕ РАБОТАЕТ!
При этом я запретил всю использованную периферию в основной программе, запретил прерывания, но ничего не выходит.
После осуществлении прыжка не работает ни загрузчик ни основная программа.
КОГДА ЭТО ПРОИСХОДИТ? Когда запускаю этот механизм с отладчика Keil то проблем нет - переход осуществляется. А когда отладка не запущена, то НЕ РАБОТАЕТ!
ВОПРОС! В чем причина, почему отладчик разрешает осуществить такую операцию перехода? Кто сталкивался?

Код перехода прост и я его приводил выше по указателя на функцию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 14 ноя 2013, 01:20 
Старожил

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
Koder писал(а):
Сейчас стала задача вернуться по адресу с основной программы на прогу загрузчика, чтобы осуществить смену прошивки основной программы.
При переходе с загрузчика на основную программу все ОК, а когда наоборот, то НЕ РАБОТАЕТ!
Таблицу векторов при этом перключили?
И на какой адрес прыгаете - на (новый) вектор Reset? Если нет, то надо ещё и об указателе стека позаботиться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 14 ноя 2013, 08:29 
Только пришел

Зарегистрирован: 14 ноя 2013, 08:25
Сообщения: 8
здравствуйте коллеги
мне поставили срочную задачку сделать удалённое обновление программы в девайсах
соединение GSM модем CSD 9600
программа не очень большая, идея состоит в следующем, хранить во флеше старую прошивку а новую писать в другую область, после проверки целостности залитой прошивки переключать ссылку на новую прошивку
насколько это реализуемо?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 14 ноя 2013, 11:27 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
smv_70 писал(а):
программа не очень большая, идея состоит в следующем, хранить во флеше старую прошивку а новую писать в другую область, после проверки целостности залитой прошивки переключать ссылку на новую прошивку
насколько это реализуемо?

ВОт вот у вас похожая на мою задача)

AlexPM писал(а):
Koder писал(а):
Сейчас стала задача вернуться по адресу с основной программы на прогу загрузчика, чтобы осуществить смену прошивки основной программы.
При переходе с загрузчика на основную программу все ОК, а когда наоборот, то НЕ РАБОТАЕТ!
Таблицу векторов при этом перключили?
И на какой адрес прыгаете - на (новый) вектор Reset? Если нет, то надо ещё и об указателе стека позаботиться.


Объясню. Смотрите загрузчик сидит по адресу 0х0800 0000, а основная программа 0х0801 0000. Необходимо после перехода на основную программу по комманде вернуться БЕЗ ПРОВЕДЕНИЯ СБРОСА снова на загрузчик.
Выходит, что нужно опять на новый вектор reset прыгать.но оно так и реализовано сейчас.Вот на счет указателя стека не могли бы подробнее?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 07 апр 2014, 19:41 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 18 сен 2012, 22:48
Сообщения: 48
Откуда: Мюнхен
Уважаемый Koder, а не могли бы вы выложить вашу версию загрузчика ещё раз ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 18 апр 2014, 13:38 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
comparator писал(а):
Уважаемый Koder, а не могли бы вы выложить вашу версию загрузчика ещё раз ?

Сам загрузчик я не выкладывал. Я думаю особо смысла нет, так как он обычно пишется под конкретную задачу и для приведения его в общеприменимый вид - придется особенно потрудиться. Я выкладывал только теорию встроенного загрузчика stm32f10x, изложенную мной доступным языком.
Если вопросы, то могу выложить по фрагментам кода загрузчика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 21 апр 2014, 03:46 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 2008
Запретите прерывания, загрузите указатель стека из 8000004 и сделайте переход на адрес из 8000000.
SystemInit пропишет нужный адрес для таблицы векторов (стандартный если) или ручками сами.
Вот и все дела

В любом примере по bootload это есть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 12 авг 2014, 03:04 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 13 фев 2012, 13:31
Сообщения: 64
Откуда: Снегири, МО, РФ
Koder писал(а):
comparator писал(а):
Уважаемый Koder, а не могли бы вы выложить вашу версию загрузчика ещё раз ?

Сам загрузчик я не выкладывал. Я думаю особо смысла нет, так как он обычно пишется под конкретную задачу и для приведения его в общеприменимый вид - придется особенно потрудиться. Я выкладывал только теорию встроенного загрузчика stm32f10x, изложенную мной доступным языком.
Если вопросы, то могу выложить по фрагментам кода загрузчика.


Может статью сделаете по теории?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 12 авг 2014, 09:32 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4638
Откуда: КЧР, поселок Нижний Архыз
Народ, а реализацию простейшей операционки, а именно — подгрузка пользовательского кода в реальном времени, запись его во флэш и исполнение — никто не пробовал делать?
А то интересно было бы реализовать эдакий механизм плагинов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 bootloader Flash
СообщениеДобавлено: 12 авг 2014, 12:03 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2012, 00:31
Сообщения: 1797
Откуда: Новокузнецк
Eddy_Em писал(а):
Народ, а реализацию простейшей операционки, а именно — подгрузка пользовательского кода в реальном времени, запись его во флэш и исполнение — никто не пробовал делать?
А то интересно было бы реализовать эдакий механизм плагинов.

да тут все разговоры ходят и ходят. Но презентаций сделанного пока нет.
viewtopic.php?f=35&t=19502
viewtopic.php?f=47&t=19011

_________________
elisey.su


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 105 ]  На страницу Пред.  1, 2, 3, 4, 5  След.


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


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

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


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

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

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