본문 바로가기

임베디드

아직도 크로스툴체인을 직접 만들어 쓰는 사람이 있나요?

10여년 전에는 ARM용 크로스 컴파일러를 직접 튜닝하고 빌드하는 것을 당연시 여기던 시절이 있었다.

gcc의 버그 픽스가 빈번하며, ARM architecture가 매우 빠르게 발전하던 시절에는 툴체인의 버전별 특성 때문에 삽질하는 경우도 많았다. 그 시절의 영향때문인지 요즘 나오는 임베디드 리눅스 서적에도 툴체인 만들기라는 챕터가 있다.

 

다양한 문제가 있었던 gcc 버전 2.x~3.x 시대가 지나가고 ARM architecture도 Cortex-A에서 10년 가까이 멈추어 있어 gcc 4.8 이상의 버전이라면 u-boot, kernel 뿐 아니라 Qt같은 프레임웍이나 어플리케이션까지 빌드하고 실행하는데 별 문제는 없다.

 

RISC-V같은 완전히 새로운 아키텍쳐가 아닌다음에야 전 세계에서 10억개 이상 보급된 ARM Cortex-A 시리즈 CPU라면 크로스툴체인을 직접 빌드하거나 튜닝하는 수고는 필요없는 시대가 되었다고 생각한다.

 

최근 5~6년간 ARM의 Linaro 그룹에서 크로스 툴체인을 꾸준히 관리하여 배포를 잘하고 있으니 그냥 받아서 사용하면 된다.

최신 버전 8.3이 보인다.

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads

 

5.x 이후로는 컴파일러의 최적화 성능에 큰 개선이 거의 없어 대부분의 칩셋 제조사 BSP는 지난 2년간 검증이 충분히 많이된 6.3을 사용하지만, 도전적인 개발자라면 8.2나 8.3을 이용하는것 같다.

 

보수적인(게으른) 나도 주로 2017년에 나온 6.3을 많이 사용하고 있다.

어제 발주한 PCB를 조립하여 하드웨어 테스트가 완료되면 툴체인을 최신으로 변경하여 다시한번 테스트를 해보아야 겠다.

나도 늦게나마 도전적인 개발자가 되고 싶어서.... ㅎㅎㅎ

 

<업데이트>

Buildroot를 테스트하면 최신 GCC 8.3 을 적용해 보았는데, u-boot과 Kernel 5.5 모두 문제없이 잘 동작하였다.