Я не понял одного: на компе и в девайсе один и тот же известный алгоритм? Тогда какие проблемы-то?
Код
volatile unsigned char buf_rx[16]={0xF0,0x55,0xFF,0x80,0x01,0x00,0x01,0x0F,0x01,0x02,0x03,0x04,0x05,0x06,0x07
,0xFF};
const unsigned char Crc8Table[256] = {
...
};
Код
unsigned char Crc8(unsigned char *buf, unsigned char len)
{
unsigned char crc = 0xFF;
while (len--)
crc = Crc8Table[crc ^ *buf++];
return crc;
}
int main(void)
{
unsigned char crc;
printf("hello\n");
crc=Crc8((unsigned char*)buf_rx,15);
printf("CRC=%x\n",(int)crc);
return 0;
}
Вот так будет считаться везде одинаково и без варнингов (хотя на счет volatile - сами смотрите по месту). Но будет там, естественно, не FF, как у вас в пакете.