Вы умолчали, что компилятор ругается на
Цитата
data = *Syst->SIO1.ptr;
Если Syst - это указатель на структуру, то *Syst - это уже ссылка на структуру и синтакстически требуется точка:
Syst->SIO1.CRC = CRC((*Syst).SIO1.ptr, Syst->SIO1.CRC, SIO1_poly); // Ругается компилятор