
cf. eMMC / NAND (스토리지 정상 동작 확인), Peripheral Bring-up(센서와 포팅이 필요한 드라이버 개발) )

: BSP 개발 과정은 크게 보드가 공장에서 갓 나왔을 때부터 리눅스가 부팅되어 애플리케이션이 돌기 직전까지를 포함합니다.
: 전원이 인가되지 않은 '깡통' 보드를 처음 살리는 단계입니다.
주요 업무 : 회로도(Schematic) 분석, 전원 시퀀스 확인, 메모리(DRAM) 초기화, 부트로더 포팅.
필수 기술 스택
- 언어 : C 언어 (Low-level), Assembly (ARM/RISC-V 초기화 코드)
- 하드웨어 지식 : 회로도 독해 능력, Datasheet 분석, JTAG/UART 디버거 사용법, 오실로스코프/로직 분석기 활용.
- 소프트웨어 : U-Boot (가장 널리 쓰이는 부트로더), ARM Trusted Firmware (ATF).
: 부트로더가 커널을 메모리에 로드하면, 리눅스 커널이 하드웨어 자원을 관리하도록 설정합니다.

주요 업무 : 커널 소스 설정(Kconfig), 디바이스 트리(Device Tree/DTS) 작성, 커널 패닉 디버깅.
필수 기술 스택
- Core : Linux Kernel Internals (스케줄링, 메모리 관리, 인터럽트 처리).
- Build : Cross-compiler (GCC, Toolchain), Make, Ninja.
- Config : Device Tree Overlay, Kernel Configuration.
: 카메라, 센서, 통신 모듈 등 주변 장치가 OS 위에서 동작하도록 드라이버를 작성합니다.
주요 업무 : I2C, SPI, UART, USB, PCIe, MIPI 등의 인터페이스 드라이버 작성 및 포팅.
필수 기술 스택
- Communication : I2C, SPI, UART, CAN, Ethernet, USB, PCIe 프로토콜 이해.
- Kernel API : kmalloc, ioremap, ioctl, Character/Block Device Driver 구조.
- Concurrency : Mutex, Semaphore, Spinlock (동시성 제어).
: 애플리케이션 개발자가 사용할 수 있는 루트 파일 시스템(RootFS)과 SDK를 만듭니다.
주요 업무 : 사용자 공간(User Space) 라이브러리 구성, 배포용 이미지 생성, OTA(Over-The-Air) 업데이트 구현.
필수 기술 스택
- Build System : Yocto Project (현업 표준), Buildroot.
- Scripting : Shell Script (Bash), Python (Bitbake 레시피 작성용).
기존에 작성된 드라이버 수정 및 포팅 가능
Yocto/Buildroot를 이용해 이미지 빌드 가능
C언어 포인터 및 메모리 구조 완벽 이해
신규 보드 Bring-up 주도 가능
커널 패닉 및 메모리 누수 원인 분석 및 해결
복잡한 인터페이스(PCIe, MIPI, USB 3.0) 드라이버 작성
성능 최적화(부팅 시간 단축, 전력 소모 개선)
전체 시스템 SW 구조 설계 (보안, 가상화, OTA 포함)
SoC 선정 및 하드웨어 팀과의 협업 리딩
Mainline Kernel(오픈소스) 기여 및 Upstream 관리
Hypervisor, TrustZone 등 고급 기술 적용
: BSP 개발자의 미래는 단순히 보드를 켜는 것을 넘어, 지능형 엣지(Edge) 디바이스를 위한 기반을 닦는 방향으로 나아가고 있습니다.
트렌드 : 요즘 SoC에는 CPU, GPU 외에 NPU(Neural Processing Unit)가 내장
BSP의 역할 : 단순히 OS를 올리는 것을 넘어, NPU 드라이버를 최적화하고 AI 모델(TensorFlow Lite, PyTorch 등)이 하드웨어 가속을 제대로 받도록 HAL(Hardware Abstraction Layer) 단을 구성해야 합니다.
필요 기술 : GPGPU(CUDA, OpenCL), NPU Driver Interface, Neural Network Compiler 구조 이해.
트렌드 : 로봇은 정해진 시간 내에 반드시 응답해야 하는 실시간성(Real-time)이 중요
BSP의 역할 : 일반 리눅스 커널을 RT-Preempt 커널이나 Xenomai 등으로 패치하여 실시간성을 보장해야 함
로봇 미들웨어인 ROS2(Robot Operating System)가 하드웨어 센서 데이터에 지연 없이 접근하도록 드라이버 레벨에서 최적화가 필요.
필요 기술 : RTOS 개념, RT-Linux Patching, ROS2 DDS(Data Distribution Service) 통신 구조, 센서 퓨전(Sensor Fusion)을 위한 드라이버 동기화.