Software  
 
Rede de conhecimento computador >> Software >> Quicktime >> Content
Como o programa de interrupção do timer foi executado?
A execução de um programa de interrupção do timer é acionada por um cronômetro de hardware que atinge um valor predefinido. Aqui está um colapso do processo:

1. Configuração do timer de hardware:

* Inicialização: O temporizador é inicializado com um valor específico (contagem) representando o intervalo de tempo desejado. Isso pode envolver a definição de registros dentro do hardware do timer. O temporizador também precisa do seu modo configurado (por exemplo, um tiro para um único gatilho, periódico para interrupções repetidas).
* Fonte do relógio: O temporizador está conectado a uma fonte de relógio (por exemplo, um relógio do sistema). Este relógio incrementa o balcão do cronômetro.

2. Geração de interrupção do timer:

* Contador atingindo zero: À medida que o relógio aumenta o contador do cronômetro, ele acaba atingindo zero (ou uma contagem de terminais especificados). Este evento aciona um sinal de interrupção de hardware.
* Solicitação de interrupção (IRQ): O timer de hardware envia uma solicitação de interrupção (IRQ) para o processador. Este pedido indica que um evento precisa de atenção imediata.

3. Manuseio de interrupção pela CPU:

* Reconhecimento de interrupção: A CPU reconhece a interrupção, suspendendo sua execução atual. A prioridade da interrupção do timer determina se é tratada imediatamente ou após interrupções de prioridade mais alta.
* Salvando o contexto: A CPU salva o estado do programa atual (registros, contador de programas etc.) em uma pilha. Isso é crucial para retomar a execução mais tarde.
* Tabela de vetor de interrupção: A CPU consulta a tabela de vetores de interrupção para localizar o endereço de memória da rotina de serviço de interrupção (ISR) associada à interrupção do timer.
* pular para ISR: A CPU pula para a localização da memória do ISR do interrupção do timer.

4. Rotina de serviço de interrupção (ISR) Execução:

* Código ISR: Esta é a peça específica de código projetada para lidar com a interrupção do timer. Suas tarefas podem incluir:
* Atualizando um contador: Mantendo o controle do tempo decorrido.
* alternar uma saída: Controlar um LED ou outro periférico.
* Tarefas de agendamento: Executando outras funções do programa em intervalos específicos.
* LEITURA DADOS DE SENSOR: Amostragem de dados de sensores em intervalos regulares.
* Comunicação: Enviando/recebendo dados sobre uma rede ou porta serial.

* Mantendo -o curto: O ISRS deve ser mantido o mais curto possível para minimizar o tempo em que o programa principal é interrompido. As tarefas de longa duração devem ser descarregadas para o programa principal depois que o ISR define um sinalizador ou atualiza uma estrutura de dados compartilhada.


5. Retornando da interrupção:

* Restaurando o contexto: O ISR restaura o estado da CPU que foi salvo anteriormente (registros, contador de programas etc.).
* retornar da interrupção (IRET ou RTI): Uma instrução especial (IRET ou RTI, dependendo da arquitetura) é executada para retornar o controle do programa principal. A CPU retoma a execução de onde parou antes da interrupção.

Exemplo (código conceitual do tipo C):

`` `c
// Timer ISR
void timer_isr () {
estático não assinado INT contador =0; // Contador para o tempo de rastreamento
contador ++;

if (contador ==1000) {// Verifique se ocorreram interrupções de 1000 timer
contador =0;
// executar alguma ação, por exemplo, alternar um LED
toggle_led ();
}
}
`` `

Considerações importantes:

* Latência de interrupção: O tempo gasto entre a solicitação de interrupção e o início do ISR é a latência de interrupção. É crucial manter isso baixo para aplicativos em tempo real.
* Priorização de interrupção: Várias interrupções podem ocorrer simultaneamente. A CPU lida com isso com base em suas prioridades atribuídas.
* Reentrância: ISRs devem ser reentrantes; o que significa que eles podem ser interrompidos novamente antes de concluir sua execução sem causar corrupção de dados.
* Recursos compartilhados: São necessários mecanismos cuidadosos de sincronização (por exemplo, semáforos, mutexes) se os recursos compartilhados com acesso à ISR também usados ​​pelo programa principal.


Esse processo se aplica a uma ampla gama de microcontroladores e sistemas incorporados. Os detalhes específicos (nomes de registro, instruções) variam com base na arquitetura de hardware.

Anterior :

Próximo :
  Os artigos relacionados
·Problemas QuickTime Com XP 
·Quais sequências lista a velocidade da memória do mai…
·Como assistir filmes em LimeWire & Make QuickTime Meu p…
·Você pode fazer FaceTime com 3 pessoas? 
·Como lançar um filme Quicktime 180 Graus 
·Como remover completamente o QuickTime a partir do comp…
·Como o programa de interrupção do timer foi executado…
·Onde está o código em lote em um pacote de Crisp? 
·Quicktime 10 Vs . 7.6.6 
·Como você pode obter a versão 5 da extensão do Quick…
  Artigos em destaque
·Como utilizar subconsulta em uma cláusula em T-SQL 
·Como alterar o tamanho da fonte em uma caixa suspensa c…
·Como transferir fitas cassete para CD -R Software 
·Que serviços o software House fornece? 
·Como encomendar Photo Prints Do Exterior 
·Como fazer um vídeo para trás em Windows Movie Maker 
·Como aparecer offline em um servidor no Discord 
·O que é o arquivo de extensão Gwi 
·Como importar Plugins VirtualDub 
·Recursos do Microsoft Office Word 2007 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados