|
Обновление прошивки |
|
|
|
Jan 21 2016, 13:42
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 16-10-15
Пользователь №: 88 891

|
Делаю бут, который будет обновлять прошивку с sd карты. Возникло пару вопросов, поэтому рассуждения вслух. Скомпилировал прошивку, получил bin файл, файл может получиться большого размера, в оперативку возможно не влезет, думаю писать в специально отведенные для этого сектора в начало/конец флеша - пока не понятно куда лучше. Собственно, читаю с карты этот бинарник, записал во флеш, хорошо бы его проверить, думаю использовать CRC. Еще хорошо бы знать отличается ли версия залитой прошивки, от той что на карте. Теперь, внимание вопрос, как вы бы делали это? Пока единственное решение - написать утилиту для пк, которая бы посчитала crc прошивки, и обернуть в какой то новый файл, с полями crc и версией, но почему то есть смутное подозрение что никто так не делает.
|
|
|
|
|
 |
Ответов
|
Jan 21 2016, 14:37
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(data_stack @ Jan 21 2016, 19:42)  Скомпилировал прошивку, получил bin файл, файл может получиться большого размера, в оперативку возможно не влезет, думаю писать в специально отведенные для этого сектора в начало/конец флеша - пока не понятно куда лучше. Собственно, читаю с карты этот бинарник, записал во флеш, хорошо бы его проверить, думаю использовать CRC. Непонятно зачем прошивку переписывать куда-то если она лежит на SD-карте? Бутлоадер может в любой момент считать с SD-карты любую её часть и, при необходимости, повторить процесс обновления, если по какой-то причине прошлый раз не удался. Или Вы боретесь с диким юзером, который выдёргивает карту во время прошивки? :-) Насчёт CRC - IAR прекрасно умеет считать CRC образа прошивки, зачем изобретать велосипед? Мы именно так и контролируем валидность прошивок.
|
|
|
|
|
Jan 21 2016, 15:04
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(jcxz @ Jan 21 2016, 17:37)  Непонятно зачем прошивку переписывать куда-то если она лежит на SD-карте? Так загрузчику и не надо будет знать ничего о SD-карте - его дело проверить и скопировать прошивку из одной части флеш в другую. Получается очень простой и компактный бут без привязки к какому-либо внешнему железу. Цитата(jcxz @ Jan 21 2016, 17:37)  Насчёт CRC - IAR прекрасно умеет считать CRC образа прошивки, зачем изобретать велосипед? Мы именно так и контролируем валидность прошивок. А номер и дату сборки он умеет вставлять?
|
|
|
|
|
Jan 21 2016, 16:01
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(aaarrr @ Jan 21 2016, 21:04)  Так загрузчику и не надо будет знать ничего о SD-карте - его дело проверить и скопировать прошивку из одной части флеш в другую. Получается очень простой и компактный бут без привязки к какому-либо внешнему железу. Это да, мы так у себя и делаем. Только автор писал, что у него бутлоадер читает SD-карту. Почему так сделано - другой вопрос, только в этом случае нет необходимости её куда-то переписывать - можно писать напрямую во флешь программ. Цитата(aaarrr @ Jan 21 2016, 21:04)  А номер и дату сборки он умеет вставлять? Про дату/номер Вам уже ответили, а номер сборки - ну хотя-бы формировать его bat-файлом, запускаемым из prebuild.
|
|
|
|
|
Jan 21 2016, 16:20
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(jcxz @ Jan 21 2016, 19:01)  Про дату/номер Вам уже ответили Нет, я же написал, что хочу дату в unix time. Законное желание, как мне кажется. Тут, на мой взгляд, дело такое: можно реализовать желания скриптами и внешним "велосипедом" (сторонним софтом), а можно накидать пару сотен строк своего. Скажем, программка, занимающаяся добавлением в прошивку CRC, времени и номера сборки с автоинкрементом (номер хранится в ini-файле), занимает менее 300 строк на "C" и без проблем собирается на любой системе.
|
|
|
|
Сообщений в этой теме
data_stack Обновление прошивки Jan 21 2016, 13:42 aaarrr Цитата(data_stack @ Jan 21 2016, 16:42) П... Jan 21 2016, 13:51 mantech Цитата(data_stack @ Jan 21 2016, 16:42) Д... Jan 21 2016, 13:52 data_stack Просто столкнулся с этой проблемой впервые, поэтом... Jan 21 2016, 13:57 megajohn Цитата(data_stack @ Jan 21 2016, 17:42) Д... Jan 21 2016, 14:14  prottoss Цитата(aaarrr @ Jan 21 2016, 21:04) Так з... Jan 21 2016, 15:29   scifi Цитата(prottoss @ Jan 21 2016, 18:29) Ном... Jan 21 2016, 15:34   aaarrr Цитата(prottoss @ Jan 21 2016, 18:29) Дат... Jan 21 2016, 15:44    prottoss Цитата(aaarrr @ Jan 21 2016, 21:44) А еже... Jan 21 2016, 16:00  mantech Цитата(aaarrr @ Jan 21 2016, 18:04) Так з... Jan 23 2016, 13:20   aaarrr Цитата(mantech @ Jan 23 2016, 16:20) Так ... Jan 23 2016, 13:31    Ruslan1 А я простой стандартный hex-файл использую. Нашел ... Jan 23 2016, 14:45    jcxz Цитата(aaarrr @ Jan 23 2016, 19:31) С SD-... Jan 24 2016, 11:35 prottoss Выскажу свое мнение, хоть, похоже оно и не совпада... Jan 24 2016, 12:20 scifi Цитата(prottoss @ Jan 24 2016, 15:20) Выс... Jan 24 2016, 12:32  aaarrr Цитата(scifi @ Jan 24 2016, 15:32) Ну и г... Jan 24 2016, 12:34  mantech Цитата(scifi @ Jan 24 2016, 15:32) Ну и г... Jan 24 2016, 13:18 Огурцов Цитата(prottoss @ Jan 24 2016, 12:20) бут... Jan 24 2016, 12:37 prottoss Блин...Извиняюсь за неправильные термины. Я не име... Jan 24 2016, 13:21
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|