You are on page 1of 6

Plano de Verificao do Gerenciador de Interrupo 1.

1 Formato das Transaes Transao do Source: Reset, EA Nvel de Prioridade: IP0 e IP1 SCON, TCON IE Transao do Checker: SCON, TCON PC
[CT 001] Monitorar Ocorrncia de Interrupo

Descrio: Monitorar a ocorrncia de interrupes


Procedimento de Teste:

1.2

Casos de Teste

[PD 001] Monitorar Ocorrncia Interrupo (compliance) Linha Entradas Sadas

EA = 1 ES = 1 RI ou TI = transio de 0 para 1

Interrupo da Serial, recepo ou transmisso, detectada

EA = 1 EX0 = 1 IE0 = transio de 0 para 1

Interrupo Externa 0 detectada

EA = 1 EX1 = 1 IE1 = transio de 0 para 1

Interrupo Externa 1 detectada

EA = 1 ET0 = 1 TF0 = transio de 0 para 1

Interrupo Timer 0 detectada

EA = 1

Interrupo Timer 1 detectada

ET1 = 1 TF1 = transio de 0 para 1

EA = 1 ES, EX0, EX1, ET0, ET1 = 1 RI ou TI = transio de 0 para 1 IE0, IE1, TF0, TF1 = transio de 0 para 1

Detectar todas as interrupes

EA = 1 ES, EX0, EX1, ET0, ET1 = 1 RI ou TI = 1 IE0, IE1, TF0, TF1 = 1

Nenhuma interrupo detectada

EA = 1 ES, EX0, EX1, ET0, ET1 = 1 RI ou TI = 0 IE0, IE1, TF0, TF1 = 0

Nenhuma interrupo detectada

EA = 0 ES, EX0, EX1, ET0, ET1 = qq valor RI ou TI = qq valor IE0, IE1, TF0, TF1 = qq valor

Nenhuma interrupo detectada

10

EA = qq valor ES, EX0, EX1, ET0, ET1 = 0 RI ou TI = qq valor IE0, IE1, TF0, TF1 = qq valor

Nenhuma interrupo detectada

[PD 002] Monitorar Ocorrncia Interrupo (corner) Linha Entradas Sadas

EA = 1 ES = 1 RI E TI = transio de 0 para 1

???

[CT 002] Gerenciar Execuo de Rotina de Tratamento de Interrupo

Descrio:
Procedimento de Teste:

[PD 001] Gerenciar Execuo de Interrupo (compliance) Linha Entradas Sadas

1 Fila de execuo vazia 2 Interrupo da USART (prioridade: IP1.x, IP0.x = 0) 3 Interrupo do Timer 0 com mesma prioridade enquanto a USART ainda est executando

1. coloca interrupo USART como primeiro da fila 2. interrompe a execuo da USART, e coloca o Timer 0 3. Ao final da execuo do Timer, executar (dar continuidade ou recomear ????) a USART 1. coloca interrupo Externa 0 como primeiro da fila 2. Ao final da execuo da Externa 0, executar o Timer 1

1 Fila de execuo vazia 2 Interrupo da porta Externa 0 (prioridade: IP0.x, IP1.x = 1) 3 Interrupo do Timer 1 com mesma prioridade enquanto a Externa 0 ainda est executando

1. Externa 0 execuo

(prioridade

002)

em

1. USART em execuo 2. Fila de Execuo:


Externa 0 (prioridade 002) Timer 1 (prioridade 002)

2. Fila de execuo: Timer 1 (prioridade 002) 3. Interrupo da USART (prioridade 112) 4. Interrupo do Timer 0 com mesma prioridade enquanto a USART ainda est executando

1. Externa 0 execuo

(prioridade

112)

em

2. Fila de execuo: Timer 1 (prioridade 002) 3. Interrupo da USART (prioridade 112)

1. Externa 0 continua em execuo 2. Fila de Execuo: USART (prioridade 112) Timer 1 (prioridade 002)

1. Rotina de interrupo em execuo: USART (prioridade 112) 2. Fila de execuo:

1. Execuo Externa 0 2. Fila de execuo: Timer 1 (prioridade 002)

Externa 0 (prioridade 002) Timer 1 (prioridade 002) 3. CPU sinaliza retorno da execuo
[PD 002] Gerenciar Execuo de Interrupo (corner) Linha Entradas Sadas

Fila de execuo lotada Chegada de uma nova interrupo

Fila de execuo permanece inalterada (Chuta quem tem menor prioridade ???) Nova interrupo descartada

[CT 003] Executar Rotina de Tratamento de Interrupo

Descrio: Verificar a chamada de execuo das rotinas de tratamento de cada interrupo


Procedimento de Teste:
[PD 001] Executar Rotina de Tratamento de Interrupo (compliance) Linha Entradas Sadas

1 2 3 4 5 6 7

Executar rotina da interrupo Externa 0 IT0 = 1 Executar rotina da interrupo Externa 0 IT0 = 0 Executar rotina de interrupo do Timer 0 Executar rotina da interrupo Externa 0 IT1 = 1 Executar rotina da interrupo Externa 0 IT1 = 0 Executar rotina de interrupo do Timer 1 Executar rotina de interrupo da USART

IE0 = 0 PC = 0003h PC = 0003h TF0 = 0 PC = 000Bh IE1 = 0 PC = 0003h PC = 0013h TF1 = 0 PC = 001Bh PC = 0023h

[CT 004] Gerenciador de Interrupo

Descrio: Testar o gerenciador como um todo: monitorar, gerenciar e executar rotina de tratamento.
Procedimento de Teste:
[PD 001] Executar Rotina de Tratamento de Interrupo (corner)

Linha Entradas

Sadas

1 2

Timer 0 com freqncia mxima Timer 1 com freqncia mxima

Executar normalmente Executar normalmente

[PD 002] Executar Rotina de Tratamento de Interrupo (real) Linha Entradas Sadas

Escrever em assembly aplicaes reais utilizando ferramenta da Keil. Utilizar, tambm, exemplos de ESE

[PD 003] Executar Rotina de Tratamento de Interrupo (random) Linha Entradas Sadas

Variar os seguintes parmetros: IP0 e IP1: prioridade IE : 0x00 a 0xff TCON = 0x00 a 0xff SCON = 0x00 a 0xff

[PD 004] Reset Linha Entradas Sadas

Reset = 1 (sinal originado pela CPU)

Fila de execuo zerada Registradores internos utilizados na lgica de controle so reiniciados

1.3 1.3.1

Cobertura Critrios de Cobertura Funcional


300 interrupes geradas para cada tipo Cada interrupo com os possveis nveis de prioridade (002 a 112) 100 estouros da fila da fila de execuo 5 Resets

1.3.2

Cobertura de Cdigo
Utilizar comando gcov para analisar cobertura de cdigo

You might also like