산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Portenta H7 듀얼 코어 디버깅

구성품 및 소모품

Arduino Portenta H7
× 1
Arduino Portenta H7 브레이크아웃 보드
× 1
Segger J-링크 디버그 프로브
× 1
Segger Cortex M 어댑터
× 1

앱 및 온라인 서비스

Arduino IDE
Microsoft Visual Studio 2017
비주얼 마이크로

이 프로젝트 정보

Arduino Portenta H7은 다양한 기능과 서로 통신할 수 있는 두 개의 개별 코어에서 코드를 실행할 수 있는 기능을 자랑합니다!

우리 모두는 때때로 프로젝트에서 문제에 부딪히므로 여기에서 Segger JLink를 사용하여 두 코어에서 동시에 실행되는 코드를 디버그하는 방법을 보여줍니다!

하드웨어 설정

Portenta H7을 브레이크아웃 보드에 장착했으면 MIPS 20핀 컨버터를 연결하여 디버깅 핀을 브레이크아웃해야 합니다.

그런 다음 아래 이미지와 같이 변환기를 Segger J-Link에 연결할 수 있습니다.

올바른 피치 커넥터(0.05")가 있는 경우 두 번째 이미지와 같이 고유한 커넥터를 연결할 수도 있습니다.

소프트웨어 설정

컴퓨터에 Arduino IDE가 이미 설치되어 있다고 가정합니다(여기에서 다운로드하지 않은 경우).

그런 다음 여기에서 전체 지침을 볼 수 있는 Visual Studio(2017/2019/2022) 및 Visual Micro Extension을 설치하세요.

Arduino Mbed OS Portenta 보드용 보드 패키지도 설치해야 합니다. Visual Micro Explorer(또는 Arduino IDE의 보드 관리자)에서.

Zadig.exe 도구를 사용하여 Segger J-Link의 인터페이스 0에서 USB 드라이버를 교체해야 합니다(연습은 하단의 비디오 참조).

코딩하자!

이제 Portenta 보드의 각 코어에 대해 하나씩 별도의 프로젝트를 설정해야 합니다. 첨부된 코드는 각 코어가 다른 색상의 LED를 깜박이는 간단한 Blink 예제입니다. 디버깅을 위해 Visual Studio의 별도 인스턴스에서 각 코어를 설정합니다.

M7 Core 프로젝트에서 bootM4() 함수를 호출하여 두 코어가 모두 실행되고 있는지 확인하는 것을 잊지 마십시오.

디버그 설정:M7 코어

M7 Core Sketch를 열고 디버그> 하드웨어 및 Segger J-Link 디버거를 선택합니다(아니요 "NoOpenOCD 버전)

이 시점에서 M7 Sketch를 빌드하고 M7 코어에 업로드하세요.

소프트웨어 설정:M4 코어

스케치를 열고 디버그> 하드웨어 및 Segger J-Link 디버거(NoOpenOCD)

를 선택합니다.

이 시점에서 M4 Sketch를 빌드하고 M4 코어에 업로드하세요.

디버거 시작

먼저 "디버그> 프로세스에 연결"을 사용하여 M7 Core 스케치를 사용하여 디버깅을 시작합니다.

그런 다음 "디버그> 프로세스에 연결"을 사용하여 M4 Core 스케치를 사용하여 디버깅을 시작합니다.

이제 각 스케치에 중단점을 추가하고 디버거가 중지하는 것을 볼 수 있어야 합니다. 각 코어는 독립적으로 중지/단계/계속할 수 있습니다!!

연습 동영상

아래 YouTube에서 이 프로세스에 대한 연습을 참조하세요....

문서 + 배선도

Portenta 브레이크아웃 보드

세거 JLink

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • H7 M4 깜박임 코드
  • H7 M5 깜박임 코드
  • H7 M4 깜박임 코드Arduino
    Portenta M4 Core의 깜박임 데모 코드 산출. pinMode(LED_BLUE, OUTPUT);}// 루프 함수는 계속해서 계속 실행됩니다.forevervoid loop() { digitalWrite(LED_BLUE, HIGH); // LED 켜기 (HIGH는 전압 레벨) delay(1000); // 두 번째 대기 digitalWrite(LED_BLUE, LOW); // 전압을 LOW로 만들어 LED를 끕니다. delay(1000); // 잠시만 기다리세요}
    H7 M5 깜박임 코드Arduino
    Portenta M7 Core에서 깜박임을 시연하는 코드
    // Portenta M7 Core에서 깜박임을 시연하는 코드// 리셋을 누르거나 boardvoid setup() { bootM4(); // 디지털 핀 13을 출력으로 초기화합니다. pinMode(LED_RED, OUTPUT);}// 루프 함수는 계속해서 계속 실행됩니다.forevervoid loop() { digitalWrite(LED_RED, HIGH); // LED 켜기 (HIGH는 전압 레벨) delay(1000); // 두 번째 대기 digitalWrite(LED_RED, LOW); // 전압을 LOW로 만들어 LED를 끕니다. delay(1000); // 잠시만 기다리세요}

    회로도

    브레이크아웃 보드의 SWD 핀을 Segger J-Link에 연결하는 방법

    제조공정

    1. Arduino 보드는 산업용 IoT를 대상으로 합니다.
    2. Arduino 스파이봇
    3. FlickMote
    4. 수제 TV B-Gone
    5. 마스터 시계
    6. 나를 찾기
    7. Arduino Power
    8. Tech-TicTacToe
    9. Arduino Quadruped
    10. Arduino 조이스틱