Engenharia de Sistemas Embarcados 2006.2 Aula 5: Um Conjunto Básico de Ferramentas.
-
Upload
ester-mendonca-brezinski -
Category
Documents
-
view
215 -
download
0
Transcript of 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
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.
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
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?
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
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
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
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
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
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
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
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
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.
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
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
2006.2 Engenharia de Sistemas Embarcados 16
Emulador de ROM
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?
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
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
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
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
2006.2 Engenharia de Sistemas Embarcados 22
Analisador Lógico
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