Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Depuración de doble núcleo Portenta H7

Componentes y suministros

Arduino Portenta H7
× 1
Placa de conexión Arduino Portenta H7
× 1
Sonda de depuración Segger J-Link
× 1
Adaptador Segger Cortex M
× 1

Aplicaciones y servicios en línea

Arduino IDE
Microsoft Visual Studio 2017
Visual Micro

Acerca de este proyecto

El Arduino Portenta H7 cuenta con una amplia variedad de características y la capacidad de ejecutar su código en dos núcleos separados, que también pueden comunicarse entre sí.

Todos tenemos problemas con nuestros proyectos de vez en cuando, así que aquí mostramos cómo puede usar un Segger JLink para depurar el código que se ejecuta en ambos núcleos, ¡al mismo tiempo!

Configuración de hardware

Una vez que tenga su Portenta H7 montado en la placa de ruptura, deberá conectar su convertidor MIPS de 20 pines para romper los pines de depuración.

Luego, puede conectar su convertidor al Segger J-Link como se muestra en las imágenes a continuación.

Si tiene los conectores de paso correcto (0.05 "), también puede conectar su propio conector como se muestra en la segunda imagen:

Configuración del software

Suponemos que ya ha instalado el IDE de Arduino en su máquina (si no lo descarga aquí).

Luego instale Visual Studio (2017/2019/2022) y Visual Micro Extension, con instrucciones completas disponibles aquí.

También necesitará instalar el paquete de placa para placas Arduino Mbed OS Portenta desde Visual Micro Explorer (o desde Boards Manager en Arduino IDE).

Deberá reemplazar el controlador USB en la interfaz 0 de su Segger J-Link usando la herramienta Zadig.exe (vea el video en la parte inferior para un recorrido).

¡Vamos a codificar!

Ahora necesitamos configurar un proyecto separado, uno para cada núcleo de nuestra placa Portenta. El código adjunto es un ejemplo simple de Blink, donde cada núcleo parpadea con un LED de diferente color. Para la depuración, configure cada núcleo en una instancia separada de Visual Studio.

No olvide asegurarse de llamar a la función bootM4 () en su proyecto M7 Core para asegurarse de que ambos núcleos se estén ejecutando.

Configuración de depuración:M7 Core

Abra su M7 Core Sketch y seleccione Depurar> Hardware y Segger J-Link Debugger ( NO la "versión NoOpenOCD)

Construya y cargue su boceto de M7 en el núcleo de M7 en este punto.

Configuración del software:M4 Core

Abra su Sketch y seleccione Depurar> Hardware y el Depurador Segger J-Link (NoOpenOCD)

Cree y cargue su M4 Sketch en el núcleo de M4 en este momento.

Iniciar depurador

Primero comience a depurar usando el boceto de M7 Core usando "Depurar> Adjuntar al proceso".

Luego, comience a depurar usando el boceto de M4 Core usando "Depurar> Adjuntar al proceso".

Ahora debería poder agregar un punto de interrupción a cualquiera de los bocetos y observar cómo el depurador se detiene en él ... ¡¡y cada núcleo puede detenerse / avanzar / continuar de forma independiente !!

Video tutorial

Vea un tutorial de este proceso a continuación en YouTube ....

Documentación + Diagrama de cableado

Placa de conexión Portenta

Segger JLink

Código

  • Código intermitente H7 M4
  • Código intermitente H7 M5
Código intermitente H7 M4 Arduino
Código para demostrar Blink en el Portenta M4 Core
 // Código para demostrar Blink en el Portenta M4 Core // la función de configuración se ejecuta una vez al presionar reiniciar o encender la placa. producción. pinMode (LED_BLUE, OUTPUT);} // la función de bucle se ejecuta una y otra vez forevervoid loop () {digitalWrite (LED_BLUE, HIGH); // enciende el LED (ALTO es el nivel de voltaje) delay (1000); // espera una segunda escritura digital (LED_BLUE, LOW); // apaga el LED haciendo que el voltaje sea BAJO retardo (1000); // espera un segundo} 
Código intermitente H7 M5 Arduino
Código para demostrar Blink en el Portenta M7 Core
 // Código para demostrar Blink en el Portenta M7 Core // la función de configuración se ejecuta una vez cuando presiona reiniciar o enciende el boardvoid setup () {bootM4 (); // inicializa el pin digital 13 como salida. pinMode (LED_RED, OUTPUT);} // la función de bucle se ejecuta una y otra vez forevervoid loop () {digitalWrite (LED_RED, HIGH); // enciende el LED (ALTO es el nivel de voltaje) delay (1000); // espera una segunda escritura digital (LED_RED, LOW); // apaga el LED haciendo que el voltaje sea BAJO retardo (1000); // espera un segundo} 

Esquemas

Cómo conectar los pines SWD en la placa de conexión al Segger J-Link

Proceso de manufactura

  1. La placa Arduino apunta a IoT industrial
  2. Arduino Spybot
  3. FlickMote
  4. Televisión casera B-Gone
  5. Reloj maestro
  6. Encuéntrame
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Cuadrúpedo
  10. Joystick de Arduino
  11. Máquina CNC