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

 
 
> Самозагрузчик
inventor
сообщение Apr 7 2016, 06:34
Сообщение #1


Знающий
****

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



Подскажите как правильно сделать вот что:

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

предположим - нужно поменять прошивку прибора,
саму прошивку - бинарник заливаю в корень SD карты.
при включении питания маленькая программа, loader смотрит:
есть ли файл с определенным именем на SD и если есть, то
записывает его в определенный раздел внутренней flash памяти
далее после того как успешно записал бинарник на flash,
стирает его на SD карте. - передает ему управление.
если файла bin нет - то loader просто передает управление программе.

саму программу Loader я хочу разместить
по адресу Flash 0x08000000
а рабочая прошивка, предположим, будет работать с адреса 0x08001000
после того, как бинарник записан по адресу 0x08001000
как мне LOADER - ом передать ему управление?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KnightIgor
сообщение Apr 7 2016, 13:54
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(inventor @ Apr 7 2016, 07:34) *
имеется какой то прибор с SD картой на проце STM32
я хочу сделать для пользователя возможность самому менять прошивку.

У меня есть такой загрузчик. Ему требуется примерно 12K флэша. Я зарезервировал 16К, то есть, приложение компилируется так, чтобы начинаться с 16К.
Файловая система на FatFS, с которой выброшено все, кроме чтения (файл прошивки я не удаляю). Есть варианты для SPI и SDIO доступа к карте.
Если при старте карта и файл с определенным именем на ней обнаружены, загрузчик считывает версию образа и сравнивает с текущей версией прошивки. Прошивка для этого содержит соответствующие поля, которые как данные расположены непосредственно за таблицей векторов. Загрузчик, конечно, знает, что и как искать. Если на карте новая версия, производится запись образа во флэш и его запуск. Во всех остальных случаях загрузчик запускает имеющуюся прошивку сразу.
Go to the top of the page
 
+Quote Post
x893
сообщение Apr 7 2016, 20:01
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Цитата(KnightIgor @ Apr 7 2016, 16:54) *
У меня есть такой загрузчик. Ему требуется примерно 12K флэша. Я зарезервировал 16К, то есть, приложение компилируется так, чтобы начинаться с 16К.
Файловая система на FatFS, с которой выброшено все, кроме чтения (файл прошивки я не удаляю). Есть варианты для SPI и SDIO доступа к карте.
Если при старте карта и файл с определенным именем на ней обнаружены, загрузчик считывает версию образа и сравнивает с текущей версией прошивки. Прошивка для этого содержит соответствующие поля, которые как данные расположены непосредственно за таблицей векторов. Загрузчик, конечно, знает, что и как искать. Если на карте новая версия, производится запись образа во флэш и его запуск. Во всех остальных случаях загрузчик запускает имеющуюся прошивку сразу.

Вот бы его на github'е увидеть !
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Apr 8 2016, 09:26
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(x893 @ Apr 7 2016, 21:01) *
Вот бы его на github'е увидеть !

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

