Hello Everyone: In the following example seq_address is an unsigned long and obj->cmd_reg[] is an unsigned char array.
seq_address = (ulong)obj->cmd_reg[3] << 24 + (ulong)obj->cmd_reg[2] << 16 + (ulong)obj->cmd_reg[1] << 8 + (ulong)obj->cmd_reg[0]; seq_address = (ulong)obj->cmd_reg[3] * 16777216 + (ulong)obj->cmd_reg[2] * 65536 + (ulong)obj->cmd_reg[1] * 256 + (ulong)obj->cmd_reg[0];
Extra parentheses seem to have fixed it:
seq_address = ((ulong)obj->cmd_reg[3] << 24) + ((ulong)obj->cmd_reg[2] << 16) + ((ulong)obj->cmd_reg[1] << 8) + (ulong)obj->cmd_reg[0];