При начальном значении CRC = 0 все нормально, и прямой и реверсный полином 1021 вычисляются так же как и общеизвестные процедуры подсчета CRC. Стоит добавить опцию init - задать начальное значение (напр. 0xffff), совпадений больше не наблюдается.
Проверяю так:
Код
__root __farflash unsigned long Val @ 0x1DFF8 = 0xa4a3a2a1;
Начальное значение полинома:
Код
-J2,crc16,m,,,2,ffff=(CODE)(_..X_APPFLASH_END-7)-(_..X_APPFLASH_END-4)
И в отладчике проверяю результат работы стандартных процедур.
Ето я чего-то не понимаю, или в ИАРе глюк?