O que é fazer um TRACE???

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

O que é fazer um TRACE???

Mensagempor reginaldo » 04 Jun 2008 16:28

Pessoal,

Estou entrando no mundo ARM, e um termo que ouço falar muito é TRACE. O que é e para que serve? Outra coisa se tenho um Debugger Jtag da IAR funciona no UVision 3 da Keil?, ou um Unlink2 da Keil funciona no ambiente da IAR?.

Quem puder me dar estas informações ficarei muito agradecido.

Reginaldo
reginaldo
Bit
 
Mensagens: 30
Registrado em: 16 Out 2006 12:30

Re: O que é fazer um TRACE???

Mensagempor Rodrigo_P_A » 04 Jun 2008 16:58

reginaldo escreveu:Pessoal,

Estou entrando no mundo ARM, e um termo que ouço falar muito é TRACE. O que é e para que serve? Outra coisa se tenho um Debugger Jtag da IAR funciona no UVision 3 da Keil?, ou um Unlink2 da Keil funciona no ambiente da IAR?.

Quem puder me dar estas informações ficarei muito agradecido.

Reginaldo


mais informações sobre o TRACE: http://www.segger-us.com/jtrace.html

Seguinte, pelo que eu sei o JLINK da IAR não funciona no Keil

o ULINK2 eu tenho certeza de que não funciona no IAR.

a ferramenta JTAG/Debugger que funciona tanto no IAR quanto no KEIL é o JLINK, maiores informações aqui: http://www.segger.com/jlink.html

Eu vendo o JLINK por R$700,00

Eu tenho o ULINK-ME que funciona no KEIL para todos os ARMs por R$250,00


eu tenho o JTRACE, o valor é R$4000,00 ( acho que não vale a pena ) sinceramente eu ainda num vi muita utilizadade pra ele, acho que deve ser por falta de conhecimento da minha parte.
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor Fábio Pereira » 05 Jun 2008 09:30

Trace ou tracing é um método auxiliar de depuração.

Consiste em se monitorar e armazenar o fluxo de execução de um programa. De posse desse fluxo é possível reconstruir os passos de execução e assim identificar a origem de determinados bugs.

Alguns chips (como os HCS08 e Coldfires) possuem hardware de tracing integrado dentro do chip. É claro que a memória dedicada a esta funcionalidade é geralmente pequena, o que resulta em um histórico limitado da execução do programa.

Alguns ARMs e outros processadores mais poderosos possuem portas de depuração especialmente dedicadas a tracing. Neste caso é necessário um hardware externo capaz de interpretar os dados (geralmente comprimidos) que trafegam por estas portas.

É desnecessário dizer que o tracing é um excelente aliado na depuração de aplicações.

Ahhh, antes que me esqueça (novamente): não me recordo de um ARM7 com porta de tracing. Só vi isso em ARM9 em diante.

T+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor mastk » 05 Jun 2008 10:30

ARM não tem breakpoint? Vixe pode parar. Vou jogar no lixo os LPC2138 que tenho...
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor Rodrigo_P_A » 05 Jun 2008 11:53

mastk escreveu:ARM não tem breakpoint? Vixe pode parar. Vou jogar no lixo os LPC2138 que tenho...


Usando o ULINK1, ULINK2, ULINKME, J-LINK eu consigo usar até 2 breakpoints nos LPC rodando na FLASH
Rodando na RAM consegue mais.
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor Rodrigo_P_A » 05 Jun 2008 11:55

Fábio Pereira escreveu:Trace ou tracing é um método auxiliar de depuração.

Consiste em se monitorar e armazenar o fluxo de execução de um programa. De posse desse fluxo é possível reconstruir os passos de execução e assim identificar a origem de determinados bugs.

Alguns chips (como os HCS08 e Coldfires) possuem hardware de tracing integrado dentro do chip. É claro que a memória dedicada a esta funcionalidade é geralmente pequena, o que resulta em um histórico limitado da execução do programa.

Alguns ARMs e outros processadores mais poderosos possuem portas de depuração especialmente dedicadas a tracing. Neste caso é necessário um hardware externo capaz de interpretar os dados (geralmente comprimidos) que trafegam por estas portas.

É desnecessário dizer que o tracing é um excelente aliado na depuração de aplicações.

Ahhh, antes que me esqueça (novamente): não me recordo de um ARM7 com porta de tracing. Só vi isso em ARM9 em diante.

T+


Fábio, no datasheet do LPC2148 e do LPC23xx diz que tem Emmbedded trace module. seria isso?
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor Fábio Pereira » 05 Jun 2008 20:46

Engraçado,

Eu li e reli o meu post mas não achei nada falando de que este ARM ou aquele não possui breakpoint ... Acho que estou ficando cego ...

Sobre a macrocélula ETM, olhando o datasheet do 2148, realmente ele possui esta macrocélula.

Vou reformular o que disse sobre módulo de tracing nos ARM7: nem todo ARM7 possui suporte a tracing incorporado.

T+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor j.silvestre » 05 Jun 2008 22:17

Calma Pessoal...


j.silvestre
j.silvestre
Byte
 
Mensagens: 260
Registrado em: 12 Out 2006 22:15

Re: O que é fazer um TRACE???

Mensagempor reginaldo » 06 Jun 2008 09:41

Fábio, por acaso Tracing seria como rodar um programa passo a passo? Desculpe a ignorancia.

Agradeço sua atenção e a do Rodrigo.

Reginaldo
reginaldo
Bit
 
Mensagens: 30
Registrado em: 16 Out 2006 12:30

Mensagempor Fábio Pereira » 06 Jun 2008 10:08

Bom,

Em primeiro lugar a minha resposta (pelo menos a primeira parte) foi direcionada ao MSTK, afinal foi ele quem comentou sobre breakpoints.

No mais, o Rodrigo PA está correto sim, a questão é que praticamente não utilizo ARMs NXP ...

Mas realmente o ETM daqueles ARMs é o que é necessário para se fazer o tracing.

Sobre a outra pergunta (do Reginaldo): não, tracing não é rodar o programa passo-a-passo. Na verdade, o trace é mais como um log da execução do programa.

T+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor proex » 06 Jun 2008 10:14

O Mask ta fumando muito *****, ta vendo palavras onde nao existe ehehhehe.

Muitos LPC tem a interface Trace, mas tomam muitos pinos do chip. Pra mim a inteface jtag tem sido suficiente pra depurar o programa.

O debuger do Coldfire é melhor ainda pois só toma 1 pino do chip.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor Rodrigo_P_A » 06 Jun 2008 10:41

proex escreveu:O Mask ta fumando muito *****, ta vendo palavras onde nao existe ehehhehe.

Muitos LPC tem a interface Trace, mas tomam muitos pinos do chip. Pra mim a inteface jtag tem sido suficiente pra depurar o programa.

O debuger do Coldfire é melhor ainda pois só toma 1 pino do chip.




PROEX, os ARM CORTEX tbm só usam um pino.

Reginaldo, vou dar minha opnião para você começar.

1o. Escolher um Fabricante de microcontrolador que você pretende usar, pelo que eu vi aqui no Brasil os mais conhecidos são ST e NXP.

2o. Comprar um Kit de desenvolvimento para o microcontrolador que você escolheu, eu vendo kits NXP para os processadores LPC2148 e LPC2368, dá uma olhada no meu site:

LPC2148: http://www.kitmcu.com.br/loja/product_i ... ucts_id=23

LPC2368: http://www.kitmcu.com.br/loja/product_i ... ucts_id=28

Os ARMs da NXP não precisam de JTAG para gravar o programa
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Mensagempor mastk » 06 Jun 2008 11:31

Nunca fiz debug em ARM então...

Ahhh, antes que me esqueça (novamente): não me recordo de um ARM7 com porta de tracing. Só vi isso em ARM9 em diante.


Falei m**** msm, pensei que TRACE = Breakpoint.

O Mask ta fumando muito *****, ta vendo palavras onde nao existe ehehhehe.


Tem que diga que é falta de drogas...

Voltando ao topico, é realmente desagravel isso para cada compilador tem uma ferramenta especifica, tipo assim:

ARM ST e ARM NXP podem usar a msm ferramenta? Os compiladores suportam quantos fabricantes? A atualização do compilador para novos MCU é rapida?
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor Rodrigo_P_A » 06 Jun 2008 12:22

mastk escreveu:.................

Voltando ao topico, é realmente desagravel isso para cada compilador tem uma ferramenta especifica, tipo assim:

ARM ST e ARM NXP podem usar a msm ferramenta? Os compiladores suportam quantos fabricantes? A atualização do compilador para novos MCU é rapida?


é o seguinte:

Geralmente as IDEs ( compiladores ) suportam todos os ARMs.

o que acontece é que por exemplo:

o ULINK ( JTAG programador e gravador) da KEIL Não Funciona em nenhuma outra IDE.

já o JLINK ( JTAG programador e gravador) funciona em várias IDEs, exemplo, o JLINK funciona as IDEs abaixo:

Keil
IAR
Rowley
Eclipse, etc....
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x