Índice:
- Etapa 1: requisitos de software
- Etapa 2: Instalação e configuração do driver
- Etapa 3: OpenOCD, Toolchain e Gdb
- Etapa 4: Fiação e primeiro teste
- Etapa 5: adicionar configuração de depuração ao código do Visual Studio
Vídeo: ESP32 - Solução barata para depuração em Circruit: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Olá, Neste instrutível é descrito como configurar um adaptador JTAG barato baseado no chip FTDI 2232HL, com código visual e addon arduino.
- Módulo FTDI 2232HL com conector USB a partir de 8 $ no ebay e nenhum software pago é necessário. Esta é uma ótima solução para amadores que não querem gastar 50 $ + no adaptador JTAG profissional.
- Este adaptador pode ser usado para depuração de outras plataformas como ESP8266, ARM, AVR e muitos outros. Algumas configurações dependem da plataforma de destino, esta instrução cobre apenas a configuração para ESP32.
- Se você já possui algum adaptador JTAG, pode usá-lo quando for suportado pelo openOCD, basta iniciar o openocd com um arquivo de configuração diferente com base no tipo de seu adaptador jtag.
- platform.io pode tornar a configuração mais fácil para você, mas a depuração é suportada apenas na versão profissional paga.
- Funciona com a maioria dos módulos ESP32. (por exemplo, wemos baratos lolin 32)
- este adaptador jtag deve funcionar com o Linux também, mas eu pessoalmente não o testei.
Etapa 1: requisitos de software
Arduino IDE versão 1.8 ou mais recente. A versão da loja do Windows não é compatível. Você deve usar a versão do instalador clássico, que pode ser baixada da página oficial do Arduino
Código do Microsoft Visual Studio
Esses complementos para o código do Visual Studio são obrigatórios
- Arduino
- Depuração nativa
Também recomendo instalar este addon que permite intelisense para C / C ++
C / C ++
Neste manual, usarei 2 pastas de trabalho:
D: / devel / ESP32 / tools / - aqui coloquei todas as ferramentas
C: / Users / xxxxx / Documents / Arduino / YourProject / - esta é a pasta com esboço
você pode colocar seus arquivos em qualquer outro lugar se desejar, mas não se esqueça de atualizar todas as referências com seu caminho atual.
Etapa 2: Instalação e configuração do driver
Mesmo que o Windows detecte automaticamente o FT2232 por padrão, os drivers padrão do Windows não são suficientes para todos os recursos avançados e é necessário baixar e instalar o driver do site da FTDI
Quando o driver correto é instalado, você deve ver seu módulo FT2232 no gerenciador de dispositivos não apenas como 2 portas seriais, mas também como "conversor serial USB A" e "conversor serial USB B"
O segundo passo é mudar o driver de um canal de nosso conversor. Baixe a ferramenta zadig em https://zadig.akeo.ie/. Se bem entendi esta ferramenta vincule o driver winUSB ao dispositivo FTDI que permite a comunicação de baixo nível entre o openOCD e o dispositivo USB.
Na ferramenta zadig, no menu "Opções" marque "Mostrar todos os dispositivos", então você deverá ver o seu adaptador na lista de dispositivos disponíveis. Selecione "Dual RS232-HS (Interface 0)" e, em seguida, selecione o driver de substituição "WinUSB v6.1.xxxx" e, por fim, clique no botão substituir driver.
Quando você conecta seu adaptador a uma porta USB diferente de seu computador, é necessário alterar as configurações do driver por meio da ferramenta zadig novamente, caso contrário o openOCD não encontrará seu adaptador.
Etapa 3: OpenOCD, Toolchain e Gdb
1. Open OCD é uma ferramenta para a depuração de circruit, por um lado ele fala com o chip do outro lado fornece o servidor gdb onde o depurador (cliente) pode se conectar. Baixe openOCD para ESP32 em https://github.com/espressif/openocd-esp32/releases e descompacte-o na pasta D: / devel / ESP32 / tools
2. edite os arquivos de configuração openOCD:
esp-wroom-32.cfg
O caminho completo para este arquivo é:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg
Neste arquivo você pode definir a velocidade de comunicação alterando o parâmetro "adapter_khz". Por exemplo, "adapter_khz 8000" significa 8Mhz.
O padrão é 20 MHz e pode ser muito alto se você estiver usando fios de jumper mais longos ou placa de ensaio. Recomendo começar em 1Mhz e se estiver tudo bem, vá para uma velocidade maior, para mim 8Mhz funciona de forma confiável.
minimodule.cfg
O caminho completo para este arquivo é: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
Se bem entendi, o minimodule genuíno é uma placa de freio superfaturada com FT 2232 fabricado pela FTDI e a única diferença entre o minimodule genuíno e o módulo barato ou chip básico disponível no mercado é a descrição USB padrão. open OCD está procurando por um adaptador jtag baseado na descrição do dispositivo, também o layout init precisa ser ajustado.
O módulo barato tem a descrição "Dual RS232-HS". Se você não tiver certeza sobre a descrição do seu dispositivo, você pode verificá-lo no gerenciador de dispositivos -> propriedades do dispositivo -> detalhes da guia -> valor da propriedade "Descrição do dispositivo relatado pelo barramento"
O conteúdo de minimodule.cfg deve ser semelhante ao exemplo abaixo, as linhas que começam com # podem ser excluídas.
interface ftdi # ftdi_device_desc "FT2232H MiniModule" ftdi_device_desc "Dual RS232-HS" ftdi_vid_pid 0x0403 0x6010 #ftdi_layout_init 0x0018 0x05fb ftdi_layout_init 0x0008 0x000_layout-ftdi_00 0x000 nlayout 0x000-ftdi_00_data_data_data 0x000-0x000
esp32.cfg
O caminho completo para este arquivo é:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg
Acrescente as 2 linhas seguintes ao final de esp32.cfg. Sem esta modificação, adicionar pontos de freio não funcionará.
#Force hw breakpoints. Assim que tivermos um mapa de memória, também podemos permitir que o software bps.gdb_breakpoint_override rígido
3. Baixe e instale o conjunto de ferramentas xtensa-esp32-elf - este conjunto de ferramentas contém o depurador de linha de comando (cliente gdb) que é vital para ter a depuração funcionando a partir de qualquer IDE gráfico. O conjunto de ferramentas simples pode ser baixado do site espressif, seção "Configuração alternativa"
Etapa 4: Fiação e primeiro teste
Conecte o módulo FT2322 ao ESP. Eu recomendo usar fios tão curtos quanto possível. Se você é novo no JTAG, não se esqueça que o TDI do adaptador irá para o TDI do chip, também o TDO do adaptador irá para o TDO do chip. As linhas de dados JTAG NÃO SÃO CRUZADAS como Rx / Tx no uart!
Para o teste seguinte, recomendo fazer upload de um esboço de exemplo intermitente ou algum outro esboço que possa indicar quando a CPU está funcionando ou não, piscando o LED ou emitindo um bipe ou escrevendo no console serial.
Inicie o openOCD seguindo o comando
D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface / ftdi / minimodule.cfg -f board /esp-wroom-32.cfg
Isso iniciará o openOCD e se tudo estiver certo, você verá na saída da linha de comando que contém as seguintes linhas:
Informações: velocidade do relógio 8000 kHzInfo: JTAG tap: esp32.cpu0 tap / dispositivo encontrado: 0x120034e5 (mfg: 0x272 (Tensilica), parte: 0x2003, ver: 0x1) Informações: JTAG tap: esp32.cpu1 tap / dispositivo encontrado: 0x120034e5 (mfg: 0x272 (Tensilica), parte: 0x2003, ver: 0x1)
Além disso, o processo openocd ouvirá na porta TCP 3333
Abra o novo terminal e inicie o cliente gdb da linha de comando seguindo o comando
D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe
Espere um segundo e quando o terminal gdb estiver pronto escreva os seguintes comandos um por um
alvo remoto: 3333 parada de reinicialização do monon continuar
O primeiro comando abre a conexão com o servidor de depuração openocd, o segundo interrompe a execução do programa no ESP e o LED deve parar de piscar, continua a restaurar a execução do programa e o LED deve começar a piscar novamente.
Etapa 5: adicionar configuração de depuração ao código do Visual Studio
Eu suponho que você já tenha configurado o código do Visual Studio e o addon Arduino corretamente e você pode verificar e fazer o upload do seu esboço para a placa. Caso contrário, verifique algumas instruções sobre como configurar o código do visual studio e o arduino, por exemplo nesta página
Para fazer a depuração funcionar, é necessário especificar a pasta de saída do build. Abaixo da pasta de esboço, há a pasta (oculta).vscode, onde está o arquivo arduino.json. adicione a este arquivo a seguinte linha:
"output": "BuildOutput /"
execute verificar ou carregue e verifique sua pasta de esboço novamente, deve haver uma nova pasta BuildOutput e dentro dela um arquivo com extensão.elf. O arquivo elf é vital para depuração.
As configurações do depurador estão no arquivo launch.json. Crie este arquivo com o conteúdo a seguir ou você pode copiar este arquivo do projeto de exemplo anexado. Não se esqueça de ajustar a linha 26 e definir o caminho correto para o arquivo.elf do seu projeto.
{// Use o IntelliSense para aprender sobre os possíveis atributos. // Passe o mouse para ver as descrições dos atributos existentes. // Para obter mais informações, visite: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [{"name": "Arduino-GDB-openOCD "," type ":" cppdbg "," request ":" launch "," program ":" $ {file} "," cwd ":" $ {workspaceRoot} / BuildOutput / "," MIMode ":" gdb ", "targetArchitecture": "arm", "miDebuggerPath": "D: /devel/ESP32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb.exe", "debugServerArgs": "", " customLaunchSetupCommands ": [{" text ":" target remote: 3333 "}, {" text ":" mon reset halt "}, {// dynamic variant" text ":" file c: / Users / xxxxx / Documents / Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// variante estática //" text ":" file c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "Info \: [w / d \.] *: / hardware "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}
Como iniciar a depuração:
- Complete e carregue seu esboço para bordo
- Inicie o openOCD com parâmetros
- Defina pontos de freio no código onde você quiser
- Depois de definir todos os pontos de freio, certifique-se de ter aberto o arquivo.ino principal do projeto. (ou caminho de código para o arquivo.elf em launch.json)
- Abra o painel de depuração em vs código (Ctrl + Shift + D)
- Selecione o depurador "Arduino-GDB-openOCD", só deve estar disponível.
- Pressione F5 para iniciar a depuração
Recomendado:
Como obter um MUNDO SECRETO !!!!!! (Modo de depuração): 3 etapas
Como obter um MUNDO SECRETO !!!!!! (Modo de depuração): Neste instrutível, mostrarei como chegar a um modo de mundo secreto no Minecraft
Depuração Java básica: 9 etapas
Depuração básica do Java: Este guia de instruções cobre uma verificação básica passo a passo para o tratamento de erros do Java. Este guia não fornece nenhuma ajuda na configuração do software de programação java e espera que você já tenha realizado essa tarefa com antecedência. Para o melhor
Depuração serial com CloudX: 3 etapas
Depuração serial com CloudX: Neste projeto, pretendo explicar o conceito de depuração via terminal serial. Mas primeiro, como um iniciador, vamos explicar seu conceito por meio de seus significados. comunicação serial comunicação serial é para comunicação entre o CloudX bo
Interface multi-toque barata (realmente barata): 3 etapas
Interface Multi-Touch barata (realmente barata): Este é meu primeiro Instructable, então seja legal. É assim que você cria uma interface multitoque em sua mesa por muito pouco dinheiro. Finalmente carreguei um vídeo, desculpe a taxa de quadros ruim, meu laptop não é tão bom
Lente macro para iPhone barata para leitura de código de barras: 6 etapas (com imagens)
Lente macro para iPhone barata para leitura de código de barras: Um problema gritante com a câmera do iPhone é sua incapacidade de focar a menos de 30 centímetros de distância. Algumas soluções pós-venda ajudam a resolver esse problema, como o iClarifi da Griffin Technology. Esta capa para o iPhone 3G permite que você deslize um pouco ma