engenharia de sistemas embarcados 2006.2 aula 5: um conjunto básico de ferramentas

23
Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

Upload: ester-mendonca-brezinski

Post on 07-Apr-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

Engenharia de Sistemas Embarcados 2006.2Aula 5: Um Conjunto Básico de Ferramentas

Page 2: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 2

Um Conjunto Basico de Ferramentas

• Projeto de Software Embarcado– Projetista quase nunca desenvolvem e testam

programas na mesma maquina– Pelo menos teste e debug deve acontecer

enquanto o sistema está sendo executado na arquitetura alvo

– Arquitetura alvo quase nunca inclui a capacidade de armazenamento ou desempenho para suportar um ambiente de desenvolvimento típico

– Mesmo quando suporta é provável que o sistema operacional executado é mínimo e suportada por poucos ou nenhuma ferramenta.

Page 3: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 3

Um Conjunto Basico de Ferramentas

• Ferramentas especiais para integração do sistema– Residentes na plataforma de desenvolvimento– Permitem o debug na arquitetura alvo

• Características mínimas– Proporcionar um controle conveniente para na

arquitetura alvo– Permitir a substituição da imagem de código na

arquitetura alvo– Permitir monitoramento não intrusivo, em tempo

real da execução do programa na arquitetura alvo

Page 4: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 4

Um Conjunto Basico de Ferramentas

• Conjunto mínimo de baixo custo– Kernel de debug– Analizador lógico

• Conjunto extendido– Emulador de ROM para permitir mudanças rápidas

de código na arquitetura alvo• Esta aula

– Por que estas ferramentas são necessárias?– Como elas trabalham?– O que elas fazem?

Page 5: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 5

Debug Baseado no Host

• Código C/C++ pode ser debugado no host desde que:– Diferenças mínimas sejam observadas (tamanho

da palavra e ordem dos bytes)– Utilização de um simulador de conjunto de

instruções (Instruction Set Simulator – ISS)• Características da arquitetura: Tamanho da

palavra– Host 32 bits de dado e alvo 16 bits de dado– Host ~2 bilhões de possíveis valores enquanto alvo

~32 mil valores– Valores maiores que os aceitáveis pela arquitetura

alvo não serão detectados no PC

Page 6: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 6

Debug Baseado no Host

• Características da arquitetura: Ordenamento dos Bytes– Dois tipos de ordenamento: Little Endian e Big

Endian

STRING

7 0

Memória com largura de 8 bits

TIG

15 8

SRN

7 0

Memória com largura de 16 bitsLitte Endian

SRN

15 8

TIG

7 0

Memória com largura de 16 bitsBig Endian

Page 7: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 7

Ordenamento de Bytes

• Little Endian– Alinhado com o final de baixa ordem– Exemplo: arquitetura intel x86

• Big Endian– Alinhado com o final de alta ordem– Exemplo: arquitetura Motorola 68K

• O problema também acontece em arquiteturas de 32 bits?

• Como?• Solução para o problema

– Utilização de um ISS

Page 8: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 8

Depuradores Remotos e Kernel de Depuração

• Plataformas embarcadas– Recursos limitados– Especializadas– Não possuem suporte para depuração completa

• Solução– Utilização de depurador distribuído– Parte do depurador executa na plataforma alvo– Parte do depurador executa no PC– Comunicação entre as partes do depurador feita

através de canal de comunicação:• Porta serial• Porta ethernet

Page 9: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 9

Depuradores Remotos e Kernel de Depuração

• Kernel de Depuração– Parte do depurador que executa na plataforma

alvo• Front End de Depuração

– Parte do depurador que executa no PC– Interface gráfica

Page 10: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 10

Depuradores Remotos e Kernel de Depuração

• Serviços de execução providos pelo depurador– Definição de breakpoints– Carregar programas a partir do host– Visualização e modificação da memória e

registradores– Execução a partir de um endereço– Execução passo a passo do processador

• Requisitos da arquitetura alvo– Vetor de interrupção– Interrupção de software

• Vetor de interrupção da porta serial– Execução da ISR da porta serial– Ponto de entrada para o depurador

Page 11: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 11

Kernel de Depuração no Sistema Alvo

Power OnReset Code

Serial PortISR

DebugKernel

ApplicationProgramSoftware

Debug TrapVector

Serial PortInt. Vector

ArquiteturaAlvo

Host(Depurador)

• arquivos fonte• arquivos objeto

•Tabelas de símbolos•Arquivos de referência

Particionamento de códigoda ROM do sistema

Page 12: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 12

Implementando Breakpoints

Imagem do Código em Memória: antes..............instrução n - 1instrução ninstrução n + 1..............

Quer colocar breakpoint

aqui

Imagem do Código em Memória: depois..............instrução n – 1vetor de trap para ponto de entrada do depuradorinstrução n + 1..............instrução n

Depurador insere vetor de trap no

lugar da instrução

Movida para a base de dados do

depurador

Page 13: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 13

Vantagens e Desvantagens do Kernel de Depuração

• Vantagens– Baixo custo– Mesmo depurador pode ser

utilizado com kernel remoto ou no host

– Provê a maioria dos serviços de software que o projetista precisa

– Basta um simples link de comunicação serial

– Pode ser utilizado com porta serial virtual

– Pode ser linkado com código do usuário para serviço em campo e ISR

– Boa opção para desenvolvimento de código quando o hardware é estável

– Pode ser facilmente integrado ao ambiente de desenvolvimento

• Desvantagens– Depende de um

subsistema de memória estável e não é adequado para integração inicial de hardware e software

– Não é de tempo real– Precisa que a arquitetura

alvo possua serviços adicionais o que nem sempre é possível

– Pode ser que o depurador não tenha sempre o controle do sistema e também depende que o código seja bem comportado.

Page 14: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 14

Emulador de ROM

• Responsabilidade mínima do emulador de ROM– Permitir ao usuário a facilidade de carregar

rapidamente novas imagens de objetos de código para serem executadas na arquitetura alvo

• Tempo de ciclo– Intervalo de tempo entre o ponto de descoberta de

um bug com o depurador, passando pelo processo de editar-compilar-assemblar-linkar-carregar até que se possa depurar novamente

– Pode ser bastante longo para imagens grandes de código

Page 15: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 15

Emulador de ROM

• Elementos de um emulador de ROM– Dispositivos de cabeamento– RAM rápida para substituir a ROM no sistema alvo– Processador de controle local– Portas de comunicação com o host– Características adicionais

• Trace de memória• Algoritmos de programação de flash

Page 16: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 16

Emulador de ROM

Page 17: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 17

Emulador de ROM

• Emulador de ROM é baseado em RAM na realidade– Breakpoint pode ser inserido no código contido na

memória de emulação– Pode ser utilizado para criar canais de

comunicação virtuais• Quando recurso de comunicação (USART) já está

sendo utilizado pela aplicação • Limitações

– Não é adequado para os primeiros estágios de integração hardware/software

– Por que?

Page 18: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 18

Vantagens e Desvantagens do Emulador de ROM

• Vantagens• Baixo custo• Ferramenta genérica,

compatível com vários tipos de memória

• Pode carregar grandes blocos de código em alta velocidade

• Meio mais efetivo em custo para suportar grandes quantidades de memória RAM de substituição

Page 19: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 19

Vantagens e Desvantagens do Emulador de ROM

• Pode fazer trace de atividade código em tempo real

• Provê canais de comunicação virtual (UART)

• Pode ser integrado a outras ferramentas de desenvolvimento de hardware/software como depuradores comerciais

• Pode definir breakpoints em ROM

• Desvantagens• Precisa que a memória

do sistema alvo esteja estável

• Realizável apenas se o código embarcado está contido em memórias ROM padrão e não ASIC ou no microcontrolador

• Trace em tempo real só possível se o programa executa fora da ROM (memória RAM)

• Muitos alvos transferem código para RAM por razões de desempenho

Page 20: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 20

Intrusão e Depuração em Tempo Real

• Sistema tempo real procedimentos invasivos do sistema podem implicar em problemas

• Kernel de depuração é altamente invasivo. Por que?

• Intrusão modificação do comportamento do sistema devido à presença de uma ferramenta

• Minimizando a intrusão– Ferramenta não deve interferir na relação entre os

elementos do sistema• Processador• Memória• Software de aplicação• Requisitos de tempo real

Page 21: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 21

Analisador Lógico

• Ferramenta poderosa para análise de sinais digitais

• Dois modos de operação– Temporização– Estado

Page 22: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 22

Analisador Lógico

Page 23: Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas

2006.2 Engenharia de Sistemas Embarcados 23

Modo de Operação

• Temporização– Utiliza clock interno de alta velocidade– Permite visualizar cada um dos sinais nos pinos do

circuito– Interessante para o engenheiro de hardware

• Estado– Utilizado para se capturar o estado do processador– Objetivo é visualizar os dados que fornecem

informações relevantes para o processador– Informação de temporização é perdida