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

Portenta H7 Dual Core Debugging

Componentes e suprimentos

Arduino Portenta H7
× 1
Arduino Portenta H7 Breakout Board
× 1
Segger J-Link Debug Probe
× 1
Adaptador Segger Cortex M
× 1

Aplicativos e serviços online

Arduino IDE
Microsoft Visual Studio 2017
Visual Micro

Sobre este projeto


O Arduino Portenta H7 possui uma ampla variedade de recursos e a capacidade de executar seu código em dois núcleos separados, que também podem se comunicar um com o outro!

Todos nós temos problemas com nossos projetos de vez em quando, então aqui mostramos como você pode usar um Segger JLink para depurar o código em execução em ambos os núcleos, ao mesmo tempo!





Configuração de hardware


Depois de ter seu Portenta H7 montado na placa de breakout, você precisará conectar seu conversor MIPS de 20 pinos para separar os pinos de depuração.

Em seguida, você pode conectar seu conversor ao Segger J-Link conforme mostrado nas imagens abaixo.

Se você tiver os conectores de pitch corretos (0,05 "), também pode conectar seu próprio conector, conforme mostrado na segunda imagem:





Configuração do software


Presumimos que você já tenha instalado o Arduino IDE em sua máquina (se não fizer download aqui).

Em seguida, instale o Visual Studio (2017/2019/2022) e o Visual Micro Extension, com instruções completas disponíveis aqui.

Você também precisará instalar o pacote de placa para placas Arduino Mbed OS Portenta do Visual Micro Explorer (ou do Boards Manager no Arduino IDE).

Você precisará substituir o driver USB na interface 0 de seu Segger J-Link usando a ferramenta Zadig.exe (veja o vídeo na parte inferior para um passo a passo).





Vamos codificar!


Agora precisamos configurar um projeto separado, um para cada núcleo do nosso Conselho Portenta. O código anexado é um exemplo simples de Blink, onde cada núcleo pisca um LED de cor diferente. Para depuração, configure cada núcleo em uma instância separada do Visual Studio.

Não se esqueça de chamar a função bootM4 () em seu projeto M7 Core para garantir que ambos os núcleos estejam funcionando.





Configuração de depuração:M7 Core


Abra seu M7 Core Sketch e selecione Debug> Hardware e o Segger J-Link Debugger ( NÃO a "versão NoOpenOCD)

Construa e carregue seu esboço M7 para o núcleo M7 neste ponto.





Configuração do software:M4 Core


Abra seu Sketch e selecione Debug> Hardware e o Segger J-Link Debugger (NoOpenOCD)

Construa e carregue seu esboço M4 para o núcleo M4 neste ponto.





Inicie o depurador


Primeiro comece a depurar usando o esboço do M7 Core usando "Debug> Attach to Process".

Em seguida, comece a depuração usando o esboço do M4 Core usando "Debug> Attach to Process".

Agora você deve ser capaz de adicionar um ponto de interrupção a qualquer esboço e observar o depurador parar nele ... com cada núcleo sendo capaz de parar / avançar / continuar independentemente !!





Vídeo passo a passo


Veja um passo a passo para esse processo abaixo no YouTube ....

Documentação + Diagrama de fiação

Portenta Breakout Board

Segger JLink

Código

  • Código Blink H7 M4
  • Código Blink H7 M5
Código Blink H7 M4 Arduino
Código para demonstrar Blink no Portenta M4 Core
 // Código para demonstrar Blink no Portenta M4 Core // a função de configuração é executada uma vez quando você pressiona reset ou liga o boardvoid setup () {// inicializa o pino digital 13 como um saída. pinMode (LED_BLUE, OUTPUT);} // a função de loop é executada continuamente forevervoid loop () {digitalWrite (LED_BLUE, HIGH); // liga o LED (HIGH é o nível de tensão) delay (1000); // espera por um segundo digitalWrite (LED_BLUE, LOW); // desliga o LED tornando a voltagem LOW delay (1000); // espere um segundo} 
Código Blink H7 M5 Arduino
Código para demonstrar Blink no Portenta M7 Core
 // Código para demonstrar Blink no Portenta M7 Core // a função de configuração é executada uma vez quando você pressiona reset ou liga o boardvoid setup () {bootM4 (); // inicializa o pino digital 13 como uma saída. pinMode (LED_RED, OUTPUT);} // a função de loop é executada continuamente forevervoid loop () {digitalWrite (LED_RED, HIGH); // liga o LED (HIGH é o nível de tensão) delay (1000); // espera por um segundo digitalWrite (LED_RED, LOW); // desliga o LED tornando a voltagem LOW delay (1000); // espere um segundo} 

Esquemas

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

Processo de manufatura

  1. A placa Arduino visa IoT industrial
  2. Arduino Spybot
  3. FlickMote
  4. TV B-Gone caseiro
  5. Relógio mestre
  6. Encontre-me
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Joystick Arduino