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

세거 J-Link로 아두이노 포텐타 H7 듀얼 코어 시스템 디버깅하기

부품 및 소모품

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

앱 및 온라인 서비스

Arduino IDE
Microsoft Visual Studio 2017
Visual Micro

프로젝트 개요

아두이노 포텐타 H7은 강력한 듀얼 코어 아키텍처를 제공합니다: 480MHz Cortex-M7과 240MHz Cortex-M4. 두 코어는 독립적인 펌웨어를 실행하며 공유 메모리나 세마포어로 통신합니다.

두 코어를 동시에 디버깅하려면 전용 SWD 인터페이스와 멀티 타겟 세션을 지원하는 디버거가 필요합니다. 이 가이드에서는 세거 J-Link로 각 코어에 연결하고, 개발 환경을 설정하며, 각 코어의 LED를 독립 제어하는 간단한 블링크 예제로 시연합니다.

하드웨어 설정

  1. 포텐타 H7을 브레이크아웃 보드에 장착합니다. 보드는 두 코어의 SWD 핀에 연결되는 20핀 MIPS 스타일 헤더를 노출합니다.
  2. 브레이크아웃 헤더에 20핀 MIPS 컨버터를 연결해 디버깅 신호를 분리합니다.
  3. 아래 핀아웃 다이어그램에 따라 컨버터를 세거 J-Link에 배선합니다. 커스텀 솔루션을 원하면 0.05인치 피치 커넥터를 사용하고 두 번째 이미지의 예시 배선을 따르세요.
세거 J-Link로 아두이노 포텐타 H7 듀얼 코어 시스템 디버깅하기
세거 J-Link로 아두이노 포텐타 H7 듀얼 코어 시스템 디버깅하기

소프트웨어 설정

  1. Arduino IDE 설치 (아두이노 웹사이트)
  2. Microsoft Visual Studio (2017, 2019, 2022) 및 Visual Micro 확장 설치 (Visual Micro 웹사이트에서 전체 지침 확인)
  3. Visual Micro Explorer 또는 아두이노 IDE 보드 매니저에서 Arduino Mbed OS Portenta Boards 패키지 추가
  4. Zadig로 세거 J-Link의 인터페이스 0 USB 드라이버를 WinUSB 드라이버로 교체. 짧은 워크스루 영상 참조

코드 작성

각 코어별로 별도 프로젝트를 준비합니다. 다음 블링크 예제는 각 코어의 서로 다른 LED를 점등하며, 독립적으로 디버깅 가능합니다.

중요: M7 프로젝트에서 setup() 시작 부분에 bootM4()를 호출해 두 코어가 모두 활성화되도록 하세요.

디버그 설정: M7 코어

M7 스케치를 Visual Studio에서 열고 디버그 > 하드웨어에서 Segger J-Link Debugger 선택 (NoOpenOCD 버전 아님). M7 코어에 빌드 및 업로드.

세거 J-Link로 아두이노 포텐타 H7 듀얼 코어 시스템 디버깅하기

디버그 설정: M4 코어

M4 스케치를 열고 디버그 > 하드웨어에서 Segger J-Link Debugger (NoOpenOCD) 선택. M4 코어에 빌드 및 업로드.

디버거 시작

먼저 디버그 > 프로세스에 연결으로 M7 스케치 디버깅 세션을 시작합니다. M4 스케치도 동일하게 반복합니다. 이제 각 프로젝트에서 독립적으로 브레이크포인트 설정, 일시정지, 단계 실행, 계속 실행이 가능합니다. 각 코어는 자체 명령에만 반응합니다.

세거 J-Link로 아두이노 포텐타 H7 듀얼 코어 시스템 디버깅하기

워크스루 영상

유튜브에서 단계별 시연 시청:

포텐타 H7 듀얼 코어 세거 J-Link 디버깅

유용한 링크

코드

H7 M4 블링크 코드

// 포텐타 M4 코어 블링크
void setup() {
  pinMode(LED_BLUE, OUTPUT);
}
void loop() {
  digitalWrite(LED_BLUE, HIGH); delay(1000);
  digitalWrite(LED_BLUE, LOW); delay(1000);
}

H7 M7 블링크 코드

// 포텐타 M7 코어 블링크
void setup() {
  bootM4(); // M4 코어 활성화
  pinMode(LED_RED, OUTPUT);
}
void loop() {
  digitalWrite(LED_RED, HIGH); delay(1000);
  digitalWrite(LED_RED, LOW); delay(1000);
}

회로도

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

세거 J-Link로 아두이노 포텐타 H7 듀얼 코어 시스템 디버깅하기

제조공정

  1. 아두이노, 산업용 IoT 보드 '포텐타 H7' CES서 공개… 듀얼 코어·내구성 강화
  2. 블루투스 제어 아두이노 스파이봇(Spybot) 만들기
  3. 플릭모트(FlickMote): 스마트 홈을 위한 제스처 제어 IR 리모컨
  4. DIY 아두이노 TV B-Gone: 모든 TV를 끄는 만능 리모컨
  5. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  6. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  7. 아두이노 프로젝트를 위한 최적화된 전원 솔루션
  8. 아두이노 틱택토 게임 - MAX7219 LED 매트릭스와 골판지 케이스
  9. 스마트 아두이노 4족 보행 로봇 제작: 단계별 완벽 가이드
  10. 게이밍용 커스텀 아두이노 조이스틱 스티어링 휠 만들기