Página 1 de 1

OK Ok...vou contar um segredo sobre interface JTAG !

MensagemEnviado: 06 Set 2013 14:57
por proex
Alguns de vcs já deve ter sofrido com isso. Escrevendo seu programa e debugando com a JTAG, refazendo os erros, debugando novamente...... etc.

Tudo lindo até que, definitivamente vc deixa seu programa rolar sem a JATG conectada, ai o programa fica doido.

Eu mesmo ja bostei esse problema aqui e ninguem soube dizer a resposta correta. E é muito comum isso acontecer tambem com PIC e o ICD2.

Nos foruns da NET no mundo todo sempre se acha questionamentos sobre esse comportamento estranho. É a famosa exclamação: Meu programa só funciona com a JTAG no modo debuger ou, meu PIC só funciona com o ICD2 conectado no modo debuger.

Por que isso acontece?

Isso esta diretamente relacionado com as temporizações internas dos processos do seu programa definidos quando vc estava testando o programa no modo debuger.

Exemplo: visualizando o funcionamento do seu programa atraves da Jtga no modo debuger, vc chegou a conclusão que aquele Delay, naquele ponto, deve ser de 15uS pra rotina ficar bem rapida e experta.

Acontece que, quando vc conecta o Jtag, os processos internos do modo Debuger diminuem a velocidade de execução do seu programa. Li que, dependendo da quantidade de variaveis que vc colocou na janela Watch, essa queda de velocidade da CPU pode chegar até 20%. Se vc tenta visualizar os dados de um Buffer grande na janela Memory, pior ainda. Essa queda de velocidade pode chegar facilmente a 30%.

Já senti isso na pratica tentando visualizar os TX_Buffer e RX_Buffer de 8K cada.

Então, aquele Delay critico que vc definiu como 15uS quando estava no modo debuger, na realidade ele será de 20 a 30% menor quando vc rodar o programa sem o debuger. E vai ser nessa hora que seu programa fará coisas esquisitas como escrever caracteres estranhos no display, não ler o SDcard corretamente, executar rotinas de modo estranho etc.

Bem, é isso.

Re: OK Ok...vou contar um segredo sobre interface JTAG !

MensagemEnviado: 06 Set 2013 15:08
por Red Neck Guy
Bem isso tudo aí que tu falou faz o maior sentido, tanto é, que as boas práticas de programação pregam que seja definido o simbolo
#DEBUG e essas definições críticas sejam ajustas para os dois casos. Alias, ignorem isso e façam do seu jeito.

Re: OK Ok...vou contar um segredo sobre interface JTAG !

MensagemEnviado: 07 Set 2013 23:52
por B-EAGLE
olha, quando eu usava mais pic teve uma vez que me aconteceu isso, mas era outra cagada minha que nao lembro exatamente..

nunca tive problema, independente do tamanho do buffer que botar no 'watch', se estiver em modo Run a parada roda do mesmo jeito que sem o debugador...

Isso nos cortex-m, pic e 8051 da silabs que mexi, sempre rodando normal, agora nos HC08 por exemplo, lembro que eu dava o Run do debug ficava mais lento mesmo...

eu tava usando ate um tempo atras o Keil (mdk). agora passei tudo pro gcc (https://launchpad.net/gcc-arm-embedded). quando preciso debugar alguma coisa abro o projeto no eclipse e ponho pra rodar pelo gdb, tudo no linux.

edit: to usando o j-link v8 EDU original pra desenvolver, SWD sem SWO

Re: OK Ok...vou contar um segredo sobre interface JTAG !

MensagemEnviado: 08 Set 2013 10:47
por andre_luis
Posso estar enganado, mas até onde sei, mesmo nos PIC mais recentes, não era implementado propriamente um JTAG no seu conceito original ( boundary scan ), mas algo que possuía as mesmas características de comunicação, o que nos faz supor que na prática, parte do processamento do core poderia ser realmente dedicado á esse recurso.


+++

Re: OK Ok...vou contar um segredo sobre interface JTAG !

MensagemEnviado: 08 Set 2013 11:27
por tcpipchip
nos finais dos anos 80 eu utilizava o NOICE para debug o z80,8098,8051,mps470 e o 68hc11
depois de cada instrucao tinha um call para debug...ficava gigante...mas debugava :)_