임베디드 스터디 - 요구사항 분석 / 시스템 아키텍처
요구사항 분석과 시스템 아키텍처를 학습한다. 기능/비기능 요구사항의 구분, 좋은 요구사항의 조건, 유스케이스와 시스템 경계, 레이어드/이벤트드리븐/파이프-필터/클라이언트-서버 아키텍처 패턴을 다룬다.
요구사항 분석과 시스템 아키텍처를 학습한다. 기능/비기능 요구사항의 구분, 좋은 요구사항의 조건, 유스케이스와 시스템 경계, 레이어드/이벤트드리븐/파이프-필터/클라이언트-서버 아키텍처 패턴을 다룬다.
임베디드 C++과 OOP를 학습한다. 레지스터 캡슐화·RAII, 복사 생성자의 얕은·깊은 복사, virtual 함수의 vtable 비용, 순수 가상 함수·다중상속·MISRA 허용 패턴, OOP 4대 원칙, 오버로딩·오버라이딩 차이, CRTP 컴파일 타임 다형성, 상속 vs 컴포지션을 다룬다.
리눅스 커널 부팅 과정을 학습한다. zImage 자가 압축 해제, 어셈블리 초기화 단계, start_kernel()의 서브시스템 초기화 순서(setup_arch·mm_init·sched_init), rest_init()의 PID 0·1·2 생성, initramfs 마운트와 /sbin/init 실행까지의 전체 흐름을 다룬다.
리눅스 커널 구성(Configuration) 시스템을 학습한다. Kconfig 언어의 tristate·bool·depends on·default 키워드, make menuconfig TUI 동작, .config 파일 구조, 빌트인(=y)과 모듈(=m)의 차이와 선택 기준을 다룬다.
리눅스 커널 빌드 과정을 학습한다. Kbuild 시스템의 계층적 Makefile 구조, ARCH·CROSS_COMPILE 환경변수로 크로스 컴파일러를 지정하는 방법, Kconfig·menuconfig·defconfig·.config 파일의 역할, vmlinux·zImage·uImage 빌드 결과물 변환 과정을 다룬다.
리눅스 커널 소스 트리 구조를 학습한다. arch/, drivers/, fs/, mm/, kernel/, net/, include/ 각 디렉토리의 역할과 책임 범위, 아키텍처 종속 코드와 공통 코드의 분리 원칙을 다룬다.
소프트웨어 공학과 SDLC 모델을 학습한다. 소프트웨어 위기의 배경, 폭포수·V-Model·프로토타이핑·나선형·애자일(Scrum) 모델의 특징과 강약점, 임베디드에서의 모델 선택 기준과 혼합 패턴을 다룬다.
임베디드 부트로더 레벨 전원 관리를 학습한다. Power-On Reset(POR)의 동작 원리, GPIO·RTC·통신 기반 Wake-up 소스와 부팅 경로 결정, Sleep 모드별 Wake-up 트리거 비교, Watchdog Timer 동작과 스타트업 코드에서의 WDT 처리 패턴을 다룬다.
임베디드 Linux의 OS 전원 관리를 학습한다. 시스템 Sleep 상태(S0~S4)와 /sys/power/state 제어, Suspend-to-RAM·Suspend-to-Disk 차이, Runtime PM의 usage count 기반 동작과 dev_pm_ops 콜백 구조, Linux PM 프레임워크 전체 계층을 다룬다.
임베디드 시스템의 전원 관리 하드웨어를 학습한다. LDO 레귤레이터 동작 원리, DC-DC 스위치 컨버터(Buck·Boost·Buck-Boost·Cuk)의 에너지 변환 방식, PWM·PFM 출력 방식 비교, PMIC의 Power Sequencing과 Latch-Up 방지를 다룬다.