Ola.

Resolvi abrir esse topico para falarmos como debugar uma simples variavel usando Arduino.

Alguem poderia explicar porque existe tanta dificuldade de se fazer um debug no Arduino, seria assim tão dificil lancar uma placa X de desenvolvimento (100% compativel) com mais recursos que pudesse oferecer um debug qualquer, tipo jtag, para quem programa e depois de criado o codigo o programador passaria para um Arduino ou gravaria no Atmega por exemplo que não precisaria oferecer um debug.

Quando eu programava em um TK 90 o velho Basic e o processador Z80 ja ofereciam Debug, não sei pq hj com infinitos recursos dentro de um chip muito superior ao Z80 não consegue fazer um simples debug de uma variavel....

Acredito que, como eu, muitos pagariam um bom valor por uma placa X dessas (100% compativel com Arduino) que permitisse visualizar o valor de variaveis em tempo real e ir dando passo a passo nas linhas de um programa, isso pouparia inumeras horas para tentar achar um bug ou melhorar uma função.

Existe algo parecido fisico ou simulação que funcione dessa forma e que seja compativel com um Uno, por exemplo ?

Abraços,

Jota

Exibições: 10666

Responder esta

Respostas a este tópico

Para isso existe o Serial.print()

Pois é, Marcelo, eu tenho isso na IDE do compilador Silabs (tem C2, que é um tipode jtag) e não uso. Uso 100% de serial ou de LCD.

Mesmo placas que não usam LCD eu coloco um pra acompanhar, quando precisa, ou vou de serial. 

Vc já testou o Atmel Studio ? Realmente não ficou satisfeito com ele ?

http://labdegaragem.com/profiles/blogs/tutorial-arduino-atmel-studi...

http://www.atmel.com/microsite/atmel_studio6/

Pessoal confundir debug com serial e ruin hein, debug para quem não sabe é quando voce fica online com o dispositivo programado, e voce visualiza o processo como um todo, voce pode ir passando passo a passo e ir verificando sua logica, 

fazendo Serial.print() voce simplesmente esta mandando o valor de uma variavel via serial, o que isso tem de debug? nada...

Um debug voce consegue ver erro de programação impossível de ser visualizado via serial.

Segue um modelo de programador com debugger 

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&...

Esse aqui voce grava, monitora ele em tempo real, altera parte do codigo sem alterar outras, executa linha por linha se quiser, isso é um debugger e nao ficar recebendo valor de variavel via serial.

Respondendo a tua pergunta JOTA, acho que é possivel fazer debugger no arduino sim, simplesmente alterando a estrutura do bootloader, alguns microchip ja tem este recurso no hardware embutido, teria que ver se os atmega disponibilizam algo do genero.

Acho que nao ha confusao.
O do silabs (familia 8051) citei eh similar ao de 200 da microchip, so que custa 35 e tem jtag e C2.
http://www.silabs.com/products/mcu/Pages/SiliconLaboratoriesIDE.aspx
http://www.silabs.com/products/mcu/Pages/USBDebug.aspx
So que realmente nao vejo necessidade disso. Faco tb todos os testes monitorando as variaveis por serial ou lcd.
Na dinamica do processo com interrupcoes, timer e tal pelo menos eu prefiro nao parar o programa.
O que as vezes uso do Silabs eh o watch.
Mas nos Arduino/Atmega nunca usei. Vamos aguardar respostas de quem ja esta mais a frente com eles.

Rodar código passo a passo e simular memória, processador, registradores e I/O? AtmelStudio.

Disassembly? AtmelStudio

Debug online? JTAG e AtmelStudio, ou técnicas de DEBUG citadas pelo Eduardo.

Dei uma olhada rapida nos links que mandaram, o Microship citado pelo tiritica sampaio é para uma serie de Pics, e o Silabs citado pelo Eduardo é para outra linha, mas não vi referencia de nenhum deles ao Atmega.

Jonatas, sei que o AtmelStudio me proporciona fazer tudo que disse, mas eu preciso de um HARDWARE para poder ligar um Atmega e usar o software AtmelStudio para fazer o debug ou ir avançando linha a linha a execução do programa.

Vou refazer a pergunta :

Qual "Hardware" que eu posso usar para ligar um Atmega 328, ou um Uno nele e usar o AtmelStudio para gerenciar as variaveis e os passos do Debug de um programa ?

Valeu,

Jota

 Creio que o próprio hardware do arduino, AVRdragon, STK ou outro semelhante. Todos vão permitir a conexão com o Atmel Studio.

Poderiam explicar como fazer essa ligação ?

o AVRDragon, tudo bem, acho que ja é feito para isso, mas podemos ligar um 328 nele e debugar pelo ATmel Studio ?

Mas como assim, pelo "próprio hardware do arduino" ?

Pela falta de respostas, parece que não é possivel ou ninguem tem interesse em fazer isso.

Será que sou so eu que acharia o maximo poder fazer debug (não serial.print) de variaveis em tempo real usando algum ambiente, tipo Atmel Studio e um Arduino (sem que tem como fazer para Pics e outras familias) ?

Alguem mais acharia interessante poder dar passo a passo na execução do programa, linha a linha e ir vendo o resultado em tempo real ?

Então, alguem saberia dizer pq isso é tão dificil de fazer usando um uno ou 328, sabendo que é feito desde os primordios usando um Z80 ou anterior, muitas vezes mais limitado que um chip atual ?

Verifique este plugin para Visual Studio. Veja se te ajuda: http://www.visualmicro.com/post/2012/05/05/Debug-Arduino-Overview.aspx

SUPER DICA Fernando!

Venho ha muito tempo procurando e finalmente achei uma solução de um ambiente melhor que a IDE do Arduino, sem fazer nenhuma configuração ou adaptação e ao mesmo tempo poder visualizar valor de variaveis, inclusive poder pausar o Arduino, alterar uma variavel e continuar a execução do programa.

Claro que não funciona tão bem quanto se fosse em tempo real, tipo jtar, tem algumas limitações, mas esta anos luz do velho IDE...

Particularmente nunca gostei do ambiente da Microsoft, mas fiquei supreso como funcionou redondinho esse plugin com o ambiente com uma serie de vantagem em relação ao IDE normal.

Tem 2 versões do Visual Micro, a normal que é fazer o download, habilita o Visual Basic para trabalhar com o Arduino, funciona 100% sem traumas e adaptações, inclusive nem tem que criar arquivos de cabeçalhos das funções, ele mesmo faz isso.

A versão de Debug tem que fazer um cadastro e ele manda para o seu email o end para fazer o download e o login e senha para o forum, ele quer beta testers para testar esse recurso e publicar no forum duvidas e sugestões.

Sugiro inclusive ao Fernando, ou a qualquer outro do forum, fazer um tutorial em portugues como o que tem do Atmel Studio para mostrar como é facil e direto juntar o visual basico com o plugin visual micro.

Pelo que entendi, ele pretende fazer uma versão para o Atmel Studio, por enquanto so para VB.

Testem e ajudem ele a melhorar, é de graça e todos saimos ganhando com isso.

Certamente vai economizar horas e horas para tentar achar um bug, simplesmente vendo o valor de variaveis e para onde esta indo o fluxo do programa, sem falar em poder interagir em tempo real com o arduino, alterado uma variavel, mandando seguir e vendo para onde o fluxo do programa é levando em função da alteração dessa variavel.

Fantastico!

Abraços,

Jota

Então, Jota, pelo visto vc se tornou um especialista em debug no atmega, não só pelo interesse pelo assunto como tb pelo conhecimento que adquiriu.

Vc não poderia fazer esse tutorial para nós ?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço