# PX4용 MCU Eclipse/J-Link 디버깅
NuttX(예: Pixhawk 시리즈 보드)에서 실행되는 PX4를 디버그하기 위하여 Segger Jlink 어댑터와 함께 MCU Eclipse (opens new window)를 설정하고 사용하는 방법을 설명합니다.
# 필요한 하드웨어
- J-Link EDU Mini (opens new window)
- Segger JLink를 Flight Controller SWD(JTAG) 하드웨어 디버깅 인터페이스(디버그 포트) 연결용 어댑터입니다.
- Micro USB 케이블
# 설치
# PX4
일반 지침에 따라 PX4를 설정합니다.
- Setup the PX4 Developer Environment/Toolchain for your platform (e.g. for Linux see: Development Environment on Ubuntu LTS / Debian Linux).
- PX4를 다운로드하고, 선택적으로 명령줄에서 빌드합니다.
# Eclipse
Eclipse를 설치하려면:
- C/C++ 개발자를 위한 Eclipse CDT (opens new window)(MCU GitHub)를 다운로드하십시오.
- Eclipse 폴더의 압축을 풀고 적당한 폴더에 복사합니다(설치 스크립트를 실행할 필요가 없음).
- Eclipse를 실행하고, 초기 워크벤치의 위치를 선택하십시오.
# Segger Jlink 도구
Segger Jlink 도구를 설치하려면:
- J-Link Software and Documentation Pack (opens new window)을 운영체제에 해당(윈도우와 리눅스용이 있음)하는 버전으로 다운로드하고 설치하십시오.
- Linux에서 /usr/bin에 설치됩니다.
자세한 내용은 https://gnu-mcu-eclipse.github.io/debug/jlink/install/ (opens new window)을 참고하십시오.
# 첫 사용
- Segger JLink를 어댑터를 통하여 호스트 컴퓨터와 비행 컨트롤러 디버그 포트에 연결합니다.
- 비행 콘트롤러에 전원을 공급합니다.
- Eclipse를 실행합니다.
- 파일 > 가져오기 C/C++ > 기존 코드를 Makefile 프로젝트로 만들고 다음을 클릭합니다.
- PX4-Autopilot 폴더를 가리키고 이름을 지정한 다음 인덱서 설정용 도구 모음에서 ARM Cross GCC를 선택하고 <0 >마침을 클릭합니다. 가져오기는 시간이 걸리며, 완료될 때까지 기다립니다.
- MCU 설정: 프로젝트 탐색기에서 최상위 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 MCU에서 SEGGER J-Link 경로를 선택합니다. 아래 스크린샷과 같이 설정합니다.
- 패키지를 업데이트합니다.
우상단의 Open Perspective라는 작은 아이콘을 클릭하고, Packs Perspective를 엽니다.
모두 업데이트 버튼을 클릭합니다.
TIP
이것은 10분정도의 시간이 소요됩니다. 누락된 패키지에 대한 오류를 무시하십시오. :::
![Eclipse: Workspace Packs Perspective](../../assets/debug/eclipse_packs_perspective.jpg)
- STM32Fxx 장치는 Keil 폴더에 있습니다. 마우스 오른쪽 버튼을 클릭한 다음, F4 및 F7에 해당하는 장치에서 설치를 선택하여 설치합니다.
대상에 대한 디버깅 설정을 진행하십시오:
- 프로젝트를 마우스 오른쪽 버튼으로 클릭하고, 설정을 엽니다(메뉴: C/C++ 빌드 > 설정).
- 기기 탭, 기기 섹션(보드 아님)을 선택합니다.
- 디버그하려는 FMU 칩을 찾으십시오.
버그 기호 옆에 있는 작은 드롭다운으로 디버그 설정을 선택합니다.
그런 다음, GDB SEGGER J-Link 디버깅을 선택한 다음, 왼쪽 상단의 새 구성 버튼을 선택합니다.
빌드 구성을 설정합니다.
- 이름을 지정하고 C/C++ 애플리케이션을 해당 .elf 파일로 설정합니다.
- 자동 빌드 비활성화 선택합니다. :::note 디버그 세션을 시작하기 전에, 명령줄에서 대상을 빌드하여야 합니다. :::
디버거 및 시작 탭은 수정할 필요가 없습니다(아래 스크린샷으로 설정을 확인하기만 하면 됩니다).
# 문제 해결
# 패키지 관리자에 없는 대상 CPU
대상 CPU가 패키지 관리자에 표시되지 않으면, 레지스터 보기가 작동하도록 하려면 다음 단계가 필요할 수 있습니다.
TIP
이것은 일반적으로 발생하지 않아야 합니다(그러나 STM F7 컨트롤러에 연결할 때 일화적으로 보고되었습니다).
Peripheral View에 대해 누락된 SVD 파일 추가:
- MCU Eclipse가 패키지를 저장하는 위치를 찾으십시오(환경 설정 > C/C++ > MCU 패키지).
- http://www.keil.com/dd2/Pack/ 에서 누락된 패키지를 다운로드하십시오
- 압축 해제 도구로 다운로드한 팩을 열고 /CMSIS/SVD에서 .SVD 파일의 압축을 풉니다.
- 디버그 옵션 > GDB SEGGER JLink 디버깅 > SVD 경로에서 원하는 .SVD 파일을 선택하십시오.
← GDB SWD 디버깅 시스템 장애 주입 →