Перейти к содержимому


Фотография
- - - - -

CRC - прога для вычисления контрольной суммы


  • Please log in to reply
12 ответов в этой теме

#1 dаs

dаs

    Agere Администратор

  • Администраторы ROOT
  • Сообщений: 2 828
  • Город:Белгород
  • Модель телефона: SGH U600 + 1 Gb

Отправлено 2006-май-11 - 10:34

уважаемые господа программисты..если кого-то из вас не затруднит ,напишите пожалуйста прогу для вычисления контрольной суммы в строчке из кода прошивки гуми (чтобы я, допустим, мог вставить строчку в поле, а прога бы считала мне контрольную сумму)..очень нужно..очень надоело уже считать вручную...а вот алгоритм вычисления это контрольной суммы:

Например, вот строчка:
S31500020120 6C0160C2042F86F22F8601034CF2A920 CD
..где CD - это та самая контрольная сумма.....
Для начала запустите программу Калькулятор, которая есть в любой версии Windows, в расширенном режиме, чтобы удобно было переключаться из десятичной системы в шестнадцатеричную и вооружитесь обычным текстовым редактором, подойдет к примеру встроенный в FAR редактор. Затем действуйте следующим образом: сложите в шестнадцатеричной системе поля адреса, данных и после этого прибавьте к этому значению шестнадцатеричную длину этих полей в байтах - 15. Вот пример подсчета контрольной суммы для приведенной выше строчки:


15+00+02+01+20

+

6C+01+60+C2+04+2F+86+F2+2F+86+01+03+4C+F2+A9+20

=

632 в шестнадцатеричной системе


Теперь о том, что нужно делать с полученным результатом. Если посмотреть на поле контрольной суммы, то можно увидеть, что под нее отведен один байт, а значение одного байта не может превышать 255, или FF в шестнадцатеричной системе. Так вот, чтобы просчитать значение контрольной суммы для нашей строки, следует в шестнадцатеричной системе отнять полученное нами значение при сложении от FF. Но если перевести 632 в десятичную систему, то получится число 1586, разумеется при вычитании у нас выйдет отрицательное значение, а это недопустимо. Поэтому в этом случае следует отбросить одну цифру слева, чтобы получилось значение меньше FF - 255 в десятичной системе. Отбросили - получилось число 32. Значит теперь в шестнадцатеричной системе производим вычитание: FF - 32 = CD. Вот CD и будет искомой контрольной суммой для нашей строки.
Сами видите, что геммороя много...а когда этого надо сделать много, то хоть вешайся вообще...заранее спасибо!!!

#2 Xpasha

Xpasha

    Модератор

  • Модераторы S
  • Сообщений: 104
  • Город:Уссурийск

Отправлено 2006-май-11 - 16:02

Просил - получай :) ;) :?

Я тут посидел минут 15 и вот что получилось:

Как я понял, то из строки: S31500020120 6C0160C2042F86F22F8601034CF2A920 CD, тебе надо проверить: 1500020120 6C0160C2042F86F22F8601034CF2A920 только естественно без пробела.
Значит:
1) в программе вводишь то что тебе надо только в шестнадцатеричном виде без всяких там S и тому подобного - будет ошибка.
2) следи чтобы количество символов строки было четным - будет ошибка.
И вообще если что-то будет считать не так - пиши. И выложи свои рассчеты хотя бы штук 5.

Прикрепленные файлы

  • Прикрепленный файл  CRC.rar   158,86К   Количество загрузок: 21


#3 dаs

dаs

    Agere Администратор

  • Администраторы ROOT
  • Сообщений: 2 828
  • Город:Белгород
  • Модель телефона: SGH U600 + 1 Gb

Отправлено 2006-май-11 - 16:30

Xpasha,
спасибо огромнейшее!!!!...благодарен по гроб жизни..хорошо, что есть ещё такие отзывчивые люди...!!!
..прога работает на ура..считает всё и вся...и главное - правильно!!!..ещё раз спасибо!!..а какие расчёты нужны?

#4 Xpasha

Xpasha

    Модератор

  • Модераторы S
  • Сообщений: 104
  • Город:Уссурийск

Отправлено 2006-май-13 - 13:24

а какие расчёты нужны

если говоришь, что все правильно работает - то никакие. Пользуйся на здоровье :idea:

#5 serj32

serj32

    Я тут недавно

  • Стажёр
  • Сообщений: 2
  • Модель телефона: siemens

Отправлено 2014-май-09 - 14:23

Просил - получай :) :) :)

