누가 방산쪽 임베디드 개발자 되는 법 물어봐서 간단하게 정리 해봄

우선 기본적으로 알아야 할 교과목은 아래와 같음

1) C언어 - 자료구조 - 알고리즘

2) 운영체제 - RTOS
3) 디지털논리 - 컴퓨터구조 - 디지털시스템설계 (HDL)
최대한 마스터 하는 것이 좋음

방산쪽 임베디드 개발자가 만드는 것은 크게 두가지임
1) 데이터를 처리하는 SBC
2) 데이터 입출력 처리하는 IO보드

SBC는 쉬운 레벨부터 시작하는것이 좋음
라즈베리파이/오렌지파이/STM32/AVR 같은 저가 교육키트 사서 펌웨어 포팅부터 어플리케이션 구현부터 단계적으로 공부해나가면 됨
나중엔 GPIO와 빵판 연결해서 패턴 로직같은거 만들어보면 재미도 꽤 있을꺼임
그 후에는 OS 역할을 하는 vxWorks와 FreeRTOS를 다뤄보는게 좋음
vxWorks는 라이센스 때문에 안된다면 패스하고 FreeRTOS 조지셈 
님들이 좋아하는 오픈소스임 특히 아마존에서 배포하는 FreeRTOS가 좋음

IO보드쪽은 기존에 FPGA와 MCU 조합이 대세였는데 요즘은 단순한 MCU보단 복합적인 PL+PS 구조가 유행임
PL은 FPGA영역을 뜻하고 PS는 Tiny OS라고 생각하면 됨
이 분야를 꽉잡고 있는게 자일링스 Zynq 보드임
Zynq 개발용 키트 하나사서 FGPA로 Bitstream 만들어보고
FSBL 좀 분석해보고 자유롭게 수정 할 수 있으면 됨
FSBL을 이용해서 FreeRTOS로 분기하거나 Uboot으로 분기해서
Petalinux로 넘어가는 부팅 구조 파악하면 됨
Petalinux와서는 Device Tree 개념 좀 이해하고 Device Driver 통해서 FGPA 레지스터 제어하는 부분 익히면 됨

위에서 배운 SBC와 IO보드가 통신하기 위해서는 VME와 VPX를 익혀야함
이를 위해선 SBC가 Root가되고 IO보드는 EndPoint가 되는 구조를 이해해야함
보통 SW로 구현하거나 FPGA IP를 사용하기도함 
자일링스에 SW로 구현하는 Root/EndPoint 예시가 많이 있음

여기까지 되면 그다음에 회로 보는법이랑 전기/전자이론 독학해 나가면 됨