реклама на сайте
подробности

 
 
> Подсчет CRC средствами ИАР
Sergio66
сообщение Nov 21 2012, 08:14
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526



Еще раз добрый день!
Столкнулся с такой проблемой - создаю CRC так:
Код
-J2,crc=8005,,,,,=(CODE)0-1


получаю вот это:
Код
Symbol      Checksum  Memory  Start      End       Initial value
------      --------  ------  -----      ---       -------------
__checksum    0xab7b   CODE   00000000 - 00000001  0x0000 (#0x0000)


В программе использую следующий код для подсчета CRC (задача сравнить его с CRC прошивки) (пробую пока на 2 байтах...)

Код
#define POLY 0x8005
unsigned short slow_crc16(unsigned short sum, unsigned char __flash *p,
unsigned int len)
{
  while (len--)
  {
    int i;
    unsigned char byte = *(p++);
    for (i = 0; i < 8; ++i)
    {
      unsigned long osum = sum;
      sum <<= 1;
      if (byte & 0x80)
        sum |= 1;
      if (osum & 0x8000)
        sum ^= POLY;
      byte <<= 1;
    }
  }
  return sum;


unsigned short calc = 0;

/* Run the checksum algorithm */
calc = slow_crc16(calc, (unsigned char __flash*)0,(0x1));
}


внимание, вопрос... Не сходятся CRC...
Функция подсчета CRC взята из
IAR Linker and Library Tools
Reference Guide стр.36

В чем может быть дело???
Заранее благодарю...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dikoy
сообщение Nov 23 2012, 04:17
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 253
Регистрация: 4-03-09
Из: Богота, Колумбия
Пользователь №: 45 676



Бутлодырь пишете?
Вам просто CRC Нужна или какая-то конкретная? Ибо если просто, то есть у меня отлаженный табличный алгоритм. Шустрый весьма.
Go to the top of the page
 
+Quote Post
Sergio66
сообщение Nov 24 2012, 07:57
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526



Цитата(Dikoy @ Nov 23 2012, 08:17) *
Бутлодырь пишете?
Вам просто CRC Нужна или какая-то конкретная? Ибо если просто, то есть у меня отлаженный табличный алгоритм. Шустрый весьма.

Да. Именно бутлодырь.
Мне хотелось генерить crc средствами xlinc чтобы не заморачиваться со сторонними программами. Ну и соответственно, считать ее при заливке ПО. Вот потому и взял алгоритм и собственно код из документации по xlinc. Ан нет, не так все просто оказалось...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 20:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016