자동차 통신

[자동차 통신] Flash Boot Loader 와 Reprogramming

딸기토끼0623 2025. 4. 2. 21:44

0. 펌웨어 속 Flash 구조와 Reprogram의 필요성

위는 실제로 Flash 에 담긴 모습으로, Boot SW (= FBL) 은 Flash 의 첫 주소지부터 시작한다. 펌웨어가 시작되었을 때 일반적으로 0번 주소지부터 읽기 시작하기 때문이다.

종류 설명
Normal SW (= Application SW) 실제로 서비스에 필요한 로직들이 담겨있는 sw이다.
Boot SW (= FBL) 가장 처음 실행되어, 디바이스의 각종 상태를 체크하는 등 Boot 과정을 거친후, Normal SW 영역으로 jump 한다.

 

질문은 여기서 시작된다.

당신은 1년에 50,000 대의 자동차를 판매하는 상용차 임베디드 개발자이다. 어느날, 당신은 당신이 개발하고 전 제품에 탑재된 펌웨어에 문제가 있음을 알게되었다. 이를 어떻게 수정할 것인가?

 

위 문제에선 다음과 같은 해결책들을 제시할 수 있을 것이다.

 

종류 설명
디버그 케이블 (Wired) 디버그 인터페이스를 통해 플래시 메모리에 직접 기록하는 방법. Normal/Boot 모두 적재 상태와 상관없이 기록할 수 있다.
CAN (Wired) Reprogrammer SW와 CAN 인터페이스를 통해 Noraml SW를 수정하는 방법이다. Boot SW가 없다면 불가능하며, Boot sw 에 CAN reprogramm 기능도 내장되어 있어야 한다.
Net (Wireless) Ethernet, LTE, Bluetooth 등 각종 네트워크 인터페이스를 사용해 Noraml SW를 수정하는 방법이다. Boot SW가 없다면 불가능하며, Boot sw 에 해당 Network 인터페이스를 통한 reprogramm 기능도 내장되어 있어야 한다.

 

상식적으로 수만대의 자동차의 ECU를 직접 찾아가 모두 디버그 케이블을 꽂고 ROM을 다시 쓸 수는 없는 노릇이다. 여기서 Boot SW 와 Reprogram의 필요성이 제기된다. (CAN & Net)


1. Flash Boot Loader (= Boot SW)

Vector Flash Bootloader

일반적으로 HW의 기본적인 검사를 수행하며, 문제가 없을 경우 곧바로 Application SW (= Normal SW) 등으로 Jump 하여 제어권을 넘겨주는 SW

 

위와 같은 상황에 대비해서 일반적으로 Boot SW는 Reprogramming 이라는 기능을 탑재하게 된다. 이 기능은 다양한 방식으로 Normal SW 영역의 Flash를 지우고 쓰게 된다. 따라서, 해당 SW가 없다면, 디버그 케이블을 직접 꽂는 방식이 아니라면, Normal SW 를 교체/변경할 수 없다.


2. 작동 로직

가장 간단하고 직관적으로 생각할 수 있는 로직일 것이다. Boot SW는 단 2가지만 체크한다.

1. FBL에 머무르면 되는가?
2. Normal SW가 있는가?

1번은 Flash 에 Marker등이 기록되어 있거나, CAN, Net 등 각종 인터페이스에서 FBL에 머무르라는 메세지가 오는지 확인하게 된다. 버튼을 눌러서 진입하게 로직을 짤 수도 있을 것이다.

2번또한 Marker나 기타 다른 신호를 통해 Normal SW가 존재하고, 진입해도 되는지를 판단하면 된다.

 

이제, Stay in Boot SW 일때 Reprogram 신호를 받아, Reprogram을 시작하면 되는 것이다. Reprogramming에 대한 로직과 통신 규약은 각자 정하기 나름으로, 상용 Bootloader를 사용한다면 그것을 쓰면 된다.


3. 번외. OTA란?

Over the Air

OTA는 물리적 연결 없이 무선 네트워크를 통해 업데이트를 전송하는 방법이다.

Normal SW를 네트워크로 전송하여, 원격에서 업데이트가 가능케 하는 방법이다. OTA 시스템은 주로 자동화되어있다. 판매된 HW 및 Firmware 는 주기적으로 서버에 접속하여 최신 SW 업데이트를 확인하고, 사용자 개입 없이 자동으로 업데이트를 받을 수 있다는 장점이 있다.

 

이를 위해선 (당연하지만) OTA 서버를 별도로 운영해야한다.

'자동차 통신' 카테고리의 다른 글

[자동차 통신] 점화 스위치와 CAN 통신  (0) 2025.03.24