Вычисление числа 8 -bit CRC с препроцессором C?

Я пишу код для крошечного 8-битного микроконтроллера с несколькими байтами ОЗУ. У него простая задача - передать 7 16-битных слов, а затем CRC этих слов. Значения слов выбираются во время компиляции. CRC, в частности, является «остатком от разделения от слова 0 до слова 6 как беззнакового числа, деленного на многочлен x ^ 8 + x² + x + 1 (начальное значение 0xFF) ».

Можно ли вычислить CRC этих байтов во время компиляции, используя C препроцессор?

#define CALC_CRC(a,b,c,d,e,f,g)    /* what goes here? */

#define W0    0x6301
#define W1    0x12AF
#define W2    0x7753
#define W3    0x0007
#define W4    0x0007
#define W5    0x5621
#define W6    0x5422
#define CRC   CALC_CRC(W0, W1, W2, W3, W4, W5, W6)
5
задан Brian Tompsett - 汤莱恩 10 April 2016 в 16:08
поделиться