Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
Галимуллин
Сообщений: n/a
#1

Как подсчитать CRC! - C++

25.06.2012, 14:32. Просмотров 2446. Ответов 2
Метки нет (Все метки)

Уважаемые Форумчане! Как подсчитать CRC. Есть файл чтения EEProm. - :10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D
:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
:00000001FF
Так для строки :10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 контрольная сумма будет A0. Как получить А0? Всем спасибо заранее!

Добавлено через 2 часа 47 минут
Data Records
The Intel HEX file is made up of any number of data records that are terminated with a carriage return and a linefeed. Data records appear as follows:

:10246200464C5549442050524F46494C4500464C33
This record is decoded as follows:

:10246200464C5549442050524F46494C4500464C33
||||||||||| CC->Checksum
|||||||||DD->Data
|||||||TT->Record Type
|||AAAA->Address
|LL->Record Length
:->Colon
where:

10 is the number of data bytes in the record.
2462 is the address where the data are to be located in memory.
00 is the record type 00 (a data record).
464C...464C is the data.
33 is the checksum of the record.
Extended Linear Address Records (HEX386)
Extended linear address records are also known as 32-bit address records and HEX386 records. These records contain the upper 16 bits (bits 16-31) of the data address. The extended linear address record always has two data bytes and appears as follows:

:02000004FFFFFC
where:

02 is the number of data bytes in the record.
0000 is the address field. For the extended linear address record, this field is always 0000.
04 is the record type 04 (an extended linear address record).
FFFF is the upper 16 bits of the address.
FC is the checksum of the record and is calculated as
01h + NOT(02h + 00h + 00h + 04h + FFh + FFh).
When an extended linear address record is read, the extended linear address stored in the data field is saved and is applied to subsequent records read from the Intel HEX file. The linear address remains effective until changed by another extended address record.

The absolute-memory address of a data record is obtained by adding the address field in the record to the shifted address data from the extended linear address record. The following example illustrates this process..

Address from the data record's address field 2462
Extended linear address record data field FFFF
--------
Absolute-memory address FFFF2462
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 14:32     Как подсчитать CRC!
Посмотрите здесь:

Подсчитать CRC для файла - C++
Здравствуйте! Есть имя файла. Как для этого файла подсчитать CRC? Проблема не в понимании алгоритма, а в том, что на данном языке я не...

Реализация crc - C++
Здравствуйте. Пытаюсь написать алгоритм Используя полимональную арифметику. Опишу алогритм как понимаю.. Считываю исходный ...

Алгоритм вычисления CRC-8 - C++
unsigned short crc8 (unsigned short *ptr, unsigned short size ) { unsigned short sum=0; while(size>0) { sum+=ptr; sum += (sum...

Наивный подход CRC-32 - C++
Объясните пожалуйста что делает каждая строчка функции в наивном подходе CRC-32. static uint32_t crc32_naive(uint8_t *buf) { ...

Расчет CRC-16 c Revert: true - C++
Добрый день. Прошу помочи с такой проблемой: сделал быстрый (т.е. с таблицей) расчет CRC для полинома 0х1021. Считает верно. Теперь...

Убрать реверс в CRC-алгоритме - C++
Господа, помогите ньюфагу. Нашел такую реализацию CRC32. Если проверить здесь www.zorc.breitbandkatze.de/crc.html, видно что она выдает...

Как подсчитать частоту встречаемости - C++
Есть текстовый документ в нем 0 и 1 четное количество N символов Как посчитать частоту встречаемости например 0101 ? FILE *f =...

Как подсчитать сумму всех info? - C++
#include "stdafx.h" #include "stdio.h" #include "stdlib.h" #include "math.h" #include <locale.h> int main() { ...

Как подсчитать повторения символов в тексте? - C++
как подсчитать в введенном с клавы или с файла тексте ,количество повторяющихся символов? короче дан текст ,ниже нужно вывести сколько...

Как подсчитать количество слов в файле - C++
#include <fstream> #include <iostream> #include <stdio.h> using namespace std; int main(int argc, char* argv) { ...

как подсчитать самое длинное слово? - C++
Задано предложение-строка. Написать программу, которая находит самое длинное слово, встречающееся в предложении.

Как подсчитать длину динамического массива? - C++
Лирическое отступлене: С++ мне не нравиться уж больно кривой язык и майкрасофт и борланд как то криво друг с другом взаимодействуют плюс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
25.06.2012, 14:44     Как подсчитать CRC! #2
Вот тут неплохо описано что да как:
Вложения
Тип файла: doc Лабораторная №1 СПО Вычисление CRC.doc (48.5 Кб, 312 просмотров)
Галимуллин
Сообщений: n/a
25.06.2012, 14:52     Как подсчитать CRC! #3
Всем Спасибо! Кто ответил! Ответ нашел на сайте фирмы Keil - Оказалось что это лишь контрольная сумма Hex и EEP файлов! Ответ я привел выше, через 2,47 часа - см. выше! еще раз Thank You!!!
Yandex
Объявления
25.06.2012, 14:52     Как подсчитать CRC!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru