본문 바로가기
개발이야기

PIC32 MPLAB X 개발 후기

by 코저씨 2022. 3. 13.
728x90

PIC32 로 신규 프로젝트를 진행하고 있었다.

펌웨어는 CPU 제조사에서 제공하는 컴파일러나 IDE를 쓰곤 하는데, PIC32를 개발하려면 마이크로칩사에서 추천하는 MPLAB IDE 프로그램을 써야 한다.

제조사가 직접 만든 컴파일러/IDE 이기에 개발자들에게 편의를 제공해야 하지만...

이 프로그램이 얼마나 엉망인지 알아 보려면 구글에서 “mplab very slow” 만 검색해도 불편함을 호소하는 개발자가 한 둘이 아니다.

 

게다가 IDE가 램도 많이 쓰기에 2기가는 금방 차지한다. 크롬도 아닌데 가끔씩 껏다 켜야 한다. 이클립스를 커스텀한것 같은데.

어떻게 만든건지..

 

게다가 가장 큰 문제 중 하나는 디버깅 할때마다 5분이 넘게 걸린다. 그나마 PICKit를 사용하면 빨라지긴 하나 2분이 넘는건...똑같다.

 

(추가로 테스트 해본 결과, 다른 JTAG들은 CPU에 프로그램을 구동하면서 컨트롤 하는 느낌인데,

이 녀석은 모든 에뮬레이션을 디버거에서 하고 코드를 돌릴 때마다 CPU에 실행 코드를 넘기는 느낌이다.

보통 다른 CPU들은 디버깅 중에 껏다 켜면 에러나지만 이녀석은 정상적으로 실행된다.)

 

 

그래도 세계적인 기업이라고 MPLAB에서는 Harmony 라는 개발 프레임워크를 제공한다.

API SDK만 배포하는 옛날과는 달리 LabView 처럼 쓰고자 하는 기능을 마우스로 연결하고 배치만 잘하면 라이브러리를 찾으러 다닐 필요없이 개발에 필요한 소스를 전부 프로젝트에 넣어준다.

(굳이 넣어준다고 말한 건, 소스를 넣기만 하지.. 예제를 만들어 주지는 않는다.
그래서 가독성이 떨어지는 Harmony의 소스를 분석해야만 소스를 활용할수가 있다.)

가독성이 떨어져서 이해하기가 너무 어렵다..

또.. Harmony 가 만들어 주는 API가 버그가 없는 건 아니다.

이번 프로젝트에서 찾은 버그만 해도 2-3개가 된다. 레지스터리 비트가 체크가 틀린다던가.. 변수 타입 선언이 잘못된다던가..


사실 마이크로칩을 욕하긴 했지만 자료는 엄청 많이 제공한다. 잘 찾으면 개발에 필요한 모든 자료가 홈페이지에서 찾을수가 있다.

또 포럼도 광범위해서 수많은 질문과 해결된 답들을 찾을수가 있다.

신뢰가 가는 포럼 유저의 프로필 사진
 

다만 ST의 CubeIDE 보다 상대적으로 성능이 떨어지고, 제공되는 소스도 가독성이 떨어지는 게 가장 큰 흠인 MPLAB ..

 

다음 프로젝트에서 PIC32를 쓴다고 하면 최소한 단가 문제, 수급문제가 아니라면 빼달라고 하고 싶다..

 

 

728x90