хочу задать вопрос тем, кто пиcал программу на проце для абдейта SIM900 и использовали загрузчик от SIMCOM их рекомендованный.
Столкнулись с проблемой проверки (загруженной более новой верии бинарника) по CRC-32 ... не проходит.
Нигде нет описания именно алгоритма проверки на CRC-32! находящегося внутри их загрузчика. Или просто не нашёл.
CRC от загрузчика получаем по команде. Но непонятно как он вычислен. Со стандартным подсчетом CRC-32 не совпадает.
Возникает неуверенность в достоверности загрузки версии. Хотя все работает без проблем.
Если кто знает подскажите или где есть описание в доках SIMCOM.
Так что ли никто не делает абдейт прошивки своих GSM модулей на SIM900? Купили старую 4 или б или 8 версии и не хотите 12-ю ставить?
Тогда вопрос, а кто как делает поддержку абдейта в своих устройствах на SIM900? Кто через основной RS? Кто через отладочный?
andrewlekar
Apr 8 2013, 09:59
Делаем обновление модулей SIM900 и через основной порт и через отладочный. Через стандартный FlashTool. CRC в порядке.
QUOTE (andrewlekar @ Apr 8 2013, 12:59)

Делаем обновление модулей SIM900 и через основной порт и через отладочный. Через стандартный FlashTool. CRC в порядке.
Со стандартным понятно, поскольку вы пользуете то что есть, сами CRC не считаете. Похоже их китайский CRC свой особенный.
А кто делал абдейт через свой управляющий процессор? Есть такие?
andrewlekar
Apr 9 2013, 04:39
Вы в курсе, что CRC разные бывают? И слова "стандартный" CRC или "китайский" CRC вообще ни о чём не говорят. Вам нужно выяснить, по какому полиному CRC, порядок байт при передаче, порядок бит в байте (LE или BE).
Из документа SIM900 Series module_download procedure_V1.30.pdf
ивестно только что
Compare Download Information (0x15)
After downloaded file data, PC side send ”compare download information” instruction, and send
download start address(32bit,LE), checksum(32bit,LE), file size (32bit,LE) to the module.
When module received this instruction, it will return the newly generated checksum (32bit,LE) by
the file it received to PC side. If two results are identical (0x30), that means successfully download,
otherwise, download failed.
andrewlekar
Apr 9 2013, 06:35
Если там на самом деле чексумма, то это не CRC-32. Чексумма 32х битная - это просто сумма всех байт, положенная в 32х битное число (беззнаковое целое).
Всем ответившим спасибо. Вопрос снят.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.