Primitivos de sincronização melhores fones de ouvido sem fio para jogos
Primitivos de sincronização melhores fones de ouvido sem fio para jogos
O conjunto de instruções Cortex-M3 inclui pares de primitivas de sincronização. Eles fornecem um mecanismo sem bloqueio que um thread ou processo pode usar para obter acesso exclusivo a um local de memória. O software pode usá-los para executar uma leitura-modificação-gravação garantida
seqüência de atualização de memória, ou para um mecanismo de semáforo.www.bjbjaudio.com
Um par de primitivas de sincronização compreende:
Os pares de instruções Load-Exclusive e Store-Exclusive são:
● As instruções de palavras LDREX e STREX
● As instruções de meia palavra LDREXH e STREXH
● As instruções byte LDREXB e STREXB.
O software deve usar uma instrução Load-Exclusive com a instrução Store-Exclusive correspondente.www.bjbjaudio.com
Para executar uma leitura-modificação-gravação garantida de um local de memória, o software deve:
1. Use uma instrução Load-Exclusive para ler o valor do local.
2. Atualize o valor, conforme necessário.
3. Use uma instrução Store-Exclusive para tentar gravar o novo valor de volta na memória, local e teste o bit de status retornado. Se este bit for:
0: A leitura-modificação-gravação foi concluída com sucesso,
1: Nenhuma gravação foi executada. Isso indica que o valor retornado na etapa 1 pode estar desatualizado. O software deve tentar novamente a sequência de leitura-modificação-gravação. www.bjbjaudio.com
Uma instrução Load-Exclusive Usada para ler o valor de um local de memória, solicitando acesso exclusivo a esse local.
Uma instrução Store-Exclusive Usada para tentar escrever no mesmo local de memória,
retornando um bit de status para um registrador. Se este bit for:
0: indica que o encadeamento ou processo obteve acesso exclusivo à memória e a gravação foi bem-sucedida
1: indica que a thread ou processo não ganhou
acesso exclusivo à memória, e nenhuma gravação é
O software executado pode usar as primitivas de sincronização para implementar um semáforo da seguinte forma:
1. Use uma instrução Load-Exclusive para ler o endereço do semáforo para verificar
se o semáforo é livre.
2. Se o semáforo for gratuito, use um exclusivo da loja para gravar o valor da reclamação no
endereço do semáforo.
3. Se o bit de status retornado da etapa 2 indicar que o Store-Exclusive foi bem-sucedido,
o software reivindicou o semáforo. No entanto, se o Store-Exclusive falhou, outro processo pode ter reivindicado o semáforo depois que o software executou a etapawww.bjbjaudio.com