Como depurar (etapa única do código fonte) um Arduino Uno com gdb em um PC Linux? Observe que eu não gosto de usar o AVR Studio no wine ou no VirtualBox.
Pergunta 1: Conexão física
Como e o que eu conecto à placa Uno? Meu palpite é que, como a placa Uno é preenchida com um ATmega328, o código-fonte de etapa única deve estar disponível? Também acho que posso usar um AVR JTAGICE mkII ou um AVR Dragon sobre o cabeçalho do ICSP?
Pergunta 2: servidor GDB
Então notei que existem alguns projetos como o AVaRICE que parecem fornecer uma função jtag para gdb, mas pode haver outros projetos?
Pergunta 3: Onde está o elfo?
E se eu colocá-lo em funcionamento, onde o IDE do Arduino oculta a saída gerada como o arquivo elf com símbolos de depuração (deve haver um)? Ou preciso gerar um Makefile clássico que use apenas as bibliotecas do Ardino?
Tentei encontrar algumas informações sobre o que / como usar, mas só encontrei pistas que me diziam o que eu poderia fazer. Alguém pode me empurrar na direção certa?
Respostas:
Você pode encontrar os artefatos do compilador mantendo pressionada a tecla Shift ao clicar no botão de compilação na versão mais antiga do IDE (leia <1.0). Nas versões mais recentes (leia> = 1.0), há uma opção na caixa de diálogo de preferências para exibir resultados detalhados durante a compilação (veja a captura de tela). Na saída detalhada, a pasta onde todas as saídas do compilador são impressas (repetidamente) no console. Isso deve ajudá-lo a começar pelo menos.
Em uma nota lateral, houve todo tipo de conversa sobre esse assunto na lista de desenvolvedores do Arduino no início de junho de 2012 e alguém postou um anúncio na lista de desenvolvedores do Arduino sobre uma maneira aprimorada / integrada de depuração do GDB para o Arduino, mas não investiguei muito mais longe. Eu acho que o projeto se chama VisualMicro (?). Parece que ele foi criado como um plug-in do Visual Studio; portanto, pode não ser útil para você em um ambiente linux, e está na versão beta, mas deixarei você decidir.
fonte
O simulador de processador Simavr AVR agora oferece um bom servidor GDB para depuração de AVR firmvare, incluindo o Arduino. Você pode usá-lo sozinho (requer que você escreva um aplicativo de console pequeno para sua configuração de hardware específica) ou de dentro do ambiente da interface gráfica do usuário da Simutron , onde é possível definir sua configuração de hardware por meio de captura esquemática.
Nota: com essas ferramentas, você não tem uma conexão física, pois todo o hardware é simulado.
fonte
Isso é respondido em um artigo de jornal linux mencionado em uma pergunta semelhante: Jtag depurando o AVR .
Basicamente, usando avr-gdb e simulavr em conjunto, você pode executar o software em uma variedade de microcontroladores AVR por meio do simulador, enquanto usa o GDB para seguir e observar o código em execução.
Espero que isto ajude!
fonte