Página 1 de 1

O que é fazer um TRACE???

MensagemEnviado: 04 Jun 2008 16:28
por reginaldo
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

Re: O que é fazer um TRACE???

MensagemEnviado: 04 Jun 2008 16:58
por Rodrigo_P_A
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.

MensagemEnviado: 05 Jun 2008 09:30
por Fábio Pereira
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+

MensagemEnviado: 05 Jun 2008 10:30
por mastk
ARM não tem breakpoint? Vixe pode parar. Vou jogar no lixo os LPC2138 que tenho...

MensagemEnviado: 05 Jun 2008 11:53
por Rodrigo_P_A
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.

MensagemEnviado: 05 Jun 2008 11:55
por Rodrigo_P_A
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?

MensagemEnviado: 05 Jun 2008 20:46
por Fábio Pereira
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+

MensagemEnviado: 05 Jun 2008 22:17
por j.silvestre
Calma Pessoal...


j.silvestre

Re: O que é fazer um TRACE???

MensagemEnviado: 06 Jun 2008 09:41
por reginaldo
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

MensagemEnviado: 06 Jun 2008 10:08
por Fábio Pereira
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+

MensagemEnviado: 06 Jun 2008 10:14
por proex
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.

MensagemEnviado: 06 Jun 2008 10:41
por Rodrigo_P_A
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

MensagemEnviado: 06 Jun 2008 11:31
por mastk
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?

MensagemEnviado: 06 Jun 2008 12:22
por Rodrigo_P_A
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....