Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Depurando o Sistema Dual-Core Arduino Portenta H7 com Segger J-Link

Componentes e Materiais

Arduino Portenta H7 ×1
Placa Breakout Arduino Portenta H7 ×1
Sonda de Depuração Segger J-Link ×1
Adaptador Cortex M Segger ×1

Aplicativos e Serviços Online

Visão Geral do Projeto

O Arduino Portenta H7 oferece uma poderosa arquitetura dual-core: um Cortex-M7 a 480 MHz e um Cortex-M4 a 240 MHz. Os dois núcleos podem executar firmware independentes e comunicar via memória compartilhada ou semáforos.

Depurar ambos os núcleos simultaneamente requer uma interface SWD dedicada e um depurador que suporte sessões multi-target. Neste guia, mostramos como usar um Segger J-Link para conectar a cada núcleo, configurar o ambiente de desenvolvimento, e rodar um exemplo simples de blink que demonstra controle independente do LED de cada núcleo.

Configuração de Hardware

  1. Monte o Portenta H7 em sua breakout board. A placa expõe um header de 20 pinos estilo MIPS que conecta aos pinos SWD de ambos os núcleos.
  2. Anexe um conversor MIPS de 20 pinos ao header da breakout para separar os sinais de depuração.
  3. Conecte o conversor ao Segger J-Link conforme o diagrama de pinout abaixo. Se preferir uma solução personalizada, use conectores de pitch 0.05 polegadas e siga a fiação de exemplo mostrada na segunda imagem.
Depurando o Sistema Dual-Core Arduino Portenta H7 com Segger J-Link
Depurando o Sistema Dual-Core Arduino Portenta H7 com Segger J-Link

Configuração de Software

  1. Instale o Arduino IDE (download em site do Arduino).
  2. Instale o Microsoft Visual Studio (2017, 2019 ou 2022) e a extensão Visual Micro (instruções completas no site do Visual Micro).
  3. Adicione o pacote Arduino Mbed OS Portenta Boards via Visual Micro Explorer ou Boards Manager no Arduino IDE.
  4. Substitua o driver USB na Interface 0 do Segger J-Link pelo driver WinUSB usando Zadig. Um vídeo curto passo a passo está linkado abaixo.

Vamos Codificar

Prepare dois projetos separados, um para cada núcleo. Os seguintes exemplos Blink acendem um LED diferente em cada núcleo e podem ser depurados independentemente.

Importante: No projeto M7, chame bootM4() no início de setup() para garantir que ambos os núcleos estejam ativos.

Configuração de Depuração: Núcleo M7

Abra o sketch M7 no Visual Studio, vá em Debug > Hardware e selecione Segger J-Link Debugger (não a versão NoOpenOCD). Compile e carregue o sketch no núcleo M7.

Depurando o Sistema Dual-Core Arduino Portenta H7 com Segger J-Link

Configuração de Depuração: Núcleo M4

Abra o sketch M4, escolha Debug > Hardware, e selecione Segger J-Link Debugger (NoOpenOCD). Compile e carregue no núcleo M4.

Iniciar o Depurador

Primeiro inicie uma sessão de depuração para o sketch M7 usando Debug > Attach to Process. Repita o mesmo passo para o sketch M4. Agora você pode definir breakpoints em qualquer projeto, pausar, passo a passo, ou continuar independentemente — cada núcleo responde a seus próprios comandos.

Depurando o Sistema Dual-Core Arduino Portenta H7 com Segger J-Link

Vídeo Passo a Passo

Assista a uma demonstração passo a passo no YouTube:

Depurando Portenta H7 Dual-Core com Segger J-Link

Links Úteis

Código

Código Blink Núcleo M4

// Blink no Núcleo M4 do Portenta
void setup() {
  pinMode(LED_BLUE, OUTPUT);
}
void loop() {
  digitalWrite(LED_BLUE, HIGH);
  delay(1000);
  digitalWrite(LED_BLUE, LOW);
  delay(1000);
}

Código Blink Núcleo M7

// Blink no Núcleo M7 do Portenta
void setup() {
  bootM4(); // Ativa o núcleo M4
  pinMode(LED_RED, OUTPUT);
}
void loop() {
  digitalWrite(LED_RED, HIGH);
  delay(1000);
  digitalWrite(LED_RED, LOW);
  delay(1000);
}

Esquemáticos

Como conectar os pinos SWD na Breakout Board ao Segger J-Link:

Depurando o Sistema Dual-Core Arduino Portenta H7 com Segger J-Link

Processo de manufatura

  1. Arduino Lança Portenta H7: Placa IoT Industrial‑Grade Estreia na CES
  2. Construa um Spybot Controlado por Bluetooth com Arduino
  3. FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
  4. DIY Arduino TV B-Gone: Controle Remoto Universal para Todas as TVs
  5. Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
  6. Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
  7. Soluções de Energia Otimizadas para Projetos Arduino
  8. Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
  9. Construa um Robô Quadrúpede Inteligente com Arduino: Guia Passo a Passo
  10. Volante Joystick Arduino Personalizado para Jogos