|
Изменение прошивки мк по GPRS-каналу...?, SIM300D и SIM900 |
|
|
|
Aug 19 2010, 09:51
|
Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 8-06-07
Пользователь №: 28 294

|
Возникла необходимость предвидеть в устройстве возможность дистанционного обновления ПО микроконтроллера, желательно по GPRS-каналу. Ожидаемый объем прошивки 64-128 кб. Так как напрямую "в лоб" (прямо в память мк) это сделать скорее всего не получится, пришла идея использовать промежуточный буфер памяти в виде флеш памяти AT45 (она все равно находится на борту, 16 Мбит так что выделить 100 кб не проблема вроде). Идея в принципе проста - центральный сервер по команде будет отправлять по частям HEX файл с обновленной прошивкой, части будут проверятся по протоколу и на CRC, после чего будут записываться в буфер AT45, и формировать в ее памяти зеркало прошивки мк. После записи всего массива HEXа, сервер подаст команду на включение бутлоадера - и через минуту вторую устройство с новым ПО. Конечно нужно еще продумать протокол, возможно добавить кодирование и т.д. - но в теории идея выглядит очень работоспособной...? осталось попробовать на практике Хотелось бы услышать мнение форумчан по этому вопросу? Кто какой способ изменения ПО устройства использует?
|
|
|
|
|
 |
Ответов
|
Aug 20 2010, 23:39
|
Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 8-06-07
Пользователь №: 28 294

|
За исходник спасибо... Посмотрел Ваш пример... все понятно кроме декодирования RC4....? Не подскажите где можно почитать что то толковое по этому вопросу? Может у Вас имеется какой то пример программный кодировка => декодирование... Из того что прочитал в инете понял что в RC4 есть ключ (массив) разной длины по которому идет кодирование и декодирование...? но какой алгоритм не очень представляю  ? >Файл забирается по протоколу HTTP через 80 порт с обычного web - сервера Тогда у меня вопрос как вы его выкладываете на сервер и как читаете на сим300 ? HTTP - не поддерживает ведь работу с файлами, нужен FTP а с ним на сим300 и с нашим доступом в инет от операторов практически нереально работать... Как я понимаю на сервере тоже должен быть какой то алгоритм работы по которому он по запросу с устройства выдавал частями файл...? - думал разработать для этого дела протокол обмена с сервером... как вижу а Вас система наверное проще? ...уже позже почитал про формат .uue - довольно интересный формат...
|
|
|
|
|
Aug 21 2010, 03:38
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 15-02-05
Пользователь №: 2 663

|
Цитата(mapic @ Aug 21 2010, 03:39)  Не подскажите где можно почитать что то толковое по этому вопросу? Если спросить у Google "RC4 описание" то он всё и расскажет А ещё есть хорошая книжка : "Брюс Шнайер "Прикладная криптография". Цитата Тогда у меня вопрос как вы его выкладываете на сервер и как читаете на сим300 ? Как выкладывать - даже непонятно, в чём вопрос? Копирую туда файл (руками), как ещё? А как забираю - вот кусок обмена между SIM300 и процессором: AT+CDNSORIP=0
OK AT+CGATT=1
OK AT+CIPCSGP=1,"internet.beeline.ru","beeline","beeline"
OK AT+CIPSTART="TCP","195.34.238.215","80"
OK
CONNECT OK AT+CIPSEND
> GET /v100.uue HTTP/1.1 Host: 195.34.238.215
SEND OK HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Tue, 20 Nov 2007 18:02:28 GMT Content-Type: application/octet-stream Accept-Ranges: bytes Last-Modified: Tue, 20 Nov 2007 17:30:42 GMT ETag: "f09869139b2bc81:a04" Content-Length: 82275
YoRcY
M,4``"CQ```(^0-($L!(JH[`2,):P$IR=LD"`6B`!PD,F`/)`WP`A`/)#(@#" M0RX`PD,I`/)`[P`J`/+0\``;`.)#&0#RT%\`&@#20Q\`PD,=`/)`_``>`,)# M,P#"0S$`\D,R`/)`&0`W`,)#-0#R0.8`-@#"0P``PD,!`,)#)0#"0RT`@D.F M`<)#!`#"0P4`@D-@`8)#8@&"0V0!@D-F`8)#@`&"0X(!@D.$`8)#A@&"0X@! .... .... Цитата Может у Вас имеется какой то пример программный кодировка => декодирование. вот исходник кодера/декодера, которым я шифрую прошивку. Алгоритм симметричный, если ему на вход подсунуть "простой" файл - на выходе получим зашифрованный, а если подсунуть зашифрованный - на выходе получим "простой". Исходник этот не мой - я его в сети нашёл, так что спасибо неизвестному автору. Цитата Может у Вас имеется какой то пример программный кодировка => декодирование. вот исходник кодера/декодера, которым я шифрую прошивку. Алгоритм симметричный, если ему на вход подсунуть "простой" файл - на выходе получим зашифрованный, а если подсунуть зашифрованный - на выходе получим "простой". Исходник этот не мой - я его в сети нашёл, так что спасибо неизвестному автору.
RC42010_08_21_07_20.rar ( 991 байт )
Кол-во скачиваний: 215PS: Советую сначала добиться, что бы перепрошивка у тебя без шифрования работала, а потом уже, если очень нужно - добавляй шифрование.
Сообщение отредактировал Dmitrich - Aug 21 2010, 03:42
|
|
|
|
|
Aug 21 2010, 13:09
|
Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 8-06-07
Пользователь №: 28 294

