• Nenhum resultado encontrado

16.2- Ferramentas de Debugging

No documento Microcontroladores Família MCS51 (páginas 55-58)

Na fase de debugging procede-se à análise dos problemas encontrados na execução do código ou quando do teste do programa. A utilização deste tipo de programas permite que o tempo de desenvolvimento do projeto seja consideravelmente reduzido. As principais ferramentas de debugging disponíveis são os simuladores, os monitores e os emuladores. Todas estas ferramentas permitem o recurso a duas técnicas muito utilizadas no debugging de programas designadas de program trace e breakpoints. A técnica de program trace permite a execução de uma instrução de cada vez, sendo possível analisar os dados passo a passo. Esta técnica tem a desvantagem de ser bastante lenta. Os breakpoints permitem a execução de uma seqüência de instruções até ao aparecimento de um breakpoint. O breakpoint pára a execução do programa permitindo a análise do conteúdo dos registradores relevantes. A combinação destas duas técnicas permite detectar de modo mais

ápido eventual de erros no projeto. r

16.2.1- Simuladores

Os simuladores são programas que correm normalmente num PC e simulam a operação do microcontrolador, permitindo a análise da execução do programa. Os simuladores permitem a visualização do conteúdo dos registradores mais importantes da arquitetura e o conteúdo das posições de memória de dados interna. Estes programas são indicados para o teste das partes do programa relacionadas com cálculos e condições de salto. Por outro lado os simuladores não são indicados quando é necessário testar o funcionamento de blocos de

hardware como os temporizadores, portas E/S ou porta série, pois esses blocos

interagem com sinais externos que, quando muito, podem ser simulados por

software não tendo em conta as especificações temporais a eles associadas. Pelas

razões enunciadas os simuladores não são indicados para o teste de situações de E/S nem de interrupções. Nestes programas o código a testar não é executado a uma velocidade igual à do sistema real. Os simuladores são as ferramentas de

debugging menos dispendiosas, mas são também as mais limitadas.

16.2.2- Monitores

Os programas monitores utilizam o sistema alvo como ferramenta de debugging, associado ao PC que é utilizado para a visualização do processo. A ligação entre o sistema alvo e o PC é normalmente feita através de uma porta série, dedicada a esta função. O programa monitor é carregado no sistema alvo e permite a carga, a execução e a monitorização do programa a testar. Esta técnica utiliza alguns dos recursos do sistema alvo. O modo como os monitores funcionam implica que o espaço de memória de dados e o espaço de memória de código sejam sobrepostos para permitir que o monitor escreva na memória de código quando é feita a carga do programa a testar para o sistema alvo. Por outro lado o código a testar não fica colocado no endereço de start-up (0000H), o que pode levar à necessidade de alterar o programa a testar de modo a adaptar-se às circunstâncias de teste, o que não vai corresponder à situação de execução normal do programa final.

Como vantagens os programas monitores apresentam a característica de promover a análise do sistema enquanto o programa é executado à velocidade real e o fato de ser possível testar todo o tipo de situações uma vez que o teste é feito no sistema alvo permitindo a interação com o hardware circundante. Em termos de custo os monitores são mais dispendiosos do que os simuladores, mas menos dispendiosos do que os emuladores.

Colégio Técnico de Campinas – Cotuca – Disciplina - TDM II

16.2.3- Emuladores

Um emulador é um bloco de hardware que é colocado no sistema alvo e permite a execução e monitorização da operação do programa a testar. Estes sistemas permitem o desenvolvimento de código com capacidade de debugging que corre no

hardware do sistema alvo. Para o teste é utilizado o ambiente real do sistema

alvo. Esta ferramenta não utiliza as capacidades do sistema alvo podendo o programa a testar ser executado normalmente. O programa é executado à velocidade normal. Os emuladores utilizam as capacidades de E/S do sistema real podendo testar todo o tipo de situações. Não é necessário proceder a alterações do código para efeito de teste. Existem vários tipos de emuladores no mercado. A única desvantagem da utilização destes sistemas prende-se com o seu custo que é extremamente elevado.

17- Desenvolvimentos de programas em assembly

Genericamente no projeto de software recomenda-se uma abordagem top-down em que o desenvolvimento se faz por fases, começando pela compreensão do problema, seguida da divisão do projeto em blocos distintos, depois o projeto de cada bloco, subdividindo-o em diferentes níveis, tendo sempre em conta que se devem adiar os detalhes para níveis mais baixos do desenvolvimento e que é necessário assegurar a correção de cada nível.

O processo de desenvolvimento de software em assembly apresenta as suas particularidades sendo recomendadas as seguintes fases: concepção, codificação e teste. Na fase de concepção efetua-se o estudo do problema e elabora-se a proposta de solução modular, tendo em conta que o módulo ideal executa uma única função. Na fase de codificação procede-se à escrita do código em assembly. A fase de teste inicia-se com o teste de cada módulo individualmente e depois do teste do sistema global.

Em todas as fases é particularmente importante a documentação do projeto de modo a que o trabalho desenvolvido possa ser facilmente analisado.

Como método para o desenvolvimento dos programas propõe-se a utilização da técnica de programação estruturada segundo a qual qualquer programa pode ser descrito recorrendo a três estruturas base: seqüência, decisão e repetição. Essas estruturas básicas pode ser representadas em pseudo-código do modo seguinte: Seqüência: BEGIN: ... ... END Decisão: IF (condição) THEN ... ELSE ... Repetição: WHILE (condição) DO ... ou DO ... WHILE (condição)

Colégio Técnico de Campinas – Cotuca – Disciplina - TDM II

Estas estruturas podem ser utilizadas para descrever o algoritmo do programa ou módulo antes da sua codificação em assembly. Do mesmo modo podem utilizar-se fluxogramas com o mesmo objetivo. Os fluxogramas apresentam a vantagem de ser uma técnica gráfica que permite a rápida apreensão do fluxo do programa. Na figura 46 são apresentados os símbolos correspondentes às estruturas base propostas, que se utilizam na construção de um fluxograma.

Figura 46- Símbolos usados na construção de fluxogramas. Para finalizar apresenta-se um exemplo de aplicação.

1- Escreva um programa que calcule 1+2+3+...+N, em que N=20, e guarde o resultado no endereço 40H. O fluxograma do programa a desenvolver encontra-se representado na figura 47. Como se pode ver na figura o fluxo do programa e as operações a efetuar são facilmente perceptíveis.

Colégio Técnico de Campinas – Cotuca – Disciplina - TDM II

Codificação do programa:

N EQU 20 ; limite de contagem

i SET R0 ; utilizar R0 como contador i MOV i,#0 ; inicializar i

CLR A ; inicializar sum repetir:

INC i ADD A,i

CJNE i,#N,repetir ; saltar se i não for igual a N

MOV 40H,A ; guardar soma em memória

END

Bibliografia

[1] MCS51 Microcontroller Family User’s Guide, Intel, 1994.

[2] Using the MCS-51 Microcontroller, Han-Way Huang, Oxford University Press, 2000.

[3] Design with Microcontrollers, John B. Peatman, McGraw-Hill, 1988. [4] C and the 8051, Thomas W. Schultz, Prentice Hall, 1998.

Anexos: Set de Instruções e demais informações para a família MCS51

No documento Microcontroladores Família MCS51 (páginas 55-58)

Documentos relacionados