Como usar placas Arduino como dispositivo DAPLink

O que é DAPLink
Arm Mbed DAPLink é um projeto de software open source que programa e depura o software de aplicação em execução em CPUs Arm Cortex. DAPLink é frequentemente referido como firmware de interface e é executado em um MCU auxiliar conectado à porta SWD ou JTAG do MCU de aplicação. Essa configuração está disponível em quase todas as placas de desenvolvimento. Ela cria uma ponte entre o seu computador de desenvolvimento e a porta de acesso de depuração da CPU.
Por favor, visite também DAPLink para mais informações.
DAPLink para placas Arduino
Agora, desenvolvemos o firmware DAPLink em execução nas suas placas Arduino (Série SAMD), como Wio Terminal e Seeeduino Xiao, para que você possa fazer upload e depurar placas de desenvolvimento que suportam DAPLink da forma mais econômica possível!
Recursos
- Depurar e gravar CPUs Arm Cortex
- Fornece uma porta serial virtual, eliminando a necessidade de um conversor USB para porta serial
- Arrastar e soltar para enviar firmware (em breve)
Placas compatíveis
Ele oferece suporte a todas as placas SAMD da Seeed:
- Wio Terminal
- Seeeduino XIAO
- Série Seeeduino Zero:
- Seeeduino LoRaWAN
Certifique-se de ter instalado a biblioteca mais recente da placa ArduinoSAMD para Seeed (>=1.8.1) para que isso funcione!
Primeiros passos
1. Instalando as bibliotecas Arduino do DAPLink
-
Visite o repositório Seeed_Arduino_DAPLink e faça o download de todo o repositório para o seu disco local.
-
Agora, a biblioteca Seeed_Arduino_DAPLink pode ser instalada no Arduino IDE. Abra o Arduino IDE e clique em
sketch->Include Library->Add .ZIP Library, e escolha o arquivoSeeed_Arduino_DAPLinkque você acabou de baixar.

2. Instalando a biblioteca Adafruit_TinyUSB_Arduino
-
Visite o repositório Adafruit_TinyUSB_Arduino e faça o download de todo o repositório para o seu disco local.
-
Agora, a biblioteca Adafruit_TinyUSB_Arduino pode ser instalada no Arduino IDE. Abra o Arduino IDE e clique em
sketch->Include Library->Add .ZIP Library, e escolha o arquivoAdafruit_TinyUSB_Arduinoque você acabou de baixar.
Personalizando definições de pinos
Se você estiver usando Wio Terminal ou Seeeduino Xiao, pode pular esta seção e simplesmente usar as definições padrão.
- As definições de pinos para DAPLink são definidas em
DAP_config.hemSeeed_Arduino_DAPLink/src, consulte o seguinte:

Enviar para placas Arduino
Abra o simple_daplink.ino em Seeed_Arduino_DAPLink/example usando o Arduino IDE. Em Tools -> USB Stack escolha TinyUSB.

Compile e envie o código!
Exemplo de conexão de hardware
Neste wiki, usamos a placa de desenvolvimento STM32F410RB como exemplo de conexão:
Se você tiver alterado as definições de pinagem, conecte de acordo com as suas próprias definições.
- Exemplo de conexão com Seeeduino Xiao

- Exemplo de conexão com Wio Terminal

Exemplo de depuração e gravação para IDEs
Nossa placa Arduino agora se torna nosso dispositivo DAPLink para envio para MCUs! Vamos ver alguns exemplos para diferentes IDEs para referência.
Depuração com OpenOCD
-
Conecte o Arduino DAPLink ao alvo de desenvolvimento de acordo com a conexão acima e ao seu PC.
-
Certifique-se de ter instalado o OpenOCD.
-
Abra o Terminal e execute o seguinte:
Altere para o alvo do seu dispositivo de acordo com a sua placa de desenvolvimento, você pode consultar a documentação oficial como referência.
openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg

- No caminho de build do projeto da sua placa de desenvolvimento, execute o gcc, que será algo como abaixo:

- no gdb, conecte ao host local executando o seguinte:
target remote 127.0.0.1:3333

- Agora a placa de desenvolvimento está conectada, você pode começar a depurar ou fazer upload!
Execute load para enviar para a placa de desenvolvimento:

Alguns comandos úteis para o GDB:
continue/contctrl+cnextbreakinfo breakcleardeletelist
Depuração com Eclipse
Para o Eclipse, é muito semelhante ao OpenOCD, pois ele pode usar o OpenOCD como backend.
- Navegue até Help -> Eclipse Marketplace, pesquise e baixe Eclipse Embedded CDT:

- Navegue até Window -> Preference -> MCU -> Global OpenOCD Path e preencha o caminho do seu OpenOCD como a seguir:

- Faça o build do seu projeto. Em Run Last Tool, clique em External Tools Configurations:

- Copie as seguintes configurações, altere para o seu caminho (e também para sua placa alvo).

Se tudo correr bem, deve ficar algo assim:

- Em Debug, clique em Debug Configurations, selecione a seção Debugger e preencha o caminho do seu gcc:

Agora está tudo certo e pronto para depurar!

Para mais referências, verifique aqui.
Depuração com Keil
- Conecte o Arduino DAPLink ao alvo de desenvolvimento de acordo com a conexão acima e ao seu PC.
Para usar nosso Arduino DAPLink no Keil, verifique o seguinte:
- Abra o seu projeto com o Keil e clique em Options for target.
Você deve ver uma janela como a abaixo. Certifique-se de que o dispositivo corresponde ao seu dispositivo. Navegue até a seção Debug e selecione CMSIS-DAP Debugger.
- Clique em settings ao lado de CMSIS-DAP Debugger.

- Escolha Seeed CMSIS-DAP (nossa placa Arduino) e você deverá ver que ela está conectada.

- Você também pode navegar até a seção Flash Download para se certificar de que é o dispositivo correto e clicar em OK.

- Clique em Build e Flash!

Depuração com IAR Embedded Workbench
-
Conecte o Arduino DAPLink ao alvo de desenvolvimento de acordo com a conexão acima e ao seu PC.
-
Abra o seu projeto e navegue até Project -> Options. No menu Options, selecione Debugger:

- Na aba Setup, selecione CMSIS DAP no menu suspenso Driver.

- Na aba Download, marque Verify download e Use flash loader(s)

- Selecione CMSIS DAP no menu à esquerda, selecione a aba Interface e configure o protocolo SWD.

- Clique em OK e você pode clicar em Download and Debug!

Uso da serial
Para facilitar a vida, também implementamos uma função USB para Serial no Arduino Sketch, o que dispensa a necessidade de hardware adicional!
- Por padrão, ela é definida como
Serial1e são os pinos de Hardware Serial. Por exemplo, são os pinos 6 e 7 para o Seeeduino XIAO.
Você pode definir a sua própria Serial no Arduino Sketch.

Para uso de referência, verifique aqui.
Recursos
Suporte Técnico e Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.