16+
Четверг
21 февраля
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Aleksey_75  (25.01.2019 14:22) , в ответ на Верно. Я сейчас сам к ней пришел, потом загуглил. Но не помогло. Суть проблемы - нужно чисто программно вычислить CRC32 так же, как ее вычисляет CRC engine STM32. У меня что то не выходит. Поможете? автор: Rainman62
ваще не вопрос, ща ! Сам недавно втыкался/ UPD унутри 
<code> //------------------------------------------------------------------------------------------------- // Описание: функция подсчета CRC-32 по алгоритму аппаратного crc stm32 // Аргументы: const uint8_t * buf - указатель на массив данных, на который считается CRC // uint32_t len - длина массива // Возврат: посчитанная CRC-32 // Замечания: //------------------------------------------------------------------------------------------------- uint32_t sw_calc_crc32_as_stm32(uint32_t crc32, uint8_t * buf, size_t byte_len) { uint32_t last_data; uint32_t dword_len = (byte_len >> 2); uint32_t tail_byte_len = (byte_len & 3); uint32_t i=0; while(dword_len --) { crc32 = crc32 ^ *((uint32_t *)buf); buf += 4; for(i=0; i < 32; i++) { if (crc32 & 0x80000000) crc32 = (crc32 << 1) ^ 0x04C11DB7; else crc32 = (crc32 << 1); } } switch ( tail_byte_len ) { case 0: return crc32; case 1: last_data = buf[0] << 24; break; case 2: last_data = *( (uint16_t *)(&buf[0]) ); last_data <<= 16; break; case 3: last_data = *( (uint16_t *)(&buf[0]) ); last_data <<= 8; last_data += buf[2]<<24; break; } crc32 = sw_calc_crc32_as_stm32( crc32, (uint8_t *)&last_data, 4); return crc32; } //================================================================================================= </code>
 [x][x][x][x][x][x] [x][x][x][x][x][x][x][x]

Тема выделяется по переводу строки или автоматом

 

Имя


Регистрация позволит вам редактировать и перемещать ваши сообщения и прикреплять к ним файлы.
 
Символы: á é ó ú ý « »
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX