STMicro 공식 제공 무료 IDE
Eclipse + GCC 기반의 별도의 무료 IDE였던 Atollic사의 TrueStudio와 STMicro에서 별도의 툴로 제공되었던 프로젝트 생성기인 CubeMX를 단일 IDE로 통합시킨 것.
컨트롤러용 펌웨어 개발 IDE는 MCU용 유료 IDE 업계의 양대 산맥인 KEIL이나 IAR이 주로 쓰였는데 STMicro에서 자사 무료 IDE인 CubeIDE에 힘을 주면서 어느 정도는 입지가 애매해진 상황이다.
KEIL이나 IAR의 강점은 8051같은 8비트급의 다종다양한 로우엔드 MCU를 대부분 포괄하는 광범위한 범위에서 통합된 개발환경을 신뢰성 있게 제공해 주는 것에 있고 이는 컴파일러 생태계가 전통적으로 부실했던 8비트급 MCU 생태계에서는 장점으로 작용했고 실제로도 두 회사는 그러한 장점을 무기로 시장 점유율을 굳혀 왔다.
STM32는 32비트급 ARM 아키텍처를 기본으로 하는 제품군이고 ARM 진영에서는 오래 전부터 걸출한 컴파일러인 GCC나 ARM에서 자체적으로 개발/출시한 RVDS가 버티고 있었기 때문에 두 회사가 가졌던 강점이 ARM 생태계에서만은 퇴색할 수 밖에 없었던 것.
IAR이나 KEIL의 컴파일러 성능을 대체로 비교하면 IAR/KEIL진영이 코드사이즈 축소를 좀 더 공격적으로 세세하게 옵션을 잡아서 하는 대신 생성되는 코드의 안정성이 좀 떨어지고 GCC는 반대로 코드는 근소하게 큰 대신 실행이 좀 더 안정적이다. 그런데 차이는 근소한 수준인데다가 프로그램코드에 할당되는 메모리공간이 상대적으로 부족한 8비트급 MCU에 비해 ARM기반 MCU는 메모리공간이 대체로 많다 보니 오히려 IAR/KEIL의 공격적인 코드사이즈 최적화의 의미가 퇴색될 수 밖에 없게 된 것. 때문에 무료이면서도 STMicro 본가에서 직접 개발하고 지원까지 해주는 CubeIDE에 비해서 IAR/KEIL의 입지는 상대적으로 취약할 수 밖에 없다.
Keil/IAR과 CubeIDE간의 보다 확실한 격차를 볼 수 있는 곳은 IDE의 UI 수준이다. CubeIDE는 일반적인 SW엔지니어들 입장에서 상당히 익숙한 업계표준급 범용 IDE인 Eclipse를 커스터마이즈한 제품이라서 UI도 중간수준은 되는 반면 Keil/IAR의 UI 수준은 90년대의 Visual Studio 6.0 시절의 UI와 유사하다
CubeIDE는 ST에서 직접 만드는 만큼 ST가 출시한 다른 STM32용 개발프로그램과 호환성이 높지만 IAR과 KEIL은 ST가 직접 개발한 Cube 시리즈 개발프로그램과 호환성이 보장되지 않는 경우가 많아 불편할수 있다. ST가 아톨릭을 인수한뒤 CubeMX말고 다른 개발 프로그램에 힘을 줘 다양한 프로그램이 나오고 있다는 점에서 Cube가 다른 툴에 비해서 가지는 강점이기도 하다.
여러 종류의 칩을 병행해 사용하는 회사의 경우 IAR이나 Keil의 범용성은 확실히 무시 못한다. Keil은 ARM의 자회사로, ARM 아키텍처가 적용된 MCU 거의 전 모델을 지원한다. IAR도 유사한 수준으로 지원한다.
IAR와 KEIL이 공격적으로 코드를 최적화해서 코드 사이즈가 조금 더 작으므로 메모리가 부족한 칩을 사용하는 프로젝트에서는 결국에는 IAR과 KEIL을 쓸 수밖에 없었음
KEIL/IAR 등을 선호한다는 것도 특별히 성능이나 기능이 뛰어나서라기 보다는 유료 개발 지원과 그에 따른 리스크 경감, 즉 몇백만원을 주고 책임 분산을 해줄 곳을 찾는 측면이 크다. 게다가 그 유료라는 것도 업체 입장에서는 1회성 비용으로 크게 비싼 것도 아니다.
따라서 이미 IAR이나 KEIL을 쓰는 업체가 CubeIDE계열로 바꿀 이유는 많지 않아 실제 업무에서 CubeIDE를 쓰는 회사 비중은 조금씩 늘어나고 있기는 하나 아직은 비중이 낮다.