|
Цитата(Dmitrich @ Aug 21 2010, 06:38)  Если спросить у Google "RC4 описание" то он всё и расскажет А ещё есть хорошая книжка : "Брюс Шнайер "Прикладная криптография". За наводку спасибо! Цитата(Dmitrich @ Aug 21 2010, 06:38)  Как выкладывать - даже непонятно, в чём вопрос? Копирую туда файл (руками), как ещё? А как забираю - вот кусок обмена между SIM300 и процессором:
AT+CDNSORIP=0
OK AT+CGATT=1
OK AT+CIPCSGP=1,"internet.beeline.ru","beeline","beeline"
OK AT+CIPSTART="TCP","195.34.238.215","80"
OK
CONNECT OK AT+CIPSEND
> GET /v100.uue HTTP/1.1 Host: 195.34.238.215
SEND OK HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Tue, 20 Nov 2007 18:02:28 GMT Content-Type: application/octet-stream Accept-Ranges: bytes Last-Modified: Tue, 20 Nov 2007 17:30:42 GMT ETag: "f09869139b2bc81:a04" Content-Length: 82275
YoRcY
M,4``"CQ```(^0-($L!(JH[`2,):P$IR=LD"`6B`!PD,F`/)`WP`A`/)#(@#" M0RX`PD,I`/)`[P`J`/+0\``;`.)#&0#RT%\`&@#20Q\`PD,=`/)`_``>`,)# M,P#"0S$`\D,R`/)`&0`W`,)#-0#R0.8`-@#"0P``PD,!`,)#)0#"0RT`@D.F M`<)#!`#"0P4`@D-@`8)#8@&"0V0!@D-F`8)#@`&"0X(!@D.$`8)#A@&"0X@! .... ....
здесь тоже все ясно... а как файл с модуля забираете - просто все что льется с порта в память пишите? АТ45 успевает все записать? еще как я понимаю файл .uue нужно преобразовать в нормальный вид (хотя по спецификации вроде все несложно выглядит преобразование 4 байта в 3)... Я думал немножко по другому передавать файл небольшими пакетами с подтверждением приема... но для этого пришлось бы писать особое по сервера работающие по этому протоколу передачи... Цитата(Dmitrich @ Aug 21 2010, 06:38)  PS: Советую сначала добиться, что бы перепрошивка у тебя без шифрования работала, а потом уже, если очень нужно - добавляй шифрование. ну да так и планирую...
|
|
|
|
Сообщений в этой теме
mapic Изменение прошивки мк по GPRS-каналу...? Aug 19 2010, 09:51 Slonofil Планирую заняться тем же, поделюсь своими соображе... Aug 19 2010, 09:56 Dmitrich Привет Марис!
Именно так я у себя и сделал: в... Aug 19 2010, 10:14 mapic Цитата(Dmitrich @ Aug 19 2010, 13:14) При... Aug 19 2010, 10:46  Dmitrich Цитата(mapic @ Aug 19 2010, 14:46) >Ис... Aug 19 2010, 16:30   SZ0 Цитата>Исходник не помешал бы
выслал на e-mail... Aug 20 2010, 03:28   mapic За исходник спасибо...
>Файл забирается по про... Aug 20 2010, 08:56    Dmitrich >Я просто думал немножко обрабатывать HEX файл ... Aug 20 2010, 15:46 mapic Сергей что с Вашим емейлом? - не могу отправить пи... Aug 20 2010, 16:32 rx3apf Цитата(mapic @ Aug 21 2010, 03:39) Тогда ... Aug 21 2010, 00:24 AlexandrY Цитата(mapic @ Aug 19 2010, 12:51) Хотело... Aug 21 2010, 13:36 mapic Цитата(AlexandrY @ Aug 21 2010, 16:36) Ка... Aug 21 2010, 15:42  AlexandrY Цитата(mapic @ Aug 21 2010, 18:42) С таки... Aug 21 2010, 16:13   mapic Цитата(AlexandrY @ Aug 21 2010, 19:13) Ну... Aug 21 2010, 16:47    AlexandrY Цитата(mapic @ Aug 21 2010, 19:47) я имел... Aug 21 2010, 17:08     alx125 Цитата(AlexandrY @ Aug 21 2010, 21:08) ... Aug 23 2010, 10:31 Alechek Цитата(AlexandrY @ Aug 21 2010, 19:36) Ка... Sep 1 2010, 05:49 ArtemKAD ЦитатаАТ45 успевает все записать?
С легкостью. Там... Aug 21 2010, 14:39 mempfis_ Цитата(mapic @ Aug 19 2010, 12:51) Возник... Sep 1 2010, 07:34 rx3apf Цитата(mempfis_ @ Sep 1 2010, 11:34) 2. У... Sep 2 2010, 16:04  mempfis_ Цитата(rx3apf @ Sep 2 2010, 19:04) Или я ... Sep 2 2010, 19:00
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|