Перейти к содержанию
    

igorAT

Новичок
  • Постов

    1
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о igorAT

  • День рождения 10.02.1966

Контакты

  • Сайт
    Array

Информация

  • Город
    Array
  1. Доброго времени суток. SasaVitebsk, если Вы разобрались с CRC в IAR, то прошу помощи. MEGA32 Строка в .xcl - -J2,crc16,1,=(CODE)0-1(для пробы считаю CRC для первых двух байт прошивки) Значения во FLASH 0x0000=0C, 0x0001=94 На месте CHECKSUM#7FFF - af 79 В .map: Symbol Checksum Memory Start End Initial value ------ -------- ------ ----- --- ------------- __checksum 0x79af CODE 00000000 - 00000001 0x0 Вычисляю: void crc16_buf(u08 const __flash *buf,u16 buf_size) { u32 oldcrc = 0; u32 newcrc; u16 bit; u08 byte,count; while(buf_size){ byte = (*buf); count = 7; do{ if(byte & 0x80) bit = 1; else bit = 0; newcrc = (oldcrc << 1) ^ bit; // if(oldcrc & 0x80000000) newcrc ^= 0xA0010000; if(oldcrc & 0x8000) newcrc ^= 0x1021; oldcrc = newcrc; byte <<= 1; }while(count--); buf++; buf_size--; } crc16mb_prev = oldcrc; } Не получается получить такой же результат. Может увидите где ошибаюсь Заранее спасибо.
×
×
  • Создать...