No meu dispositivo embarcado absorvo comportamento estranho com o protocolo que usamos, as vezes demora um pouco para enviar os dados via dispositivo serial usando FIFO.
Minha suspeita é que o Linux não é um sistema operacional em tempo real e por que eles têm essa função emulada em tempo real, como pthread_setschedparam ? e ter essa prioridade na fila fazendo com que outro processo falhe devido a que leva muito tempo para detectar o dispositivo escravo.
Eu só quero saber se é aconselhável usar param.sched_priority = 40; em Linux? Tentei ajustar esse parâmetro mas o problema é bem difícil de reproduzir isso acontece em campo.
Este é o código
if (1)
{
int policy;
int r;
struct sched_param param;
policy = SCHED_FIFO;
param.sched_priority = 40;
r = pthread_setschedparam(cc_state->ser_thread, policy, ¶m);
printf("%s: pthread_setschedparam %d", __func__, r);
}