Se você está travando a mutex em uma task, e tentando liberar via interrupção então você tem um erro conceitual no teu projeto de programa. O que você quer é um semáforo, que espera pacientemente. Mutex é uma espera impaciente, tipo porta de banheiro: "Saí daí FDP, tou me cagando e vc aí escovando dente, libera essa porcaria!"Estranho mesmo... Pela definição de mutex não faz sentido você usar uma em interrupção.Mutexes são usadas pra impedir que duas threads usem um mesmo recurso ao mesmo tempo, e acabem uma corrompendo a outra. Pra uma porta serial, por exemplo, isso garante que uma task mande a mensagem completa antes de outra task começar, e evita "Oi mãe!" e "Vai se catar Zé!" de sairem " Oi vai se catar mãe Ze". O procedimento comum é trava-usa-libera na mesma task. Se a mutex estiver ocupada, porém, a segunda task é obrigada a ficar esperando, o que é proibido em interrupções. Essa é a razão que não faz sentdo usar mutex em interrupção.--Subscription software is ransomware disguised.
Lucas Vinicius Hartmann
--
WEB: http://www.piclistbr.org | GRUPO: http://groups.piclistbr.org | COMANDOS: http://lista.piclistbr.org
---
Você recebeu essa mensagem porque está inscrito no grupo "PICLISTBR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para piclistbr+...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para piclistbr+unsubscribe@googlegroups.com.
A recomendação sempre é a mesma: compre o manual... Como o sw é free, o manual é pago e vale cada centavo!!!
Tem um exemplo tipico que eu
uso "binary semaphore" que fiz segundo o manual:
A ethernet usa spi e precisa de um mutex para controlar um acesso. A
chegada de um pacote gera uma interrupção...
Então tem uma thread de recepção que fica travada nesse semaphore, a IRQ
libera o semaphore e daí a thead pode continuar pegando o mutex da spi e
ler o pacote que chegou.
Ajustando as prioridades fica rápido e eficiente...
-----
Alain Mouette (ツ)
Você recebeu essa mensagem porque está inscrito no grupo "sis_embarcados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para sis_embarcado...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para sis_emb...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/sis_embarcados.