전기 자동차는 소프트웨어로 어떻게 개발할까?
마이컴은 구동부와 관련된 컴포넌트.
자율 주행, 인포테인먼트 시스템을 개발하기 위해서
시스템 소프트웨어 개발자가 관련된 드라이버를 개발해야 한다.
마이컴을 개발할 때도 시스템 소프트웨어 개발이 반드시 필요하다.
위 네 요소는 전기자동차 개발 관련 부품을 중심으로 설명한 것.
아래 시스템 소프트웨어 스택은 자율 주행, infotainment system, 마이컴을 개발할 때 사용이 되는 시스템 소프트웨어 스택에 대한 설명이다.
전기 자동차의 시스템 소프트웨어를 개발하던,
시스템 반도체의 시스템 소프트웨어를 개발하던,
AR 이나 VR 디바이스의 시스템 소프트웨어를 개발하던,
기본적으로 개발 분야 상관없이 시스템 소프트웨어로 채워야 할 개발 역량은 거의 유사하다.
Bootloader 의 기본 구조는 시스템 반도체를 개발할 때 사용되는 Bootloader 와 크게 다르지 않다. 대신에 Little Kernel(LK) 이라는 Bootloader 와 uboot 이라는 Bootloader 에서는 전기 자동차와 관련된 기능을 개발할 수 있는 주요 feature 가 각각의 Bootloader 에 구현이 된다고 보면 된다.
Linux kernel Driver 에서는 전기 자동차와 관련된 주요 부품을 개발할 수 있는 그런 코드가 추가 된다.
HAL(Hardware Adaptation Layer) 라이브러리도 마찬가지다.
다른 제품군과 비교했을 때, 전기 자동차를 개발할 때 추가적으로 많이 레퍼런스 되고 개발되고 있는 소프트웨어 스택은 하이퍼바이저다. 전기 자동차 시스템 소프트웨어 개발에서는 하이퍼바이저가 정말 많이 활용된다. 그리고 전기 자동차 개발에서는 안전 인증이 굉장히 중요한데, Functional Safety 와 관련된 스펙을 정의한 ISO26262 와 관련된 스펙을 준수해서 관련된 소프트웨어 컴포넌트를 개발해야 하고, 자동차 OEM 이 배포한 스펙의 내용을 잘 이해하고 이를 지키면서 개발하는 것이 중요하다.