Petalinux debugger sdk 문제

Juni and ING·2020년 8월 3일
0

petalinux

목록 보기
2/6

개요

 Petalinux v2019.2는 Yocto 프로젝트를 기반으로 하고 있고, 이를 위한 SDK를 제공하고 있다. 제공되는 SDK로 App, Driver module 등을 컴파일하거나 RootFS, Kernel을 Configuration을 한다. 그래서 SDK가 생성하는 모든 결과물은 동일한 플랫폼을 타겟으로 해야 한다.

 하지만 그러지 않는 점을 발견하였다.

설명

 Petalinux는 $petalinux-util --gdb 라는 Debugger sdk를 제공하고, $petalinux-build -c <app-proj-name>라는 Builder sdk도 제공한다. Debugging을 하려면, Debugger sdk에 설정된 타겟플랫폼과 Builder sdk가 생성하는 프로그램의 타겟플랫폼이 같아야 한다.

 그러나 Builder sdk가 생성하는 타겟플랫폼이 "aarch64-xilinx-linux" 인 반면, Debugger sdk에 설정된 타겟플랫폼은 "aarch64-none-elf"이다. 그래서 Debugging을 시도하면 에러가 발생한다.

타겟플랫폼 설정이 다른 모습

그로 인해 발생한 문제

 Debugger sdk는 Petalinux SDK를 설치하면 자동으로 설치 및 설정되는 것이기 때문에 내가 어떻게 설정을 바꿀 방법이 없다.

시도

일단 Debugger sdk를 사용하지 않고 "aarch64-xilinx-linux-gdb"를 직접 사용하였다. 이를 위해서는 SDK Generation 을 수행해야 하고 Ref doc Ch11에 묘사되어 있다.

SDK Generation

  1. SDK를 빌드한다.
    $petalinux --sdk

  2. SDK를 설치한다.
    $petalinux-package --sysroot

    대략 40분 걸린다...^^

  3. 설치가 완료되면, <plnx_proj_root>/images/linux/sdk 경로에 SDK와 Sysroot가 설치된다.

    • 명령어 목록에 "aarch64-xlinx-linux-gdb"를 비롯한 "aarch64-xilinx-linux-" Tool이 추가되는 것을 확인할 수 있다.
    • 나중에 gdb를 실행하고 gdb# set sysroot 설정을 할 때, 위에서 설치된 Sysroot의 경로로 설정하면 된다.

결론

 일단 이 현상은 Xilinx Korea의 Petalinux FAE님께 문의를 드렸다. 하지만 GDB에 대해서는 잘 모르신다고 하셨으니, 답변을 들으려면 꽤 시간이 걸릴 듯 하다.

 그 때까진 Debugger sdk 말고 gdb tool을 직접 지정 및 실행해서 쓰는 방법 밖에 없을 듯 하다.

profile
인기는 없지만 그래도 임베디드를 사랑하는 한 개발자

0개의 댓글