Сообщений в этой теме
- inventor   Самозагрузчик   Apr 7 2016, 06:34
- - KRS   Цитата(inventor @ Apr 7 2016, 09:34) посл...   Apr 7 2016, 06:51
|- - inventor   Цитата(KRS @ Apr 7 2016, 10:51) Самый луч...   Apr 7 2016, 07:05
|- - Непомнящий Евгений   Цитата(inventor @ Apr 7 2016, 10:05) у ме...   Apr 7 2016, 07:11
|- - inventor   то есть я делаю в файле линкера для прошивки испра...   Apr 7 2016, 07:46
|- - KRS   Цитата(inventor @ Apr 7 2016, 10:46) верн...   Apr 7 2016, 08:09
- - jcxz   Цитата(inventor @ Apr 7 2016, 12:34) саму...   Apr 7 2016, 08:07
|- - inventor   Цитата(jcxz @ Apr 7 2016, 11:07) В 0x1000...   Apr 7 2016, 10:13
|- - kolobok0   Цитата(KnightIgor @ Apr 7 2016, 16:54) У ...   Apr 7 2016, 21:06
|- - Непомнящий Евгений   Цитата(kolobok0 @ Apr 8 2016, 00:06) в св...   Apr 8 2016, 05:37
|- - kolobok0   Цитата(Непомнящий Евгений @ Apr 8 2016, 08...   Apr 8 2016, 14:07
|- - Kabdim   Цитата(kolobok0 @ Apr 8 2016, 17:07) - за...   Apr 12 2016, 13:11
|- - kolobok0   Цитата(Kabdim @ Apr 12 2016, 16:11) А вот...   Apr 12 2016, 14:26
- - romas2010   Цитата(inventor @ Apr 7 2016, 09:34) Подс...   Apr 7 2016, 15:07
- - bugdesigner   Вот мой скелет бутлоадераю Выделено под него 16К ф...   Apr 8 2016, 09:55
- - inventor   Сделал, но чего то не получается запустить основну...   Apr 12 2016, 12:44
|- - scifi   Цитата(inventor @ Apr 12 2016, 15:44) Я в...   Apr 12 2016, 12:52
||- - inventor   Цитата(scifi @ Apr 12 2016, 15:52) А попо...   Apr 12 2016, 13:12
||- - scifi   Цитата(inventor @ Apr 12 2016, 16:12) ток...   Apr 12 2016, 13:37
|- - KRS   Цитата(inventor @ Apr 12 2016, 15:44) Код...   Apr 12 2016, 14:26
|- - aaarrr   Цитата(KRS @ Apr 12 2016, 17:26) Во первы...   Apr 12 2016, 14:49
|- - scifi   Цитата(aaarrr @ Apr 12 2016, 17:49) Где? ...   Apr 12 2016, 15:03
||- - zltigo   QUOTE (scifi @ Apr 12 2016, 18:03) Ассемб...   Apr 13 2016, 08:03
||- - scifi   Цитата(zltigo @ Apr 13 2016, 11:03) Ассем...   Apr 13 2016, 08:10
||- - KnightIgor   Цитата(scifi @ Apr 13 2016, 09:10) Я ж не...   Apr 13 2016, 09:00
||- - scifi   Цитата(KnightIgor @ Apr 13 2016, 12:00) О...   Apr 13 2016, 09:41
||- - zltigo   QUOTE (scifi @ Apr 13 2016, 12:41) А, ну ...   Apr 13 2016, 09:47
||- - scifi   Цитата(zltigo @ Apr 13 2016, 12:47) В дан...   Apr 13 2016, 09:50
||- - zltigo   QUOTE (scifi @ Apr 13 2016, 12:50) Вы сво...   Apr 13 2016, 10:03
|||- - scifi   Цитата(zltigo @ Apr 13 2016, 13:03) Абсол...   Apr 13 2016, 10:14
||- - Сергей Борщ   QUOTE (scifi @ Apr 13 2016, 11:50) Все уж...   Apr 13 2016, 11:14
|- - KRS   Цитата(aaarrr @ Apr 12 2016, 17:49) По-мо...   Apr 12 2016, 15:41
|- - aaarrr   Цитата(KRS @ Apr 12 2016, 18:41) Нет - за...   Apr 12 2016, 16:49
|- - scifi   Цитата(aaarrr @ Apr 12 2016, 19:49) А я -...   Apr 13 2016, 06:59
- - inventor   Сделал самозагрузчик, забыл вызвать функцию NVIC_...   Apr 13 2016, 06:49
|- - KnightIgor   Цитата(inventor @ Apr 13 2016, 07:49) вот...   Apr 13 2016, 07:54
- - ViKo   Коль все предъявили, тогда и я...: Код/* Адрес ...   Apr 13 2016, 10:21
|- - scifi   Цитата(ViKo @ Apr 13 2016, 13:21) Коль вс...   Apr 13 2016, 10:35
|- - ViKo   Цитата(scifi @ Apr 13 2016, 13:35) Выше б...   Apr 13 2016, 10:43
|- - aaarrr   Цитата(scifi @ Apr 13 2016, 13:35) Выше б...   Apr 13 2016, 16:28
- - inventor   В догонку. все работает, загрузчик загружает, с од...   Apr 22 2016, 18:59
- - scifi   Цитата(inventor @ Apr 22 2016, 21:59) есл...   Apr 22 2016, 19:13


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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 20:14
Рейтинг@Mail.ru


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