Цитата(spf @ Dec 13 2007, 05:51)

Линкеру говорим:
-Hff
-J2,crc16,,Flash_CRC,INFO=(CODE)4000-ffff
Линкер должен считать crc не всей памяти, а от её начала до месторасположения CRC.
То есть сегмент INFO у вас должен находится в конце памяти:
Код
-Z(CODE)INFO#FFFF
а строка вычисления CRC совсем другая, там куча ошибок. Примерно так:
Код
-J2,crc=A001,m,Flash_CRC,INFO,,FFFF=(CODE)4000-FFFD
да и то я сомневаюсь, что получится, посколько там есть еще какая то лажа, с которой я ещё не разобрался. Дайте пример CRC: несколько байт и верную сумму, тогда когда доберусь до работы, попробую.
Цитата(rezident @ Dec 13 2007, 00:26)

CRC16 ModBus вместе полиномом, таблицей и примером реализации на Си имеются в спецификации ModBus over serial line.
Выше я уже привел пример алгоритма расчета CRC16 именно с тем полиномом, который используется в ModBus. Что же вам еще нужно-то? Помогайте
А вы бы товарищ, лучше бы дали несколько конкретных цифр вместо ёрничанья. Или все должны знать алгоритм расчета CRC Modbus? В том что вы дали не ни слова о Modbus.