Я тут посидел минут 15 и вот что получилось:

Как я понял, то из строки: S31500020120 6C0160C2042F86F22F8601034CF2A920 CD, тебе надо проверить: 1500020120 6C0160C2042F86F22F8601034CF2A920 только естественно без пробела.
Значит:
1) в программе вводишь то что тебе надо только в шестнадцатеричном виде без всяких там S и тому подобного - будет ошибка.
2) следи чтобы количество символов строки было четным - будет ошибка.
И вообще если что-то будет считать не так - пиши. И выложи свои рассчеты хотя бы штук 5.

Что то не скачивается прога для CRC

#6 YURA25

YURA25

    Магистр

  • Участники
  • Сообщений: 409
  • Город:Україна
  • Модель телефона: GT-S5610, GT-C3322, GT-C3322i

Отправлено 2014-май-10 - 10:45

Перезалейте программу.

#7 master

master

    Временно недоступен

  • SGH Open Club
  • Сообщений: 602
  • Город:Саранск
  • Модель телефона: Samsung GT-S5260, GT-S8530

Отправлено 2014-май-10 - 11:50

Зачем она вам вдруг понадобилась, интересно...

#8 serj32

serj32

    Я тут недавно

  • Стажёр
  • Сообщений: 2
  • Модель телефона: siemens

Отправлено 2014-май-11 - 08:33

Зачем она вам вдруг понадобилась, интересно...

Я начинающий ну пытаюсь на AVR.
Этот калькулятор мне нужен для 1-wire на DS18B20.
Вот я узнал с помощью программы owdemo Скачанной отсюда http://arvresearch.n.../download.dhtml
серийный номер 0x 000005D97080 ,ID у DS18B20 равен 0x28
Теперь мне необходимо узнать CRC это надо для обмена с DS18B20
Спасибо.

Вот по этой ссылке http://chipmk.ru/ind...t...5&Itemid=29
написано- Match Rom Command, 0x55 -------- отправляет ПК;
ROM Family Code, 0x28 ------------- отправляет ПК;
ROM Code, 0x000001272056 ------ отправляет ПК;
ROM CRC, 0x27 ----------------------- отправляет ПК;

Вот с числом 0x000001272056, CRC не получается 0x27
а вот с числом 0x562027010000 всё получается.

значит должно быть так ROM Code, 0x562027010000 ------ отправляет ПК;
Подскажите кто знает.Спасибо.

Сообщение отредактировал serj32: 2014-май-11 - 08:36


#9 iceswat

iceswat

    Я тут недавно

  • Стажёр
  • Сообщений: 3
  • Город:Москва
  • Модель телефона: Lenovo vibe

Отправлено 2018-янв-12 - 17:18

здравствуйте. перезалейте файл пожалуйста



#10 f2065

f2065

    Программист

  • Администраторы ROOT
  • Сообщений: 6 994
  • Город:Russia,Moscow
  • Модель телефона: Samsung B310E, B5722, C3322, C3322i, S5610.

Отправлено 2018-янв-13 - 00:28

Судя по логам - файл в 2007г был утрачен, а его автор с 2008г не приходил…

 

Проще заново написать. Зачем вообще сейчас это надо?



#11 iceswat

iceswat

    Я тут недавно

  • Стажёр
  • Сообщений: 3
  • Город:Москва
  • Модель телефона: Lenovo vibe

Отправлено 2018-янв-13 - 04:45

Мне нужно большие количество данных подсчитывать вот такая программа подошла бы

#12 f2065

f2065

    Программист

  • Администраторы ROOT
  • Сообщений: 6 994
  • Город:Russia,Moscow
  • Модель телефона: Samsung B310E, B5722, C3322, C3322i, S5610.

Отправлено 2018-янв-13 - 11:34

Каких данных? S-строк?

Так это давно стандартизированный формат Motorola S-Records. Вон например в Hex Workshop можно бинарник экспортировать в S37-файл и это будет именно такой же формат как и был в прошивках Agere…



#13 iceswat

iceswat

    Я тут недавно

  • Стажёр
  • Сообщений: 3
  • Город:Москва
  • Модель телефона: Lenovo vibe

Отправлено 2018-янв-14 - 05:51

Объем файла до 3мб. И там нужно всю контрольную сумму пересчитывать. Ввести хекс строку и чтоб он пересчитал. Если есть готовая программа с исходники на с++ был бы очень рад.




0 человек читают эту тему

0 пользователей, 0 гостей, 0 скрытых пользователей

Яндекс цитирования