본문으로 건너뛰기

🔧 Embedded

임베디드 — 하드웨어 인터페이스, RTOS, 프로토콜

Modern Embedded Recipes

0

Modern Embedded Recipes — 모던 임베디드 실전 레시피 시리즈 소개

HW interface 기초부터 ARM·빌드·드라이버·peripheral·RTOS·Linux·메모리·동시성·디버깅·FPGA·Edge AI까지 임베디드 12 Part 종합 cookbook 148편.

1

디지털 신호 기초 — Voltage Level·Edge·Setup/Hold 분석

Voltage level·rise/fall time·noise margin·신호 무결성의 기본기.

2

임베디드 클럭과 타이밍 — Skew·Jitter·PLL·MMCM 분석

PLL·jitter·skew·setup/hold time — 디지털 시스템의 모든 동작의 근간.

3

GPIO 내부 구조 분해 — Push-Pull·Open-Drain·Schmitt Trigger

Push-pull·open-drain·pull-up/down·drive strength·slew rate.

4

UART 하드웨어 동작 분석 — Baud Rate·Framing·FIFO

Baud·framing·parity·FIFO·RS-232 레벨까지 UART 회로의 동작 원리.

5

SPI 하드웨어 분석 — Clock Mode·MOSI/MISO·Chip Select

MOSI/MISO/SCK/CS·CPOL/CPHA 4 모드·daisy-chain·high-speed signal 고려사항.

6

I2C 하드웨어 분석 — Open-Drain·Clock Stretching·Arbitration

SDA/SCL·7/10-bit addressing·ACK/NACK·clock stretching·풀업 크기 선정.

7

ADC 동작 원리 — SAR·Sigma-Delta·Pipelined 비교

Sampling·quantization·SAR vs sigma-delta·SNR·ENOB·aliasing.

8

DAC 동작 원리 — R-2R Ladder·Sigma-Delta·Settling Time

R-2R·delta-sigma DAC·glitch energy·monotonicity.

9

PWM 신호 생성 분석 — Duty·Frequency·Dead Time·Center-Aligned

Duty·frequency·dead-time·center-aligned·complementary 출력.

10

CAN 버스 전기적 특성 — Differential·Termination·Dominant/Recessive

CAN_H/CAN_L 차동 신호·120Ω termination·1Mbit 한계.

11

RS-485·RS-422 차동 신호 분석 — Termination·Biasing·Topology

Multi-drop·terminating·fail-safe biasing·노이즈 강한 환경.

12

LVDS 차동 신호 분석 — Common-Mode·Impedance·Eye Pattern

고속 차동 신호 (LVDS·LVPECL·CML)·impedance matching.

13

ARM Cortex-M 시리즈 비교 — M0·M3·M4·M7·M33·M55 분석

M0/M0+/M3/M4/M7/M33/M55/M85 — 어느 코어를 언제 쓰나.

14

ARM Cortex-A 시리즈 비교 — A53·A55·A72·A78·X1 분석

A53/A72/A78/Neoverse — 임베디드 Linux용 application 코어.

15

ARM 레지스터 구조 분석 — R0~R15·CPSR·SPSR·Banked Registers

R0-R15·xPSR·CONTROL·PRIMASK·BASEPRI — register set 전체 지도.

16

Cortex-M 예외 처리 — Vector Table·NVIC·Tail-Chaining 추적

NVIC·vector table·tail-chaining·late-arrival의 hardware 기반.

17

ARM 메모리 맵 분석 — Normal·Device·Strongly-Ordered Region

Code·SRAM·Peripheral·System 영역 — bitband·MPU 활용.

18

ARM L1·L2 캐시 분석 — Set Associative·Inclusive·Maintenance

I-Cache/D-Cache·write-through vs write-back·invalidate/clean.

19

ARM MPU 활용 — Region·Attribute·Privilege Separation

Region setup·attributes·fault analysis — 메모리 보호의 실전.

20

ARM MMU 기초 분석 — Translation Table·TLB·ASID

Page table·TLB·virtual address·Linux의 4-level paging.

21

ARM TrustZone-M 기초 — Secure/Non-Secure·NSC·MPC

Cortex-M33의 Secure/Non-Secure 분리·SAU/IDAU·NSC.

22

ARM Memory Barrier 실전 — DMB·DSB·ISB·DMA·MMIO

ARM memory barrier 실전. DMB/DSB/ISB 사용 시점. DMA·MMIO·self-modifying code.

23

임베디드 크로스 컴파일러 분석 — GCC·Clang·Sysroot 구성

arm-none-eabi-gcc/clang — 호스트와 타겟이 다른 컴파일러 체인.

24

C 컴파일 4단계 — Preprocess·Compile·Assemble·Link 추적

Preprocess·compile·assemble·link — `-E -S -c` 분해.

25

ELF 파일 구조 분석 — Section·Segment·Symbol Table·DWARF

Header·sections·symbols — `readelf`로 dissect.

26

링커 스크립트 기초 — SECTIONS·MEMORY·entry point

MEMORY·SECTIONS·alignment·기본 layout.

27

링커 스크립트 고급 — Overlay·BSS·init_array·LMA/VMA

LMA vs VMA·KEEP·AT>·overlay·custom section.

28

임베디드 스타트업 코드 분석 — Reset_Handler·Vector Table·SystemInit

Reset_Handler·vector table·__libc_init_array·main 진입.

29

C 런타임 crt0 분석 — Stack·BSS Zero·Data Copy·atexit

crt0·.data 복사·.bss 클리어·ctors·atexit.

30

임베디드 메모리 레이아웃 — .text·.rodata·.data·.bss·.heap·.stack

Stack/heap/static — 누가 어디 사는가.

31

임베디드 컴파일러 최적화 분석 — -O0~-O3·-Os·-LTO 비교

-O0/-O1/-O2/-O3/-Os/-Og — 옵션별 차이와 디버깅 가능성.

32

Map 파일 분석 — Symbol·Section·Size 추적으로 코드 크기 진단

메모리 사용·심볼 위치·dead code 추적.

33

Make·CMake 크로스 컴파일 — Toolchain File·Sysroot 통합

Embedded 빌드 시스템 — toolchain file·target_link_options.

34

임베디드 Bootloader 체인 — BootROM·SPL·U-Boot·Kernel·Secure Boot

Cortex-A 부팅 단계. BootROM → SPL → U-Boot → Linux. Secure boot, FIT image, A/B.

35

첫 bare-metal 프로그램 작성 — Linker·Startup·main의 최소 구성

LED toggle — 최소한의 startup·main·loop.

36

MMIO 레지스터 직접 접근 — volatile·Memory Map·Aliasing 분석

volatile·MMIO·packed struct — peripheral register 다루기.

37

GPIO 드라이버 직접 구현 — STM32 HAL 없이 레지스터로

Mode/speed/pull/AF — STM32 기준 register-level driver.

38

임베디드 클럭 설정 분석 — HSE·PLL·SYSCLK·AHB/APB 분주

HSE/HSI·PLL·peripheral clock enable — 코어/주변기기 클럭 트리.

39

Cortex-M 인터럽트 핸들링 — NVIC·Priority·Vector·EXTI

NVIC 설정·ISR 작성·prologue/epilogue·priority.

40

SysTick 타이머 활용 — 24-bit Counter·1ms Tick·delay 구현

1ms tick·delay·jiffies — RTOS 없이 시간 처리.

41

UART 드라이버 구현 — polling·interrupt·DMA 3가지 방식 비교

3가지 모드의 trade-off — CPU 사용량·latency·throughput.

42

SPI 드라이버 구현 — Master·Slave·CRC·DMA

Master/slave·CPOL/CPHA·DMA·multi-slave CS.

43

I2C 드라이버 구현 — Master·7-bit/10-bit·Clock Stretching 처리

Master·repeated start·NACK 처리·timeout.

44

임베디드 DMA 기초 — Memory-to-Memory·Peripheral·Circular Mode

Channel·trigger·half/full complete·circular·memory-to-memory.

45

저전력 모드 분석 — Sleep·Stop·Standby·Wake-up Source

Sleep/Stop/Standby·wake-up source·전류 측정.

46

IWDG·WWDG 워치독 구현 — Independent vs Window 비교

Independent vs Window·refresh 전략·debug 모드 freeze.

47

임베디드 Flash 프로그래밍 — Erase·Program·Read While Write

내부 erase/write·dual bank·EEPROM emulation.

48

DDR 초기화 실패 진단 — Timing·Calibration·Walking Bit Test

DDR3/4 초기화 sequence. ZQ calibration, write leveling, walking bit test, JESD79 사양.

49

PWM 출력 실전 — LED 밝기·모터 속도 제어

Timer로 PWM 생성·duty 변경·complementary 출력.

50

DC 모터 제어 — H-Bridge·PWM Duty·Encoder Feedback

H-bridge·PWM·방향·역기전력 보호.

51

스테퍼 모터 제어 — Full Step·Half Step·Microstepping

Full-step·half-step·micro-step·가속/감속 프로파일.

52

서보 모터 제어 — PWM 1ms~2ms·Closed Loop·PID

PWM-based 제어 (50Hz, 1~2ms duty)·각도 매핑.

53

Character LCD 제어 — HD44780·4-bit Mode·Custom Char

4/8-bit 모드·command·custom character·timing 준수.

54

SPI OLED 제어 — SSD1306·Frame Buffer·Page 단위 갱신

128×64 OLED·framebuffer·page mode·partial update.

55

TFT 디스플레이 구동 — RGB565·FSMC·LTDC·DMA2D

Parallel RGB·framebuffer·LTDC·tearing 방지.

56

환경 센서 활용 — BME280 온습압·SHT3x·BMP180 비교

BME280·SHT3x — I2C·SPI 센서 driver 패턴.

57

IMU 센서 활용 — MPU6050·LSM6DSO·Sensor Fusion

MPU6050·BMI270 — sensor fusion 입력 단계.

58

CAN 통신 구현 — bxCAN·Filter·Mailbox·CAN-FD

Frame format·filter·bit timing·error frame.

59

USB Device 기초 — Descriptor·Enumeration·Endpoint·HID/CDC

CDC·HID class — STM32 USB stack 활용.

60

Ethernet MAC+PHY 통합 — RMII·lwIP·DMA Descriptor

RMII·MDIO·lwIP raw API·DHCP·HTTP server.

61

SD Card + FatFs 구현 — SPI/SDIO 모드·CSD/CID·Wear

SPI 모드 vs SDIO·FatFs port·long filename.

62

RTC 활용 — Calendar·Alarm·Wake-up Timer·Backup Domain

Battery backup·alarm·calendar·tamper.

63

RTOS 도입 결정 분석 — Super Loop vs RTOS 트레이드오프

Super-loop와 RTOS의 분기점, RAM/Flash 비용, 디버깅 복잡도, 결정 기준을 한 자리에 정리합니다.

64

RTOS Task 설계 패턴 — 우선순위·스택·State Machine

Periodic, event-driven, state machine 세 가지 task 패턴과 priority 산정 기준을 정리합니다.

65

RTOS Scheduler 동작 분석 — Tick·Context Switch·Yield

Preemptive와 cooperative, time-slice, context switch 비용, tickless idle까지 scheduler가 실제로 어떻게 도는지 정리합니다.

66

RTOS Semaphore 활용 — Binary·Counting·ISR Give

Binary semaphore signaling, counting semaphore resource pool, ISR-to-task wake-up 패턴을 정리합니다.

67

RTOS Mutex 활용 — Recursive·Priority Inheritance 적용

Mutex와 binary semaphore의 차이, priority inheritance, recursive lock, timeout, ownership 규칙을 정리합니다.

68

RTOS Queue 활용 — By-Value·By-Reference·Timeout 패턴

RTOS queue로 producer-consumer를 구성하고, by-value vs by-pointer, backpressure, zero-copy queue까지 정리합니다.

69

RTOS Event Group 활용 — Bit Wait·Sync·Notify

Event group bit, set/clear, AND/OR 조건 wait, broadcast로 다중 task synchronization을 정리합니다.

70

RTOS Software Timer 활용 — One-shot·Auto-reload·Daemon Task

Software timer와 hardware timer의 분기점, one-shot/auto-reload, timer task context, delete 시 race를 정리합니다.

71

ISR-Safe API 설계 — Reentrant·Atomic·Defer 패턴

ISR 안전 함수 작성. Reentrant, atomic 변수, deferred work, FromISR variant.

72

Priority Inversion 진단·예방 — Mars Pathfinder Lesson 추적

Priority Inversion 발생 시나리오. Mars Pathfinder 사례. PI mutex, Priority Ceiling.

73

Timer Wheel 분석 — Hashed·Hierarchical·O(1) Tick

Timer wheel 자료구조. Hashed wheel·hierarchical wheel·O(1) tick·Linux jiffies.

74

RTOS 디버깅 기법 — Tracealyzer·SystemView·Stack 추적

Stack high-water mark, overflow hook, deadlock 탐지, heap 분석, trace 도구까지 RTOS 디버깅을 한 자리에 정리합니다.

75

임베디드 Linux 부팅 흐름 분석 — BootROM·U-Boot·Kernel·init

BootROM, SPL, U-Boot, Kernel, Init까지 각 단계의 책임과 ATF/OP-TEE, initramfs, init 시스템 선택을 정리합니다.

76

U-Boot 활용 — bootcmd·env·tftp·boot.scr 분석

U-Boot environment, script, bootcmd, TFTP/Fastboot, UEFI 모드까지 현장에서 쓰는 패턴을 정리합니다.

77

Device Tree 실전 — DTS·DTB·Overlay·Phandle 추적

Device Tree Source 문법. DTC 컴파일. Overlay로 dynamic 변경. Linux driver match.

78

Device Tree Overlay 적용 — Runtime fragment·dtoverlay

DT overlay의 fragment, target, symbol, dtoverlay 명령, Raspberry Pi 적용 예까지 동적 device 활성화를 정리합니다.

79

임베디드 커널 빌드 — defconfig·menuconfig·Image·zImage

Kernel source, defconfig, menuconfig, cross-compile, module 빌드, deb/rpm 패키징까지 KBuild 전 과정을 정리합니다.

80

커널 모듈 기초 — init/exit·Parameter·KBuild·DKMS

Linux kernel module의 진입점, 모듈 파라미터, KBuild Makefile, insmod 흐름, DKMS 배포까지 한 번에 정리합니다.

81

캐릭터 드라이버 작성 — file_operations·cdev·register_chrdev

file_operations, cdev, minor 번호, copy_to/from_user, blocking I/O, misc device 단축 경로까지 character driver의 표준 패턴을 정리합니다.

82

Platform 드라이버 작성 — probe·remove·of_match·DT 바인딩

platform_driver_register, of_match_table, probe/remove, devm_* 자원 관리, IRQ와 MMIO 획득까지 platform driver의 표준 패턴을 정리합니다.

83

mmap 4가지 모드 — Anonymous·File·Shared·Huge Page

mmap의 네 가지 사용 모드와 madvise·MAP_HUGETLB·mlock을 코드와 측정값으로 정리합니다.

84

epoll 실전 — LT·ET·ONESHOT·EXCLUSIVE 비교

select·poll의 한계와 epoll의 트리거 모드, ONESHOT·EXCLUSIVE 플래그를 코드와 성능으로 비교합니다.

85

UIO·VFIO 분석 — User-Space Driver와 IOMMU 격리

UIO·VFIO로 user space에서 hardware를 다루는 방법, IOMMU 기반 DMA 안전성, DPDK·SPDK 사용 패턴을 정리합니다.

86

sysfs·configfs 활용 — kobject 기반 User 인터페이스

sysfs attribute, attribute group, configfs로 user space에서 driver를 제어하는 표준 패턴을 정리합니다.

87

IRQ Affinity 튜닝 — smp_affinity·isolcpus·irqbalance

IRQ를 코어에 고정하는 방법과 isolcpus·irqbalance·threaded IRQ의 상호작용을 측정과 함께 정리합니다.

88

루트 파일시스템 구축 — Buildroot 기초·Package·Toolchain

Buildroot 설정, package 추가, post-build script, toolchain 선택, Yocto와의 trade-off를 정리합니다.

89

임베디드 동적 메모리 — malloc 위험·결정성·대안 분석

Malloc의 fragmentation과 비결정성, pool/arena/slab 대안, FreeRTOS heap_4/5와 정적 대안까지 임베디드의 메모리 전략을 정리합니다.

90

메모리 정렬과 패딩 분석 — Natural·Strict Alignment·Trap

Natural alignment, struct padding 규칙, packed의 unaligned access penalty, offsetof와 alignof 사용을 정리합니다.

91

Cache Line Alignment — alignas·Padding·SoA 적용

Cache line 정렬과 false sharing 회피, hot/cold 분리, SoA 변환을 코드와 측정으로 정리합니다.

92

DMA-Friendly Allocator — dma_alloc_coherent·IOMMU·Pool

DMA buffer 할당 패턴을 coherent와 streaming, CMA, IOMMU, MPU non-cacheable 영역으로 나눠 정리합니다.

93

Zero-Copy Pipeline — DMA-BUF·sendfile·io_uring·splice

Camera→GPU→Encoder→Network pipeline에서 memcpy를 모두 제거하는 패턴을 모았습니다.

94

NUMA Memory Topology — numactl·numa_alloc·HBM 적용

NUMA node topology, numactl 운영, libnuma API, HBM/CXL tier, 자동차 ECU의 mini-NUMA까지 정리합니다.

95

SIMD 활용 분석 — Intrinsics·Auto-Vectorization·OpenMP SIMD

Auto-vectorize, intrinsics, OpenMP SIMD pragma 세 갈래를 데이터 layout과 함께 정리합니다.

96

ARM NEON 심화 — Matrix Multiply·FFT·Image Filter 적용

NEON 실전 사례를 matrix multiply, color conversion, box filter, Sobel, FFT, crypto로 묶어 정리합니다.

97

임베디드 스택 분석 — high-water·overflow 탐지

Stack 패턴 채우기로 high-water mark, overflow hook, canary, MPU guard region, RTOS task stack 분석을 한 자리에 정리합니다.

98

임베디드 코드 크기 최적화 — -Os·LTO·Section Garbage Collection

-Os, LTO, function-sections, --gc-sections, strip, newlib-nano, printf-tiny까지 펌웨어 binary 크기를 줄이는 단계별 기법을 정리합니다.

99

임베디드 전력 최적화 — Sleep Mode·Clock Gating·DVFS

Active와 sleep, peripheral clock gating, DVFS, tickless idle, µA-level 측정까지 임베디드 전력 절감 기법을 정리합니다.

100

WCET 분석 기법 — Static·Measurement·Hybrid 방법론

WCET와 ACET의 차이, 측정 기반과 static analysis, cache 영향, hard real-time 요구사항을 정리합니다.

101

Lock-Free Ring Buffer 구현 — SPSC·Power-of-2·Memory Order

SPSC ring 구현. Power-of-2 size, head/tail atomic, memory order release/acquire.

102

Wait-Free Signaling — Atomic Flag·Sequence·Latest-Value

Wait-free 보장 patterns. Atomic flag, sequence number, latest-value (double buffer).

103

RCU (Read-Copy-Update) 기초 — Quiescent State·Grace Period

RCU 원리, rcu_read_lock, grace period, synchronize_rcu, 임베디드 적용(URCU)을 정리합니다.

104

Hazard Pointer 분석 — Lock-Free Memory Reclamation

Lock-free 메모리 회수, ABA 회피, RCU와의 비교, C++ proposal까지 hazard pointer의 원리와 구현을 정리합니다.

105

Compare-And-Swap 패턴 — Stack·Counter·Linked List 적용

CAS loop, strong과 weak CAS, ABA 회피, exponential backoff, spurious failure까지 CAS 사용의 표준 패턴을 정리합니다.

106

Atomic Operation 비용 분석 — Fence·Cache Line·Contention

memory_order별 ARM 명령어 차이, LSE vs LL/SC, hot spinning 회피까지 atomic 연산의 실측 비용을 정리합니다.

107

Spinlock vs Mutex 결정 가이드 — Context Switch·Hold Time

Lock hold time, 코어 수, preemption, real-time 요구사항에 따라 spinlock과 mutex를 어떻게 고를지 ticket lock과 MCS lock까지 함께 정리합니다.

108

ABA 문제 회피 — Tagged Pointer·Hazard·Generation Counter

ABA 시나리오, tagged pointer (64-bit + tag), version counter, hazard pointer 활용, 실제 사례를 정리합니다.

109

False Sharing 해결 — Cache Line Padding·SoA 적용

False sharing의 원리와 영향, perf c2c 감지, alignas(64) padding, per-CPU 변수, thread-local까지 해결 전략을 정리합니다.

110

MPMC Queue 구현 — Multi-producer Multi-consumer Lock-Free

MPMC와 SPSC 차이, Vyukov 큐, Disruptor의 ring과 sequence, bounded와 unbounded 비교를 실측과 함께 정리합니다.

111

임베디드 디버깅 마인드셋 — 가설·격리·재현·이분탐색

가설-검증 사이클·binary search·changelog·rubber duck — 임베디드 디버깅의 사고 도구.

112

JTAG·SWD 안 붙을 때 — 핀·전압·속도·세션 진단

JTAG·SWD 디버깅 체크리스트. Pin·voltage·clock·daisy chain·security 잠금.

113

GDB 원격 디버깅 — OpenOCD·J-Link·target remote 구성

OpenOCD·pyOCD로 target에 붙고, .gdbinit으로 반복 작업을 자동화하는 패턴을 정리합니다.

114

Cortex-M 하드폴트 분석 — Stacked Frame·CFSR 읽기

Cortex-M HardFault 핸들러에서 stacked PC·LR·CFSR을 추출해 정확한 fault 위치를 찾는 절차를 정리합니다.

115

UART 안 찍힐 때 — Bare-metal 체크리스트

UART 디버깅. 클럭·핀·baud·로직 레벨·종단·인쇄 단계별 체크.

116

임베디드 부팅 실패 진단 — 단계별 Isolation

전원·reset·clock·vector table·main 진입까지 단계별로 isolation하는 부팅 디버깅 절차를 정리합니다.

117

인터럽트 누락·중복 진단 — Priority·Pending·Re-entry 추적

NVIC pending·priority·level vs edge·shared IRQ — 인터럽트 동작 이상의 흔한 원인을 잡습니다.

118

메모리 오버플로우·오염 진단 — Canary·MPU·Pattern 분석

Heap canary·MPU guard·data watchpoint·desktop ASan — 임베디드 메모리 오염을 잡는 도구를 정리합니다.

119

타이밍·Race 진단 — Heisenbug 잡는 법

printf로 race가 사라지는 이유와 SWO/RTT·DWT 사이클 카운터·GPIO pulse로 non-intrusive하게 race를 가시화하는 방법.

120

통신 프로토콜 분석 — Logic Analyzer와 Protocol Decoder

Saleae·DSLogic·oscilloscope·protocol decoder로 UART/SPI/I2C/CAN 신호를 캡처·디코딩하는 실전 패턴.

121

임베디드 로깅 시스템 설계 — 레벨·버퍼·SWO·Deferred

임베디드 환경에서 overhead를 최소화한 로깅. 레벨 분리·circular buffer·SWO/RTT·deferred 처리 패턴.

122

임베디드 포스트모템 분석 — Core Dump와 Field Crash

Linux coredump·gdb 분석부터 MCU 환경의 mini-dump(Memfault)·last-gasp logging·field debug 패턴까지.

123

FPGA 기초 분석 — LUT·FF·BRAM·DSP 자원 구조

LUT·Flip-Flop·BRAM·DSP slice·clock region·IO bank — FPGA 구성 요소를 임베디드 관점에서 정리합니다.

124

Vivado 사용법 — Project·Constraint·Synth·Impl·Bitstream

Vivado project 흐름·XDC constraint·synthesis/implementation·timing report·bitstream programming의 실전 패턴.

125

PCIe BAR 매핑 분석 — Config Space·Enumeration·MMIO 접근

PCIe BAR (Base Address Register), enumeration, sizing, MMIO 매핑, ioremap.

126

AXI 인터페이스 — AXI4·AXI4-Lite·AXI-Stream 비교

AMBA AXI4·AXI4-Lite·AXI-Stream을 역할별로 구분해 사용하는 법과 burst·outstanding·deadlock 회피를 정리합니다.

127

Zynq PS-PL 통신 — GP·HP·ACP 인터페이스 선택

Zynq의 GP·HP·ACP·M_AXI·S_AXI 인터페이스를 latency·throughput·cache coherence 관점에서 비교합니다.

128

Mailbox Protocol 분석 — Host와 Accelerator를 잇는 Doorbell

Host CPU와 FPGA·NPU·보조 CPU를 잇는 mailbox 프로토콜을 register layout, doorbell IRQ, sequence·CRC, OpenAMP 비교 관점에서 정리합니다.

129

Command Queue·Submission Queue — NVMe·XDMA 공통 패턴

Submission/Completion Queue 패턴을 NVMe·io_uring·Xilinx XDMA·Vulkan 사례로 묶어 정리합니다. Doorbell, phase bit, multi-queue 확장까지.

130

DMA Completion 메커니즘 — Interrupt·Polling·Completion Ring

DMA가 끝났음을 알려주는 세 가지 방식을 비교합니다. Interrupt, polling, completion ring과 IRQ coalescing의 trade-off를 정리합니다.

131

PCIe Streaming 분석 — BAR Type·MSI-X·Kernel Bypass

PCIe로 streaming traffic을 다룰 때 알아야 할 BAR 종류, prefetchable 의미, MSI-X 분산, posted/non-posted 순서, kernel bypass 패턴을 정리합니다.

132

Vitis HLS 분석 — Pragma·Pipeline II·Dataflow 실전 감각

Vitis HLS로 C++ 코드를 RTL로 합성할 때 II=1을 끌어내는 pragma 조합, dataflow, AXI 인터페이스 결정을 실전 패턴 중심으로 정리합니다.

133

HLS 최적화 기법 — Pipeline·Unroll·Partition·Dataflow

Vitis/Vivado HLS의 pragma로 II=1 pipeline·array partition·dataflow를 적용해 throughput을 극대화하는 패턴.

134

Vitis AI 분석 — DPU·xmodel·VART

Xilinx Vitis AI로 TensorFlow/PyTorch 모델을 DPU용 xmodel로 quantize·compile하고 VART로 실행하는 흐름.

135

OpenCL on FPGA — Kernel·Channel·Burst Memory 분석

Intel/AMD FPGA에서 OpenCL kernel·channel·burst memory를 활용하는 패턴과 SYCL/oneAPI FPGA backend.

136

Intel Quartus 사용법 — Platform Designer·Nios II·HLS

Intel Quartus Prime·Platform Designer(Qsys)·Nios II soft processor·Intel HLS·partial reconfig 사용법.

137

Edge Inference 분석 — Cloud vs Edge·Latency·Privacy

Edge inference가 cloud 대비 언제 답인지, MCU부터 server-class edge까지 하드웨어 스펙트럼과 프레임워크 선택, 3-stage pipeline 설계를 정리합니다.

138

NPU 아키텍처 분석 — Ethos·Hexagon·Systolic Array 비교

Arm Ethos·Qualcomm Hexagon·Apple Neural Engine 등 NPU 내부 구조와 systolic MAC array·INT8·memory hierarchy.

139

딥러닝 Quantization 분석 — PTQ·QAT·INT8·INT4·Calibration

FP32→INT8/INT4 양자화의 수식, PTQ와 QAT 차이, per-channel·per-tensor 선택, LLM용 GPTQ·AWQ까지 실전 패턴을 정리합니다.

140

TensorRT 분석 — ONNX→Engine·FP16·INT8·DLA·Multi-Stream

NVIDIA TensorRT로 ONNX 모델을 engine으로 빌드하고 FP16·INT8·DLA·multi-stream으로 throughput을 끌어올리는 패턴을 정리합니다.

141

TFLite Micro 분석 — Op Resolver·Tensor Arena·Cortex-M

MCU용 TensorFlow Lite Micro의 구조, op resolver·tensor arena·CMSIS-NN integration·Ethos-U delegate.

142

ONNX Runtime 분석 — Execution Provider와 Cross-Platform 배포

ONNX format·ONNX Runtime의 Execution Provider (CUDA·TensorRT·DML·CoreML)·embedded build·cross-platform inference.

143

Edge Thermal Management — Throttling·DVFS·Fan Curve·Sustained

Edge AI 보드의 sustained 성능을 결정하는 thermal 한계. throttle trip, DVFS, fan curve, nvpmodel, passive cooling 설계를 정리합니다.

144

NVIDIA Jetson 분석 — Nano·Xavier·Orin·Thor·JetPack·DLA·VPI

Jetson 라인업의 power·성능 trade-off, JetPack 구성, DLA·VPI·DeepStream을 묶어 자율주행·로봇 stack에서 쓰는 패턴을 정리합니다.

145

Zero-Copy Camera Pipeline — V4L2·DMA-BUF·GPU Import·NPU 직결

카메라부터 NPU·display까지 한 frame이 한 physical page를 유지하도록 V4L2·DMA-BUF·EGL·CUDA를 연결하는 패턴을 정리합니다.

146

온디바이스 LLM 추론 — llama.cpp·GGUF·MLX·KV Cache·NPU Backend

4-bit 양자화된 LLM이 모바일·edge에서 동작하는 시대. llama.cpp/GGUF, Apple MLX, KV cache 메모리, 백엔드 선택을 정리합니다.

147

Cortex-M33 TF-M·TrustZone — Secure Firmware·PSA·MCUboot

Cortex-M33+ TrustZone-M 위에 TF-M으로 secure firmware를 구성하는 패턴. SPE/NSPE, PSA Crypto/ITS/Attestation, MCUboot secure boot를 정리합니다.

148

Matter·Thread 분석 — IoT 통합 표준·Commissioning·Multi-Fabric

Apple·Google·Amazon·Samsung이 공동으로 만든 Matter 1.3/1.4와 Thread 1.3 mesh를 합쳐 IoT device를 한 번에 모든 ecosystem에 등록하는 패턴을 정리합니다.

149

PCIe → CXL 진화 — 같은 PHY 위 cache-coherent 프로토콜 추가

PCIe 5.0/6.0 PHY 위에서 CXL이 어떻게 cache coherency를 얹는지 — Flex Bus, 세 프로토콜 다중화, Type 1/2/3 디바이스 구분.

150

QEMU CXL Type 3 디바이스 에뮬레이션 — 노트북에서 CXL 개발 환경 구축

QEMU 8.0+로 CXL Type 3 개발 환경을 30분 안에 세우는 레시피 — 한 번에 붙여넣는 실행 명령, 부팅 후 검증 순서, 처음 세울 때 걸리는 함정.

151

Linux CXL 드라이버 분석 — cxl_pci·cxl_core·region·DAX

CXL 디바이스가 메모리로 안 올라올 때 모듈 체인·sysfs·mailbox 중 어디서 끊겼는지 좁혀 가는 절차.

Embedded Performance Engineering

0

Embedded Performance Engineering — 임베디드 성능 엔지니어링 시리즈 소개

왜 느린가? Cache miss, pipeline stall, bus contention부터 profiling 도구 활용까지. 임베디드 시스템 성능 분석의 모든 것.

1

임베디드 성능 분석 방법론 — Measure → Analyze → Optimize 사이클

감으로 최적화 금지. USE·RED 메서드, 임베디드 적용. 과학적 접근의 시작.

2

성능 지표 정의 — Latency·Throughput·Utilization 분석

3 핵심 지표 + 임베디드 추가 — Jitter·Deadline. Service time vs Response time.

3

성능 측정의 기본 — Wall-Clock·CPU Cycle·Instruction Count

어떻게 측정하나. DWT, PMU, clock_gettime, GPIO + 로직 분석기. Overhead 줄이기.

4

성능 데이터 통계적 분석 — Percentile·Histogram·평균의 함정

평균은 거짓말. p99·p999·max·long tail. HdrHistogram·임베디드 fixed-bucket.

5

실시간 성능 분석 — WCET·Jitter·Deadline Miss 측정

Real-time 시스템의 측정 — 평균 아닌 worst-case. WCET 4 방법과 jitter·tardiness 분석.

6

임베디드 벤치마킹 기초 — 재현성·Warmup·노이즈 제거

신뢰할 수 있는 벤치마크는 warmup, isolation, multi-run이 필요합니다. CoreMark·Dhrystone·SPEC을 살펴봅니다.

7

성능 모델링 — Amdahl·Gustafson·Roofline Model 적용

최적화 한계를 예측하는 수학 모델. Serial 부분이 결정. Memory-bound vs Compute-bound.

8

프로파일링 기법 개요 — Sampling vs Instrumentation·PGO·LTO

두 가지 큰 접근을 비교합니다. Sampling은 perf처럼 가볍고 Instrumentation은 gprof처럼 정확하지만 무겁습니다. PGO로 최적화하는 방법도 다룹니다.

9

CPU 파이프라인 분석 — 5-stage·Cortex-M·Cortex-A 비교

Fetch·Decode·Execute·Memory·Writeback의 5-stage 파이프라인을 봅니다. Cortex-M3/M4는 3-stage, Cortex-A는 8~15-stage입니다.

10

Pipeline Stall 분석 — Data·Structural·Control Hazard·Forwarding

Stall은 pipeline bubble을 만듭니다. RAW·WAR·WAW hazard, forwarding, PMU STALL counter를 살펴봅니다.

11

Branch Prediction 분석 — Static·2-bit·BTB·BHT·Mispredict 비용

BTFNT, 2-bit saturating counter, BTB·BHT. Mispredict 10-20 cycle. PMU BR_MIS_PRED.

12

Speculative Execution 분석 — OoO·Reorder Buffer·Register Renaming

Out-of-order execution. ROB·issue queue·rename. Spectre 측면. Cortex-A 사례.

13

CPU Cache 기초 — L1·L2·L3·Set Associative·Replacement Policy

Cache hierarchy. Direct mapped vs N-way set associative. LRU·PLRU·Random.

14

Cache Miss 3C Model 분석 — Compulsory·Capacity·Conflict

Cold/Compulsory, Capacity (working set > cache), Conflict (associativity 한계).

15

Cache Line 최적화 — Alignment·Prefetch·False Sharing 처리

64-byte line alignment, software prefetch, false sharing 회피, SoA·AoS 선택.

16

메모리 대역폭 분석 — STREAM·Roofline·Bus Saturation 측정

STREAM benchmark (Copy·Scale·Add·Triad). Roofline. PMU BUS_ACCESS · DDR bandwidth.

17

SIMD·NEON 활용 — 128-bit Vector·Auto-Vectorization·SVE/SVE2

ARM NEON 128-bit, SVE 가변폭. Auto-vectorize (-O3). Intrinsics. Cortex-M Helium (MVE).

18

PMU·HPM 하드웨어 카운터 분석 — 정밀 성능 진단

ARMv8 PMU 6+ counter, RISC-V HPM. CYCLE·INST_RETIRED·CACHE·BRANCH. perf 활용.

19

임베디드 Bus Architecture — AHB·AXI·CHI 진화와 5-Channel

ARM AMBA — AHB·APB·AXI·ACE·CHI. AXI 5 channel, burst, outstanding transaction.

20

Bus Contention 진단 — Arbitration·QoS·Starvation 측정

Round-robin·priority·QoS arbitration. Master 다수 시 starvation. AXI QoS·BUSY counter.

21

DMA 성능 최적화 — Burst·Scatter-Gather·Chain·Cache 일관성

Burst size 최적화. Scatter-gather, chain. Cache clean/invalidate, double buffer.

22

DMA vs CPU Copy 성능 비교 — Break-even·Setup Overhead 실측

DMA setup overhead. CPU memcpy 최적화. Break-even size. 실측 데이터.

23

Interrupt Latency 분석 — 진입·종료·Tail-Chaining·Late Arrival

Cortex-M 12-cycle latency. Tail-chaining 6-cycle. Late arrival, lazy stacking, FreeRTOS hooks.

24

Interrupt Storm 처리 — NAPI·Rate-Limit·Polling 전환

IRQ flooding으로 main loop 봉쇄. NAPI 패턴, rate limit, interrupt coalescing.

25

MMIO 접근 성능 — Cache Policy·Write-Combining·Volatile·Barrier

MMIO uncached strongly-ordered. Write-combining for PCIe BAR. Volatile, DMB·DSB·ISB.

26

Peripheral Clock 분석 — PLL·Divider·Gating·DVFS

PLL/divider/gating으로 peripheral clock. STM32 RCC, Linux CCF. Power vs Performance.

27

Power vs Performance 트레이드오프 — DVFS·Race-to-Idle·Big.LITTLE

DVFS governor, race-to-idle, big.LITTLE, CPU 코어 hotplug, 측정·tuning.

28

Thermal Throttling 분석 — Junction Temp·Trip Point·냉각

Junction temperature, thermal sensor, trip point, throttling 동작, 자동차·우주 환경.

29

CXL Interconnect 분석 — AI 시대 메모리 대역폭 확장

CXL 2.0/3.1과 Neoverse V2가 만든 cache-coherent interconnect. CXL.io·CXL.cache·CXL.mem 세 프로토콜, Type 1/2/3 디바이스, latency·대역폭의 현실.

30

Concurrency 기초 — Concurrency vs Parallelism·Race·Memory Model

Concurrency vs Parallelism (Rob Pike). Race condition. Memory model 도입.

31

False Sharing 진단 — Cache Line Ping-Pong·Padding·측정

False sharing 원인. Cache coherence ping-pong. Padding으로 line 분리. 측정 방법.

32

Lock Contention 분석 — Wait·Hold·Convoy·측정 기법

Wait time과 hold time, contention ratio를 측정하고 lock convoy를 회피하는 법.

33

Spinlock 성능 분석 — Spin-Wait vs Context Switch·Ticket·MCS

Spinlock 비용 분석과 ticket lock, MCS lock의 scalability 차이.

34

Mutex 성능 분석 — Futex·Adaptive·Priority Inheritance

Mutex blocking 비용과 Linux futex 2-stage, adaptive mutex, priority inheritance overhead.

35

Reader-Writer Lock 성능 — Reader/Writer Priority·RCU·Seqlock

RW-lock의 종류와 reader/writer priority, RCU 비교, seqlock의 read-mostly 대안.

36

Lock-Free 자료구조 성능 — CAS·ABA·Hazard Pointer·Epoch Reclamation

CAS 기반 lock-free와 ABA 문제, hazard pointer와 epoch reclamation 비교.

37

Memory Ordering 분석 — Acquire·Release·Seq-Cst·ARM Relaxed Model

C11/C++11 memory_order와 acquire-release pair, seq-cst 비용, ARM ldar/stlr.

38

Cache Coherency 프로토콜 — MESI·MOESI·Snoop·Directory

MESI와 MOESI 프로토콜, snoop과 directory 방식, coherency overhead 측정.

39

SMP 성능 분석 — Per-Core·Affinity·Load Balance·Scalability

Per-core utilization과 CPU affinity, NUMA, migration cost, Amdahl 한계.

40

Linux perf 기초 — stat·record·report 활용

Linux perf 표준 도구의 세 가지 핵심 명령. 설치, 권한, 그리고 첫 측정부터 핫스팟 분석까지.

41

Linux perf 고급 — Raw Event·Tracepoint·perf script

perf의 raw event, tracepoint, perf script Python을 사용한 커스텀 분석.

42

ftrace 활용 — function·function_graph·latency tracer

ftrace의 function tracer, function_graph, irqsoff·preemptoff latency tracer 활용.

43

eBPF·bpftrace 동적 트레이싱 — 커널 무수정 관측

eBPF VM과 verifier, bpftrace one-liner, BCC tools, kprobe·uprobe·USDT 비교.

44

Flamegraph 분석 — On-CPU·Off-CPU·Differential

Brendan Gregg flamegraph로 on-CPU·off-CPU·차분 분석. perf·BCC stack 수집.

45

ARM DS·Lauterbach 분석 — Hardware Trace 전문 도구

ARM Development Studio Streamline, Lauterbach TRACE32, ETM·PTM hardware trace.

46

Bare-metal 프로파일링 — GPIO·DWT·SysTick·ITM 활용

OS도 perf도 없는 환경에서 GPIO, DWT cycle counter, SysTick, ITM으로 측정하기.

47

NVIDIA Nsight Systems — GPU·NPU 포함 시스템 분석

NVIDIA Nsight Systems로 CPU·GPU·메모리 통합 timeline 분석. Jetson 임베디드 활용.

48

모던 프로파일러 비교 — Tracy·Hotspot·uftrace·Coz

Tracy nanosecond instrumentation, Hotspot GUI, uftrace function trace, Coz causal profiler.

49

연속 프로파일링 — Parca·Pixie·Pyroscope·Tetragon

eBPF 기반 continuous profiling. Parca, Pixie, Pyroscope, Cilium Tetragon으로 24/7 분석.

50

실전 사례 — ISR Latency 100µs Deadline Miss 추적

산업용 센서 보드에서 산발적으로 발생한 ISR latency spike. 가설 두 개를 거쳐 SD 카드 드라이버를 범인으로 확정한 과정.

51

실전 사례 — Matrix Multiply가 예상의 10배 느린 이유

1024×1024 matrix multiply가 이론값의 10배 느렸다. SIMD부터 의심했지만 진짜 범인은 캐시 미스 90%였다.

52

실전 사례 — 8-core가 4-core를 넘으면 throughput이 떨어지는 이유

8-core 서버에서 thread를 늘릴수록 throughput이 오히려 감소. 단일 global mutex가 cache invalidation 폭주를 일으킨 사례.

53

실전 사례 — 카메라 1080p 60fps가 30fps로 떨어지는 이유

Cortex-A 보드의 카메라 캡처가 frame drop. CPU는 한가했고 진짜 범인은 DMA burst size와 AXI bus 효율이었다.

54

CXL.mem 지연·대역폭 실측 — Direct·Switch·Pooled 토폴로지 비교

CXL.mem 토폴로지별 실측 — Direct attach·Single switch·Multi-host pool의 지연·대역폭 비용 측정.

55

CXL 성능 프로파일링 도구 — cxl-cli·DAMON·perf-mem 활용

CXL.mem 환경 성능 도구 — cxl-cli 토폴로지·DAMON page activity·perf-mem로 보는 CXL 트래픽·numastat 통계.

56

실전 사례 — CXL.mem 추가로 LLM inference KV cache 처리량 회복

70B 모델 KV cache가 HBM 한계를 넘어 throughput이 무너졌을 때, CXL.mem 256 GB pool 추가로 회복한 실전 케이스.

Practical RTOS Internals

practical-internals

0

Practical RTOS Internals — 실시간 커널 내부 분석 시리즈 소개

RTOS를 사용하는 것이 아니라 이해하고 구현하는 법. Scheduler, context switch, memory allocator의 내부 동작을 소스 코드 수준에서 분석합니다.

1

RTOS가 필요한 이유 — 일반 OS와의 결정적 차이

Super-loop는 모든 작업이 직렬화되어 deadline을 보장하지 못합니다. RTOS는 preemption과 우선순위로 실시간성을 확보합니다.

2

Task와 Thread 개념 — TCB·상태 머신·생명 주기 분석

Task는 stack과 TCB, 상태로 구성됩니다. 5상태 머신(Running·Ready·Blocked·Suspended·Deleted)과 그 전이를 다룹니다.

3

실시간 스케줄링 알고리즘 비교 — RR·Priority·EDF·RMS

Round Robin, Priority-based preemptive, Earliest Deadline First, Rate Monotonic을 다룹니다. 임베디드 RTOS는 대부분 fixed-priority preemptive를 씁니다.

4

Preemption과 Cooperation — 강제 전환 vs 자발 양보

Preemptive는 tick과 IRQ에서 강제로 전환합니다. Cooperative는 yield를 명시해야 합니다. latency와 predictability의 trade-off를 다룹니다.

5

인터럽트와 RTOS — ISR Context·Deferred Processing·FromISR API

ISR은 task가 아니므로 context도 따로 관리됩니다. Long work는 deferred task로 넘기고, FromISR API 패턴을 씁니다.

6

동기화 기초 분석 — Critical Section·Mutual Exclusion·Race Condition

공유 자원 보호의 3가지 도구로 interrupt disable, spinlock, mutex가 있습니다. 언제 어느 것을 쓰는지 정리합니다.

7

Semaphore 개념 분해 — Counting·Binary·P/V 연산

Dijkstra의 P/V(1965)에서 출발한 Counting(N 자원)과 Binary(신호) 세마포어를 다룹니다. ISR에서 task로 신호를 전달하는 표준 도구입니다.

8

Mutex 개념 분해 — Ownership·Recursive·Priority Inheritance

공유 자원 보호의 정답입니다. Owner tracking 덕에 PI가 가능하고, recursive로 재진입도 허용합니다.

9

큐와 메시지 패싱 — Producer-Consumer·Ring Buffer·전달 의미

Task 간 데이터 전달의 표준입니다. FreeRTOS는 by-value copy이며, 대용량은 pointer queue로 처리합니다.

10

실시간성 분석 — Latency·Jitter·Deadline·WCET·RMA

4 핵심 지표인 Latency, Jitter, Deadline, WCET를 다룹니다. Hard와 Soft real-time의 차이, Rate Monotonic Analysis로 schedulability를 증명하는 방법을 살펴봅니다.

11

Ready List 자료구조 분석 — Linked List·Bitmap·O(1) Scheduler

Ready 상태 task를 보관하는 자료구조 선택이 곧 스케줄러 latency를 결정합니다. FreeRTOS의 array-of-lists, bitmap + CLZ 최적화, uC/OS의 8×8 LUT까지 한 번에 정리합니다.

12

Blocked List 자료구조 — Timeout 정렬·Delta List·Two-List Scheme

Blocked task의 timeout 관리. Sorted list + tick wraparound 처리. FreeRTOS의 2-list scheme.

13

Scheduler 알고리즘 구현 추적 — Next-Task Selection 로직

FreeRTOS pxCurrentTCB 결정. CLZ 최적화, tie-breaking, scheduler entry points.

14

Context Switch 원리 분석 — 레지스터 저장·복원·Stack Frame

Context switch는 결국 CPU의 모든 가시 상태를 task 스택에 통째로 복제하는 일입니다. 어디서 발생하고, 무엇을 저장하고, 비용은 얼마인지 아키텍처 중립적으로 정리합니다.

15

ARM Cortex-M Context Switch — PendSV·MSP/PSP 어셈블리 추적

Cortex-M context switch는 PendSV 예외와 dual-stack 모델로 압축됩니다. FreeRTOS port의 PendSV 핸들러 어셈블리를 한 줄씩 따라가며 EXC_RETURN, BASEPRI, lazy FPU까지 풀어봅니다.

16

ARM Cortex-A Context Switch — Mode 전환·SVC·Banked Registers

Cortex-A의 7 모드와 모드별 banked register. 모드 간 SP·LR 별도 — Cortex-M보다 복잡.

17

RISC-V Context Switch 분석 — ECALL·mret·CSR

RISC-V는 모든 레지스터 SW save. ECALL/mret + CSR (mscratch/mepc/mcause/mstatus).

18

RTOS Tick과 타이머 — SysTick·Generic Timer·configTICK_RATE_HZ

RTOS의 심장 박동. SysTick 1 kHz가 표준 — Hz 선택의 trade-off.

19

Tickless 모드 구현 — Idle Tick Suppression·Sleep·Wake 보정

Idle 시 SysTick 멈춤 + CPU sleep. 다음 task wake 시점까지 동적 timer 설정. 배터리 IoT 핵심.

20

Scheduler Latency 측정 기법 — GPIO Toggle·DWT·ftrace·cyclictest

ISR 종료 → ready task 실행까지의 시간. 측정 방법과 worst-case 추적.

21

RTOS Tracing과 Observability — Tracealyzer·SystemView·ITM/ETM

Percepio Tracealyzer와 Segger SystemView, Cortex-M의 ITM/ETM 하드웨어 트레이스. Task switch·ISR·queue·mutex 이벤트를 시간축에 펼쳐 인과를 추적합니다.

22

Critical Section 구현 비교 — IRQ Disable·BASEPRI·Spinlock

3 가지 구현 — cpsid/BASEPRI mask, taskENTER_CRITICAL, SMP spinlock. Hold time이 latency 결정.

23

Semaphore 내부 구현 추적 — Counter·Wait List·ISR-Safe Variant

FreeRTOS semaphore = Queue wrapper. Counter + priority-sorted wait list.

24

Mutex 내부 구현 추적 — Owner·Recursion Count·ISR 금지

Mutex = Semaphore + pxMutexHolder + uxBasePriority. Recursive variant는 lock-count.

25

Priority Inversion 문제 — Mars Pathfinder 사례·Bounded vs Unbounded

고우선 task가 저우선 task 때문에 막힘. 1997 화성 탐사선 reset의 원인.

26

Priority Inheritance 구현 — Inherit·Disinherit·Chain

FreeRTOS PI 코드 분석 — vTaskPriorityInherit, vTaskPriorityDisinherit, chain handling.

27

Priority Ceiling Protocol — Immediate vs Original 비교

PI의 대안. 각 mutex에 정적 ceiling — take 즉시 boost. Deadlock 방지.

28

Queue 내부 구현 추적 — Ring Buffer·2 Wait Lists·Atomic Send/Receive

FreeRTOS Queue 코드 — pcWriteTo·pcReadFrom·uxMessagesWaiting + xTasksWaitingToSend/Receive.

29

Event Group 분석 — Bit Flag·AND/OR Wait·Sync Barrier

FreeRTOS Event Group — 24-bit flag, AND·OR semantics, clear-on-exit, multi-task sync.

30

ISR-Safe API 설계 — FromISR 패턴·Higher Priority Wake·Deferred Work

FromISR API 내부 구조와 pxHigherPriorityTaskWoken, yield 결정, deferred work 패턴을 정리합니다.

31

Deadlock 분석 — 4 조건·Wait-for Graph·Lock Ordering·Timeout

Coffman의 네 조건과 wait-for graph 분석, lock ordering, timeout, hierarchical locking을 살펴봅니다.

32

Stream Buffer와 Message Buffer — FreeRTOS 10의 Lock-Free SPSC

FreeRTOS 10+ 추가된 Stream/Message Buffer. Lock-free SPSC ring buffer로 queue보다 10배 빠른 IPC. ISR-safe variant, byte stream vs variable-length frame의 선택.

33

실시간 메모리 요구사항 — Determinism·Fragmentation·WCET

동적 할당의 한계와 fragmentation, WCET-bounded allocator, safety-critical 기준을 살펴봅니다.

34

FreeRTOS Heap_1~5 분석 — 5종 Allocator의 구조와 트레이드오프

FreeRTOS가 제공하는 다섯 가지 heap 구현을 source 수준에서 비교합니다. heap_1의 bump부터 heap_5의 multi-region까지, 실시간성과 단편화 관점에서 어떤 워크로드에 어떤 구현이 맞는지 정리합니다.

35

TLSF Allocator 분석 — Two-Level Segregated Fit O(1)

Masmano 2004의 TLSF 알고리즘을 풀어봅니다. Bitmap과 CLZ 명령으로 alloc·free·coalesce 모두 O(1)을 보장하며, 자동차·로봇·RT 게임의 표준 dynamic allocator가 된 이유를 살펴봅니다.

36

Static Allocation — 컴파일 타임으로 동적 위험 제거하기

모든 RTOS 객체를 컴파일 타임에 fixed로 두는 패턴입니다. FreeRTOS Static API, Zephyr 매크로, linker section 배치, MISRA/DO-178C 호환성까지 정리합니다.

37

Memory Pool — Fixed-Size Block Allocator의 단순함과 강력함

같은 크기 객체를 다수 alloc/free하는 패턴을 위한 fixed-size pool입니다. free list 구조, O(1) 보장, per-class pool, lock-free 변형까지 실전 패턴을 정리합니다.

38

Stack Overflow 탐지 — Canary·MPU·Watermark 3중 방어

임베디드 가장 흔한 silent bug가 스택 오버플로우입니다. FreeRTOS canary, MPU region 기반 hardware 보호, high-water mark 측정, 정적 분석 도구까지 다층 방어 전략을 정리합니다.

39

SMP RTOS 설계 — Ready List·Affinity·IPI·Load Balancing

FreeRTOS 11 SMP와 Zephyr SMP를 단일 ready list와 per-CPU ready list 두 축으로 비교합니다. task affinity, IPI, cross-core wake, cache coherency 경계까지 설계 관점에서 정리합니다.

40

SMP Spinlock 구현 — LDREX/STREX·Ticket Lock·MCS·WFE/SEV

ARM LDREX/STREX exclusive monitor와 ARMv8.1 LSE를 출발점으로 SMP spinlock 구현을 따라갑니다. test-and-test-and-set, ticket lock, MCS lock의 fairness와 cache bouncing trade-off, WFE/SEV로 만드는 저전력 spin을 정리합니다.

41

Software Timer 분석 — Daemon Task·자료구조·ISR-Safe API

FreeRTOS Software Timer 내부를 따라가며 daemon task 구조, sorted list와 timer wheel 자료구조, one-shot/auto-reload 동작, xTimerStartFromISR과 xTimerPendFunctionCall을 통한 ISR 워크 deferral을 정리합니다.

42

RTOS System Call — SVC·ECALL·User/Kernel 분리·FreeRTOS-MPU

MPU/MMU로 user task와 kernel을 분리하는 RTOS의 syscall 구조를 정리합니다. Cortex-M의 SVC trap, RISC-V의 ECALL, FreeRTOS-MPU와 Zephyr USERSPACE의 차이, capability 검사, syscall overhead 측정까지 다룹니다.

43

TrustZone과 TF-M — Secure/Non-Secure·NSC Veneer·PSA

Cortex-M33/M55/M85의 TrustZone-M과 TF-M secure firmware를 정리합니다. SAU/IDAU로 메모리를 secure/non-secure로 가르고, NSC veneer + SG 명령으로 안전하게 cross-world call을 수행하는 구조, PSA Crypto/Storage/Attestation API, secure boot chain까지 다룹니다.

44

AMP와 OpenAMP — Heterogeneous SoC·RPMsg·remoteproc

Cortex-A와 Cortex-M이 한 칩 위에서 별도의 OS를 돌리는 AMP 구조를 정리합니다. OpenAMP framework(libmetal/RPMsg/remoteproc), virtio-vring 기반 shared memory IPC, mailbox 인터럽트, i.MX·STM32MP·RP2350 사례까지 다룹니다.

45

C++ in RTOS — RAII·std::thread·ETL·Coroutine

RTOS C API를 C++ 객체로 감싸는 패턴을 정리합니다. RAII MutexGuard와 ScopedIRQDisable, std::thread/std::mutex의 한계와 직접 xTaskCreate가 결정성을 갖는 이유, ETL로 STL을 대체하는 법, C++20 coroutine을 RTOS 위에 얹는 방식까지 다룹니다.

46

FreeRTOS 소스 분석 — tasks.c·queue.c·port.c 추적

FreeRTOS-Kernel 저장소의 핵심 파일 셋을 따라가며 xTaskCreate부터 PendSV까지의 흐름을 정리합니다. TCB·ready list·port 계층 사이의 경계가 어떻게 그어져 있는지 source 수준에서 살펴봅니다.

47

Zephyr 커널 분석 — k_thread·k_sem·Driver Model

Zephyr 커널 서브트리를 따라가며 sched.c·thread.c·sem.c의 핵심을 읽습니다. devicetree로 드라이버 인스턴스가 만들어지는 경로와 KConfig·west 빌드 체계까지 한 지도 위에 모읍니다.

48

RT-Thread 분석 — Object 모델·Components·Smart·Studio

RT-Thread의 object-oriented C 설계와 component 생태계를 따라갑니다. FreeRTOS급 경량 kernel 위에 DFS·LwIP·POSIX·FinSH가 어떻게 얹히는지, Smart variant가 무엇을 더 가져오는지 정리합니다.

49

RTOS 포팅 가이드 — 새 아키텍처에 옮기는 절차

FreeRTOS와 Zephyr의 port 계층을 따라가며 새 아키텍처에 RTOS를 옮기는 절차를 정리합니다. initial stack frame, context switch assembly, tick source, critical section primitive까지 한 번에 잡습니다.

50

RTOS 선택 가이드 — Footprint·License·Certification·Ecosystem

FreeRTOS·Zephyr·ThreadX·RT-Thread·NuttX·VxWorks·QNX·INTEGRITY·SafeRTOS·µC/OS·PX5를 한 표에 모아 비교합니다. IoT·자동차·항공·산업·의료·웨어러블·드론별 추천과 결정 기준을 정리합니다.

51

Apache NuttX 분석 — POSIX·PX4·NASA Ingenuity

NuttX의 POSIX-compliant 구조를 따라가며 PX4 autopilot과 NASA Ingenuity 화성 헬리콥터 채택 배경을 정리합니다. Flat/Protected/Kernel 빌드, VFS, 네트워크, NSH, micro-ROS 통합까지 한 지도로 모읍니다.

52

PREEMPT_RT Linux — Mainline 6.12·Xenomai 4·EVL

2024년 9월 Linux 6.12 mainline에 합류한 PREEMPT_RT의 핵심 변경을 정리하고, Xenomai 4·EVL과 함께 RTOS와의 선택 기준을 비교합니다. threaded IRQ·sleeping spinlock·cyclictest까지 한 지도에 모읍니다.

Embedded C++ for Real Systems

0

Embedded C++ for Real Systems — 임베디드 모던 C++ 시리즈 소개

어디까지 C++를 써도 되는가? RAII, constexpr, no-exception 설계부터 lock-free 패턴까지. 임베디드에서 안전하게 C++를 쓰는 법.

1

임베디드 C++ vs C — 런타임·코드 크기·ABI 관점 비교

임베디드에서 C++가 진짜로 무거운가? 측정 가능한 비교와, C가 여전히 옳은 자리들.

2

임베디드 C++ 컴파일러 플래그 분석 — -fno-rtti·-fno-exceptions·-Os

C++를 임베디드 모드로 — -fno-exceptions, -fno-rtti, -Os, -flto. 각 플래그가 실제 바이너리에 무엇을 하는가.

3

임베디드 C++ 런타임 요구사항 — libstdc++·newlib·crt0 분석

C++ 코드가 돌기 위한 최소 런타임 — libstdc++, libsupc++, newlib, libgcc. 무엇이 진짜 필요한가.

4

C++ 코드 크기 분석 — 가상 함수·템플릿·예외 비용 추적

size, nm, objdump, bloaty — 어디서 어떤 크기가 오는지 측정하는 도구. bloat 추적의 표준 워크플로.

5

C++ ABI 호환성 — Itanium ABI·name mangling·vtable 레이아웃

C와 C++가 한 바이너리에서 살아남는 법 — name mangling, extern "C", calling convention, struct layout.

6

C++ 스타트업 코드 분석 — .init_array·전역 생성자 호출 순서

Reset에서 main까지 — vector table, .data 복사, .bss 초기화, __libc_init_array가 호출하는 C++ static 생성자.

7

임베디드 C++ 링커 스크립트 — vtable·정적 객체 배치 추적

MEMORY와 SECTIONS — Flash와 RAM에 C++ 객체와 코드를 정확한 위치에 두는 법.

8

임베디드 C++ 표준 선택 가이드 — C++11/14/17/20/23 트레이드오프

C++11/14/17/20/23 — 임베디드에서 어느 표준을 골라야 하나. 컴파일러 지원, 표준 라이브러리 변화, 핵심 기능 비교.

9

임베디드 RAII 기초 — 리소스 안전성과 결정적 소멸 보장

Resource Acquisition Is Initialization — 자원 생명주기를 객체 생명주기에 묶는 C++의 핵심 idiom.

10

임베디드 RAII 실전 패턴 — Lock·Pin·DMA·Power 관리

scoped_lock, unique_ptr with custom deleter, ScopedXxx, Finally — 임베디드에 자주 등장하는 RAII 표준 패턴.

11

constexpr 기초와 임베디드 적용 — 컴파일 타임 계산 활용

컴파일 타임 계산 — 런타임 코드와 데이터를 컴파일러가 미리 만들어줍니다. -Os보다 강력한 zero-cost.

12

constexpr 고급 활용 — 룩업 테이블·CRC·해시 컴파일 타임 생성

컴파일 타임 sort, search, 문자열 — constexpr 알고리즘의 한계와 가능성.

13

consteval과 constinit 분석 — C++20 컴파일 타임 강제 메커니즘

C++20의 컴파일 타임 강제 — consteval은 함수 호출을, constinit은 변수 초기화를 컴파일 타임에 강제합니다.

14

임베디드 Templates 기초 — 타입 안전과 코드 재사용 분석

함수 템플릿과 클래스 템플릿 — 컴파일 타임 다형성으로 type-safe + zero-cost generic 코드.

15

Template 비용 분석 — 코드 폭증·인스턴스화·디버그 정보 측정

Template instantiation의 코드 bloat — 추적, 통제, 공통 부분 분리 패턴.

16

CRTP 패턴 분석 — vtable 없는 정적 다형성

Curiously Recurring Template Pattern — virtual 함수 없이 컴파일 타임 다형성. vtable 0, 간접 호출 0.

17

Type Traits 임베디드 활용 — SFINAE·is_pod·컴파일 타임 검사

std::is_*, std::enable_if, SFINAE — 컴파일 타임 type 정보로 코드 분기와 검증.

18

C++20 Concepts 활용 — 템플릿 제약과 가독성 개선

Template 제약을 명시 — SFINAE의 가독성 개선, 에러 메시지 명확화, 자체 문서화.

19

동적 할당 없는 임베디드 C++ — placement new·정적 객체·풀

임베디드의 첫 번째 원칙 — new/malloc 없이 modern C++의 STL 같은 컨테이너 활용.

20

Custom Allocator 기초 — std::allocator 인터페이스 분석

STL allocator interface — 표준 컨테이너의 메모리 출처를 제어.

21

Pool Allocator 구현 — Fixed-Size Block과 O(1) 보장

고정 크기 블록 + free list — 임베디드의 표준 allocator 구현.

22

std::pmr 임베디드 활용 — Polymorphic Memory Resource 분석

C++17 polymorphic allocator — 같은 컨테이너 타입에 다른 메모리 출처 주입.

23

No-Exception C++ 설계 — 코드 크기·결정성 트레이드오프

-fno-exceptions 환경에서 에러 처리 — error code, std::optional, std::expected.

24

임베디드 에러 처리 패턴 — Result·errno·optional 비교

Result types, error chains, exception-free RAII — 실용적 에러 시스템 구축 패턴.

25

std::expected 분석 — C++23 결과 타입과 에러 전파

C++23의 Result type — Rust 같은 monadic 에러 처리, 예외 없이 풍부한 정보.

26

No-RTTI C++ 설계 — dynamic_cast 제거와 정적 타입 분기

-fno-rtti 환경에서 type info 없이 다형성 — enum tag, std::variant, CRTP.

27

임베디드 스마트 포인터 선택 — unique·shared·custom 비교

unique_ptr vs shared_ptr vs raw pointer — 임베디드의 소유권 모델 선택.

28

임베디드 C++ 소유권 모델 — single·shared·borrow 패턴

Owner, observer, borrower — 객체 lifetime의 명확한 책임 할당.

29

Intrusive Containers 분석 — 동적 할당 없는 컨테이너 설계

객체가 자기 next pointer 보유 — 동적 할당 없는 linked list와 tree.

30

ETL 라이브러리 분석 — Embedded Template Library의 STL 대체

Embedded Template Library — heap 없는 STL 대체, fsm, message router 포함.

31

임베디드 Lock-free 기초 — atomic·memory ordering·CAS

Atomic, CAS, memory order — mutex 없이 동시성. 임베디드의 ISR-safe 패턴.

32

Lock-free Container 구현 — SPSC Queue·Ring Buffer

SPSC queue, MPMC stack, ring buffer — lock-free 자료구조 구현 패턴.

33

Type-safe Flags 패턴 — Enum Class·Strong Typedef·Tag

enum class + bit operators — type-safe 비트 플래그. 의도하지 않은 변환 차단.

34

임베디드 State Machine 패턴 — Variant·Visitor·Table-driven 비교

타입 안전한 상태 머신 — enum + switch부터 std::variant, etl::fsm까지.

35

Compile-time FSM 구현 — 템플릿으로 상태 전이 검증

constexpr state machine — 컴파일 타임에 전이 검증, runtime 코드 0.

36

Singleton 대안 패턴 — Service Locator·Static Init·Phantom

임베디드의 DI 패턴 — Construct-On-First-Use, static dependency injection, service locator.

37

MMIO Register 추상화 — 타입 안전한 비트 필드 접근

MMIO를 type-safe하게 — volatile, bit field, register wrapper class.

38

GPIO 추상화 패턴 — Template·Concept으로 보드 독립성

GPIO pin = type — 컴파일 타임에 핀 설정 검증, runtime 비용 0.

39

Peripheral 추상화 — UART·SPI·I2C 공통 인터페이스 설계

UART, SPI, I2C — peripheral을 type-safe class로. Blocking, interrupt, DMA 패턴.

40

임베디드 HAL 설계 패턴 — Static·Dynamic·Hybrid 비교

범용 HAL 구조 — 벤더 종속성 격리, 다중 보드/MCU 지원, 시리즈 마무리.

Bootloader Internals

1

ROM부터 init까지 — 임베디드 부팅 단계의 빈자리 분석

ROM부터 init까지의 전체 흐름과, 부트로더가 그 사이에서 채우는 자리.

2

Das U-Boot vs TF-A vs EDK II — 임베디드 부트로더 생태계 비교

임베디드 부트로더 생태계 — Das U-Boot, ARM Trusted Firmware, EDK II의 역할 분담.

3

U-Boot 빌드 시스템 분석 — Kconfig·Makefile·defconfig 동작 추적

U-Boot의 빌드 시스템 — Kconfig 옵션, Makefile 구조, defconfig 패턴, out-of-tree 빌드.

4

ARM 임베디드 부트 4단계 분해 — BL1·SPL·TPL·U-Boot Proper의 역할

ARM64와 RISC-V의 다단 부트 — BL1·BL2·BL31·BL33, SPL·TPL·U-Boot Proper의 책임 분할.

5

U-Boot Falcon Mode — SPL이 U-Boot Proper 없이 커널 직접 부팅

U-Boot Falcon Mode — SPL이 U-Boot Proper를 건너뛰고 커널을 직접 부트. 부트 시간 단축의 핵심.

6

Device Tree DTB 부트로더 처리 — 로딩 시점과 fixup 메커니즘 추적

U-Boot가 DTB를 다루는 방식 — control DTB와 OS DTB, fdt 명령, 런타임 fixup.

7

U-Boot Driver Model 내부 — uclass·driver·device 추상화 구조

U-Boot Driver Model — uclass·driver·udevice 구조와 DT 기반 driver binding.

8

U-Boot 보드 초기화 시퀀스 — board_init_f와 board_init_r 분리 이유

U-Boot 보드 초기화 흐름 — pre-relocation (board_init_f)과 post-relocation (board_init_r).

9

DDR Controller 프로그래밍과 PHY Training — SPL의 가장 어려운 작업

DDR controller 초기화 시퀀스 — 레지스터 프로그래밍, training, 보드별 파라미터의 위치.

10

임베디드 스토리지 부팅 분석 — MMC·SCSI·NAND·SPI Flash 비교

부트 미디어별 동작 차이 — eMMC, SD, SATA, NAND, SPI NOR/NAND의 부트 모드.

11

임베디드 네트워크 부팅 — TFTP·PXE·BOOTP 시퀀스 분석

네트워크를 통한 부팅 — DHCP/BOOTP·TFTP·PXE의 단계와 U-Boot 명령.

12

U-Boot USB 부팅 — fastboot·UMS·USB host 메커니즘

USB를 통한 부팅과 flash — fastboot, USB Mass Storage(UMS), USB host 부팅 흐름.

13

U-Boot 환경 변수와 bootcmd — 부팅 시나리오 정의하기

U-Boot 환경 변수 시스템 — saveenv·bootcmd·bootargs·distro_bootcmd 패턴.

14

Modern U-Boot bootflow / bootmeth — 새 추상화 레이어 분석

U-Boot의 새로운 부트 모델 — bootflow / bootmeth로 distro_bootcmd 스크립트를 대체.

15

FIT image 구조 분석 — multi-image·hash·configuration 추적

Flattened Image Tree — kernel·DTB·initramfs·overlay를 한 컨테이너로 묶는 포맷.

16

U-Boot Verified Boot — RSA 서명과 public key 임베딩 흐름

U-Boot Verified Boot — FIT 서명, public key를 U-Boot DT에 박는 워크플로.

17

임베디드 A/B 부팅 이중화 — OTA 안전성을 위한 부트 슬롯 설계

A/B 슬롯 부트 — 양산 시스템의 안전한 펌웨어 업데이트와 자동 fallback.

18

U-Boot의 EFI 호환 분석 — bootefi 명령과 EFI loader 동작 원리

U-Boot이 UEFI Boot Services를 노출하는 방식 — bootefi, EBBR, Linux EFI stub과의 연결.

19

Linux Boot ABI — ARM/ARM64 커널 진입 규약 추적

부트로더 → 커널 인계 — ARM64·RISC-V·x86 boot ABI, 인자 전달, 레지스터 상태.

20

임베디드 펌웨어 업데이트 — RAUC vs SWUpdate 비교

U-Boot와 통합되는 펌웨어 업데이트 프레임워크 — RAUC와 SWUpdate의 비교와 적용.

21

새 보드 U-Boot 포팅 실전 — defconfig 작성부터 첫 부팅까지

U-Boot에 새 보드를 추가하는 전체 워크플로 — configs·board·dts·MAINTAINERS.

22

부트로더 디버깅 기법 — DEBUG·JTAG·serial·post-mortem 분석

부트로더 디버깅 — CONFIG_DEBUG_UART, JTAG, 시리얼 콘솔, panic dump 읽기.

23

SoC BootROM·eFuse·OTP — 부팅의 0단계 분석

전원 인가 직후 mask ROM이 무엇을 하는지, eFuse/OTP에 굳어 들어가는 키와 anti-rollback counter, secure boot의 시작점.

24

SPL·TPL 내부 해부 — 가장 작은 부트 단계의 동작 추적

SPL과 TPL의 정확한 역할, SRAM 안에 들어가는 코드 구조, DDR이 없는 환경에서 어떻게 동작하는가.

25

ARM Trusted Firmware-A 통합 — BL1·BL2·BL31·BL32·BL33 흐름

ARMv8 secure boot의 표준 단계화 — Trusted Firmware-A의 BL1·BL2·BL31과 OP-TEE(BL32)·U-Boot(BL33) 위치.

26

DDR Training과 PHY Calibration — 보드별 파라미터 튜닝

DDR4/LPDDR4 controller·PHY가 어떻게 캘리브레이션되는지, 보드별 timing parameter, training 실패 디버깅.

27

임베디드 Chain of Trust — 다단계 서명 검증의 전체 흐름

BootROM PK hash → BL2 signed by ROTPK → BL31/BL33 signed by trusted key → kernel signed by FIT key의 chain을 끝까지.

28

임베디드 Flash Layout 설계 — partition·NAND·eMMC·UBI 비교

양산 firmware의 flash layout 설계 — 부트로더·env·kernel·rootfs·OTA slot의 sizing과 NAND/eMMC/UBI 차이.

29

U-Boot Distro Boot — extlinux·boot.scr 표준화 분석

보드별 다른 부트 스크립트를 표준화 — U-Boot Distro Boot, extlinux.conf, boot.scr의 차이와 선택.

30

부트로더 CI 구축 — build matrix와 자동 부팅 테스트

여러 보드의 U-Boot/TF-A를 PR마다 빌드하고, QEMU·real board에서 boot까지 자동 검증하는 CI 패턴.

31

TF-A BL31 EL3 Runtime 분석 — PSCI·SDEI·RAS dispatcher 추적

TF-A BL31의 EL3 runtime service 구조 — runtime_svc 등록 모델, vector entry, PSCI·SDEI·RAS dispatcher, SMC call latency.

32

PSCI와 SMCCC ABI — ARM 표준 SMC 호출 규약 분석

SMCCC 호출 규약과 PSCI v1.1 ABI — function ID 구조, fast vs yielding, CPU_ON·CPU_SUSPEND, Linux PSCI driver.

33

ARM64 Secondary Core Bring-up — PSCI CPU_ON 호출부터 EL1 진입까지

ARM64 secondary CPU 깨우기 — spin-table 옛 방식과 PSCI CPU_ON 표준 방식, secondary_startup 어셈블리, percpu 초기화, hotplug 흐름.

34

U-Boot PCIe Enumeration — 부트로더가 디바이스를 찾는 흐름 분석

U-Boot PCIe 열거 과정 — Root Complex 초기화·Config Space scan·BAR sizing·resource 할당, CXL DVSEC 인식까지.

35

EFI·UEFI에서 CXL 초기화 — CEDT 생성과 HDM Decoder 사전 설정

EDK II 기반 UEFI에서 CXL 디바이스 초기화 — CEDT(CXL Early Discovery Table) 생성, HDM Decoder 사전 설정, ACPI handoff.

36

부트 시 메모리 토폴로지 결정 — DDR + CXL.mem 통합 인식

부트로더가 DDR DIMM·CXL.mem·HBM을 하나의 메모리 토폴로지로 통합하는 흐름 — SRAT·HMAT·SLIT 생성과 NUMA 노드 매핑.

37

UEFI Secure Boot 인증서 만료 — 2011→2023 CA 롤오버와 PQC 대비

2026년 6월부터 시작되는 Microsoft Secure Boot 2011 인증서 만료 — PK·KEK·db·dbx 계층, 2023 CA 체인과 Option ROM CA 분리, 임베디드 기기 영향, 그리고 post-quantum 서명으로의 길.

Embedded Security

1

임베디드 보안 위협 모델 — STRIDE·DFD·자산 식별 흐름

STRIDE / DREAD. 임베디드 특수 — 물리 접근 / 자원 제약.

2

Secure Boot 분석 — 부트 체인 서명 검증과 RoT 구축

ROM → bootloader → kernel → app. 각 단계 서명 검증. Root of Trust.

3

MCU Crypto HW Accelerator 분석 — AES·SHA·ECC 가속기

MCU 내장 crypto 엔진. 소프트웨어 vs 하드웨어. constant-time.

4

ARM TrustZone 분석 — Cortex-A·Cortex-M 격리 메커니즘

ARM TrustZone — Secure / Non-Secure World 분리. SMC, NSC.

5

TEE 비교 분석 — OP-TEE·ARM CCA·SGX

Trusted Execution Environment. OP-TEE, TA, GlobalPlatform API.

6

OTA Update 보안 — 서명·Rollback 방지·롤백 카운터

안전한 펌웨어 업데이트. A/B 슬롯, delta update, 서명 검증, rollback 방지.

7

임베디드 Side-channel 공격 — Power·Timing·EM 분석

DPA / SPA / EM / fault injection. constant-time, masking, hiding 방어.

8

IoT 보안 표준 비교 — ETSI EN 303 645·IEC 62443·NIST 8259·EU CRA

IoT 소비자·산업·자동차 보안 표준. 한국 KISA·KICS 포함.

9

펌웨어 분석과 리버싱 — Binwalk·Ghidra·radare2 활용

JTAG / SPI flash dump / binwalk / Ghidra / radare2. 펌웨어 정적·동적 분석.

10

임베디드 보안 개발 라이프사이클 — Secure SDLC 적용

Microsoft SDL, threat modeling, SBOM, supply chain, 사고 대응. 시리즈 마무리.

11

PCIe·CXL IDE 분석 — 링크 무결성과 데이터 암호화

PCIe·CXL IDE (Integrity and Data Encryption) — 링크 sniff·MITM 위협, AES-GCM 암호화, Selective vs Link IDE, 키 관리, 성능 영향.

12

SPDM과 CMA 인증 흐름 — 디바이스 신원과 펌웨어 측정 검증

SPDM(Security Protocol Data Model) 메시지 흐름, CMA(Component Measurement Attestation) — PCIe·CXL 디바이스 신원 확인과 firmware integrity 검증.

13

CXL TEE 확장 — Trusted Execution을 메모리 디바이스까지

TDISP·TVM·CXL TEE — Confidential Computing이 메모리 디바이스·가속기로 확장되는 표준 흐름.

HBM·GDDR 심화

hbm

1

HBM과 GDDR 분기점 분석 — Bandwidth·Capacity·Cost 트레이드오프

HBM과 GDDR의 분기점 — bandwidth·capacity·cost의 트레이드오프와 시장 분할.

2

HBM 3D 스택 구조 분해 — TSV·Microbump·Base Die의 역할

Base die + DRAM die stack — 3D 메모리의 구성요소와 TSV·microbump의 역할.

3

HBM2·HBM2E·HBM3·HBM3E 세대 비교 — JEDEC 표준 진화 흐름

세대별 bandwidth·capacity·signaling — JEDEC 표준의 진화 흐름.

4

GDDR6·GDDR6X·GDDR7 분석 — PAM 신호로 32 Gbps 도달한 경로

고속 그래픽 메모리 — clock·PAM 신호의 진화로 32 Gbps에 도달한 경로.

5

메모리 대역폭 병목 분석 — Theoretical vs Achievable·Roofline·Memory Wall

Theoretical vs achievable — 메모리 대역폭의 실제와 roofline·memory wall.

6

HBM 열 설계와 전력 관리 — Stack 열 부하·Refresh Cost·냉각 솔루션

HBM stack의 열 부하·power state·refresh의 cost와 냉각 솔루션.

7

HBM 메모리 컨트롤러 분석 — Bank·Row·Column·Address Mapping·Scheduling

Bank·row·column·command — 컨트롤러가 보는 HBM과 scheduling·address mapping.

8

NPU·GPU에서의 HBM 활용 — Weight·Activation·KV Cache 배치 분석

Weight·activation·KV cache — HBM 자리잡기와 시리즈 마무리.

9

CXL.mem 분석 — HBM·GDDR·DDR 다음의 메모리 계층

CXL.mem이 메모리 계층에 끼어드는 자리 — on-package HBM과 DRAM DIMM 사이의 새 tier.

10

CXL.mem 프로토콜 분해 — 왕복 횟수가 만드는 지연, 링크가 만드는 대역폭

Ch 9의 지연·대역폭 수치가 왜 그렇게 나오는지 — 왕복 횟수로 본 지연 예산, 링크에 묶인 대역폭, credit 고갈이 만드는 throughput 절벽, interleave granularity의 유불리.

11

CXL Type 1·2·3 디바이스 분류 — 이 중 무엇이 나에게 메모리인가

CXL 세 유형을 메모리 계층 관점에서 다시 읽습니다. 어떤 유형이 호스트 용량을 늘려 주고, 어떤 유형이 늘려 주지 않는지, NUMA와 대역폭에서 무엇이 달라지는지.

12

메모리 풀링과 데이터센터 토폴로지 — 용량을 서버 밖에서 빌리는 일

on-package HBM의 용량 상한 밖을 CXL 풀이 맡는 방식 — 빌린 용량의 지연 값, hot/cold 구분이라는 전제, 서버당 고정 구성에서 풀 조달로의 전환.

ESP32-C3 Mastering

esp32-c3-mastering

1

ESP32-C3 분석 — Espressif가 Xtensa에서 RISC-V로 갈아탄 이유

Espressif가 Tensilica Xtensa에서 RISC-V로 전환한 첫 SoC. WiFi 4 + BLE 5.0, 32-bit RV32IMC.

2

ESP32-C3 RISC-V 코어 분석 — RV32IMC·PMP·인터럽트 컨트롤러

ESP32-C3 코어의 ISA·특권 모델·인터럽트. 32-bit IMC, M-mode only, PMP 16 entries.

3

ESP32-C3 메모리 맵과 플래시 — SPIFFS·LittleFS 파일시스템 선택

ESP32-C3 메모리 구조 — 400KB SRAM, 4MB SPI flash, MMU. 파일시스템 선택.

4

ESP32-C3 디지털 출력 — GPIO·LEDC·MCPWM 세 모드 비교

22개 GPIO, GPIO Matrix로 페리퍼럴 자유 매핑. LEDC PWM, MCPWM (모터 제어).

5

ESP32-C3 시리얼 통신 4종 — UART·SPI·I2C·I2S 분석

주변 디바이스와의 4대 통신. DMA 활용, 인터럽트 vs polling.

6

ESP32-C3 ADC와 터치 센서 — 아날로그 입력 처리

12-bit SAR ADC × 2 unit, 정전식 터치 9 채널. 캘리브레이션과 노이즈.

7

ESP32-C3 WiFi 4 스택 — Station·SoftAP·Mesh 구성

802.11 b/g/n. ESP-IDF WiFi API, 4가지 모드. WPA2/WPA3 보안.

8

ESP32-C3 BLE 5.0 분석 — GAP·GATT·Coded PHY

BLE 5.0 — 2M PHY로 2배 처리량, Coded PHY로 4배 거리. GATT 서버 만들기.

9

ESP-IDF 빌드 시스템 분석 — 컴포넌트 구조와 CMake 통합

CMake 기반 ESP-IDF 빌드. 컴포넌트(component) 모델로 라이브러리 모듈화.

10

ESP32-C3 위 FreeRTOS — 단일 코어 RTOS 활용 전략

ESP-IDF의 modified FreeRTOS. 우선순위 25 단계, tickless idle, software timer.

11

ESP32-C3 보안 분석 — Secure Boot·Flash Encryption·eFuse

ECDSA 기반 Secure Boot V2, AES-256 Flash Encryption, eFuse 키 보관.

12

ESP32-C3 전력 관리 — Modem·Light·Deep Sleep와 Wake 소스

5단계 power mode, RTC 도메인 활용, ULP 코프로세서 미지원 — C3는 RTC GPIO만.

Buildroot Practical

1

Buildroot가 푸는 문제 — Yocto와의 핵심 차이 분석

Buildroot의 위치 — 임베디드 리눅스 rootfs 빌드 시스템, Yocto와의 트레이드오프.

2

Buildroot 디렉터리 구조 분해 — board·configs·dl·output

Buildroot 트리 — package, board, configs, fs, output, dl 디렉터리의 역할.

3

Buildroot Kconfig 설정 — menuconfig와 defconfig 작성

Buildroot의 Kconfig 시스템 — make menuconfig 사용법, defconfig 패턴, 옵션 의존성.

4

Buildroot 첫 빌드 — QEMU에서 동작하는 시스템 만들기

qemu_aarch64_virt_defconfig로 첫 시스템을 빌드하고 QEMU에서 부팅하는 전체 흐름.

5

Buildroot 패키지 시스템 분석 — .mk와 Config.in 동작 추적

Buildroot 패키지 작성 규약 — Config.in 옵션 노출과 .mk 빌드 레시피.

6

Buildroot 외부 트리 — BR2_EXTERNAL 구성과 활용

회사·팀의 패키지·보드 정의를 Buildroot 본체와 분리하는 BR2_EXTERNAL 메커니즘.

7

Buildroot 보드 Customize — overlay·post-build·post-image 흐름

보드별 파일 추가, 빌드 후 처리, 이미지 생성 후 처리 — 세 가지 hook.

8

Buildroot 출력 파일시스템 — initramfs·squashfs·ext4·cpio 선택

Buildroot가 생성하는 파일시스템 형식 비교 — 언제 무엇을, 크기·읽기성능·쓰기 가능성.

9

Buildroot 새 패키지 작성 — autotools·cmake·python 통합

Buildroot에 새 패키지를 추가하는 실전 — autotools·cmake·python 세 케이스.

10

Buildroot 실전 — BeagleBone Black 시스템 처음부터 끝까지

Buildroot로 BeagleBone Black용 완전한 시스템을 구축 — defconfig부터 SD 카드 부팅까지.

11

Buildroot Toolchain 선택 — Internal vs External 비교

Buildroot toolchain 결정 — internal toolchain의 단순함과 external toolchain(Bootlin·Linaro·vendor SDK)의 속도·호환성 트레이드오프.

12

Buildroot 커널 Customize — defconfig fragment와 DTS 통합

Buildroot에서 mainline 커널을 vendor 트리·custom config·in-tree DTS로 customize하는 패턴.

13

Buildroot U-Boot 통합 — 빌드·env·fw_env 흐름

Buildroot가 U-Boot를 가져와 빌드·패키징하는 방식과 env·fw_env.config로 런타임에 접근하는 패턴.

14

Buildroot 빌드 캐싱 분석 — dl·ccache·per-package

Buildroot의 캐싱 계층 — dl/ source 캐시, ccache compile 캐시, BR2_PER_PACKAGE_DIRECTORIES와 sstate가 없는 이유.

15

Buildroot post-build·post-image 심화 — rootfs 최종 수정 흐름

post-build·post-image·post-fakeroot 세 hook의 정확한 차이, 환경 변수, BR2_ROOTFS_OVERLAY 한계, system_table.txt로 권한·devnode 다루기, genimage로 SD 이미지 만들기.

16

Buildroot OTA 이미지 업데이트 — RAUC·swupdate 통합

Buildroot에서 RAUC·swupdate·Mender를 통합해 A/B 부팅·atomic update를 제공하는 패턴. slot 설계, bundle 생성, U-Boot bootcount, 서명·롤백까지.

17

Buildroot SDK 생성·배포 — make sdk와 application 워크플로

Buildroot가 만든 toolchain을 application 개발자에게 SDK로 배포하는 패턴과 relocatable toolchain 한계.

18

Buildroot Security·CVE 추적 — pkg-stats와 Reproducible Builds

Buildroot의 CVE 추적·legal info 산출·SBOM·reproducible build로 보안과 컴플라이언스를 관리하는 패턴.

19

Buildroot CI/CD 구축 — Container Build와 Cache 공유

GitLab/GitHub Actions에서 Buildroot 트리를 컨테이너로 빌드하고 dl·ccache를 팀이 공유하는 패턴.

20

Buildroot → Yocto 마이그레이션 — 언제·어떻게 옮길까

Buildroot가 한계에 도달하는 신호와 Yocto/OE로 점진 이전하는 패턴, meta-buildroot 같은 hybrid 옵션.

PCIe Deep Dive

pcie

1

Ch 1: PCIe Fundamentals — 계층 구조와 토폴로지

PCIe 아키텍처의 기초 — point-to-point 직렬 링크, 3-Layer 모델, Root Complex·Switch·Endpoint 토폴로지, Gen 1부터 7.0까지의 진화.

2

Ch 2: TLP — Transaction Layer Packet

PCIe의 기본 packet인 TLP — 3/4 DW header·5 가족·split transaction·라우팅 3 방식·Producer-Consumer ordering.

3

Ch 3: Configuration Space — 4 KB ECAM·Capability Linked List

PCIe Configuration Space — 256 byte PCI 영역 + 4 KB Extended·Type 0/1 header·Capability chain·ECAM 메모리 매핑.

4

Ch 4: BAR & MMIO — Device 자원의 호스트 주소 매핑

Base Address Register — Memory·I/O·64-bit·Prefetchable·size 결정·ReBAR·SR-IOV VF BAR.

5

Ch 5: Interrupts — INTx·MSI·MSI-X·Interrupt Remapping

PCIe 인터럽트 메커니즘 3가지 — Legacy INTx·MSI 32 vector·MSI-X 2048 vector·IOMMU Interrupt Remapping.

6

Ch 6: Power Management — D-state·L-state·ASPM

PCIe 전력 관리 — Device D0~D3·Link L0~L3·ASPM·L1 substates·CLKREQ·PME 흐름.

7

Ch 7: Error Handling — Correctable·Uncorrectable·AER·DPC

PCIe 에러 분류·계층별 처리·AER capability·DPC containment·Linux 복구 callback.

8

Ch 8: Data Link Layer — DLLP·ACK/NAK·Flow Control·FLIT Mode

PCIe DLL — ACK/NAK·replay buffer·credit-based flow control·LCRC·Gen 6+ FLIT mode.

9

Ch 9: Physical Layer — LTSSM·Equalization·SerDes

PCIe Physical Layer — LTSSM 11 state·link training timeline·4-phase equalization·TS1/TS2·SKP·encoding 진화.

10

Ch 10: Linux PCI Basics — Enumeration·Driver Model·sysfs

Linux kernel의 PCIe — boot enumeration·struct pci_dev·driver matching·probe/remove·sysfs entry·ACPI 통합.

11

Ch 11: DMA·IOMMU — Coherent·Streaming·ATS·PRI·PASID·IOMMUFD

Linux DMA API — coherent·streaming·scatter-gather·IOMMU mapping·ATS·PRI·PASID·SVM·IOMMUFD.

12

Ch 12: Virtualization I — Pass-through·SR-IOV·VFIO·DPDK·SPDK

PCIe hardware virtualization — SR-IOV PF/VF·VFIO container/group/device·DPDK·SPDK·ACS·FLR.

13

Ch 13: Virtualization II — vIOMMU·Scalable IOV·VirtIO·IDE·TDISP

Guest 측 vIOMMU·Intel S-IOV·VirtIO·vDPA·live migration·Confidential I/O (IDE·TDISP·CMA-SPDM).

14

Ch 14: Linux Operations — Hot-plug·AER Recovery·DPC·ARI

PCIe 운영 — pciehp surprise·orderly hot-plug·AER recovery callback chain·DPC integration·ARI 256+ function·EEH.

15

Ch 15: Tools — lspci·setpci·pcimem·protocol analyzer

PCIe 디버깅 도구 — lspci 전체 옵션·setpci raw access·pcimem BAR R/W·protocol analyzer·debugfs.

16

Ch 16: Troubleshooting — 실무 시나리오북

Device not visible·link training fail·downgrade·CE storm·hang·ACS group·hot-plug·성능 미달·lane reversal·power budget.

17

Ch 17: Performance — Bandwidth·Latency·Tuning

PCIe 성능 — theoretical vs effective BW·MaxPayload·MaxReadReq·latency breakdown·NUMA·P2P·ASPM 영향·tuning.

18

Ch 18: Register Maps — Config Space·Capability 비트 reference

PCIe register reference — Type 0/1 header·PCIe Cap·AER·MSI·MSI-X·SR-IOV·ACS·LTR의 주요 비트 layout.

19

Ch 19: 고급 기능 — Lane Margining·10-bit Tag·TPH·ACS·L0p

코어 동작 너머의 PCIe spec 기능들 — Lane Margining(신호 마진 측정)·10-bit Tag(outstanding 확장)·TPH(캐시 주입 힌트)·ACS(격리)·L0p(부분폭 저전력)을 실무 관점에서 정리합니다.

BSP Development

1

BSP의 본질 분해 — 새 보드 부팅을 위한 코드의 자리

Board Support Package의 정의·범위·구성요소 — 보드를 부팅 가능한 시스템으로 만드는 모든 것.

2

SoC 데이터시트 읽기 — Pin Mux·Clock·Memory Map 파악법

Reference Manual에서 BSP에 필요한 정보를 찾는 방법 — clock tree, memory map, pin mux.

3

새 보드 Device Tree 설계 — node·property·phandle 작성 흐름

보드 토폴로지를 DT로 표현 — SoC dtsi 상속, 보드 dts 작성, overlay 활용.

4

Pin Mux와 Clock Tree 분석 — 보드 부팅의 첫 두 관문

보드의 가장 보드-특화된 초기화 — pin 멀티플렉싱과 clock tree 설정.

5

DDR 매개변수 결정 — 보드별 Timing·Training 추출

DDR controller 설정값이 어디서 오는지 — vendor tool, SPD, 데이터시트 timing 표.

6

U-Boot 새 보드 포팅 — defconfig·board.c·DTS 작성 흐름

BSP 관점에서의 U-Boot 추가 — defconfig·board.c·DT 통합 흐름.

7

TF-A·TrustZone 통합 — BL31·secure world·SMC 흐름 적용

ARM Trusted Firmware-A를 BSP에 통합 — BL31 빌드, U-Boot와 BL33 결합, secure/non-secure 분리.

8

Linux 커널 BSP 설정 — defconfig·Kconfig·DT 통합

BSP에서 커널을 빌드합니다. defconfig 선택과 커스터마이즈, DT 통합, 모듈 vs 빌트인 결정을 정리합니다.

9

Multi-core SMP Bring-up — PSCI·Secondary CPU 깨우기

보드의 다른 코어를 깨우는 절차를 정리합니다. PSCI, spin-table, ARM CPU hotplug의 흐름을 살펴봅니다.

10

첫 부팅 추적 — 0%부터 login prompt까지의 단계 분석

보드 켜는 순간부터 login prompt까지의 단계별 체크포인트를 정리합니다. 어디서 멈추는지를 미리 알아 둡니다.

11

부트로그 디버깅 — earlyprintk·loglevel·serial 추적

부트 실패 패턴을 카탈로그로 정리합니다. 시리얼 garbage, hang, panic, late hang의 진단과 대응을 살펴봅니다.

12

BSP 드라이버 추가 — 보드별 Peripheral 통합 흐름

BSP에서 새 드라이버 통합 — 기존 드라이버 활용, DT binding 추가, 새 드라이버 작성 결정 기준을 정리합니다.

13

BSP Power Management — Suspend/Resume·Runtime PM·Regulator

BSP의 전력 관리 — suspend-to-RAM, runtime PM, regulator framework, CPU idle/freq를 정리합니다.

14

BSP Thermal과 Watchdog — Trip Point·Cooling Device·Hardware Reset

보드 안전 장치를 정리합니다. thermal zone과 trip point, hardware watchdog 통합을 살펴봅니다.

15

BSP 부트 시간 최적화 — Bootchart·initcall_debug·Parallel Init

boot에서 application까지 시간을 줄이는 기법 — measurement, Falcon, deferred init, kernel slim.

16

BSP RootFS 통합 — Buildroot·Yocto와 보드별 패키지 묶기

BSP에서 rootfs 빌드 시스템 선택과 통합 — Buildroot 외부 트리, Yocto 메타레이어.

17

BSP 이미지 패키징 — Flash Layout·Partition·GPT 설계

최종 이미지 조립 — 파티션 테이블, flash layout, SD/eMMC/UFS 굽기 워크플로.

18

BSP OTA와 Field Recovery — A/B 슬롯·롤백·BootCount

현장 배포된 보드의 펌웨어 업데이트와 복구 — RAUC/SWUpdate 통합, recovery 파티션, USB recovery.

19

BSP Stability Testing — Stress·Soak·Power Cycle 시나리오

양산 BSP의 안정성 검증 — stress 도구, 장기간 soak, thermal 사이클, EMC 영향.

20

BSP 양산 환경 구축 — CI/CD·재현 가능 빌드·서명

BSP를 양산으로 옮기는 단계 — CI 빌드, 재현성, 코드 서명, 키 관리.

21

BSP 유지보수 — 업스트림 기여·커널 버전업·LTS 전략

BSP의 장기 유지 — 업스트림 기여로 부담 줄이기, LTS 버전 선택, 커널 버전업 전략.

CXL 4.0 Internals

cxl

1

Ch 1: CXL의 자리와 진화 — 1.1에서 4.0까지

CXL이 푸는 문제, 세대별 진화, 4.0의 핵심 변경 (128 GT/s·Bundled Port).

2

Ch 2: System Architecture — Type 1·2·3·MLD·MH-MLD

CXL 디바이스 분류와 multi-LD·multi-head 구조.

3

Ch 3: 메모리 일관성 모델 — HDM-DB·HDM-D·Bias·BISnp

Host-managed Device Memory 두 종류와 일관성 메커니즘.

4

Ch 4: Pooling·GFAM·Fabric — Multi-host 메모리 공유

CXL 2.0 pooling, CXL 3.x fabric, GFAM (Global Fabric Attached Memory).

5

Ch 5: CXL 4.0의 핵심 새 기능 — 128 GT/s·Bundled Port

PCIe 7.0 기반 128 GT/s, Bundled Port·Streamlined Port의 동기와 효과.

6

Ch 6: CXL.io — PCIe와의 차이·DOE·DVSEC

CXL.io 프로토콜의 PCIe 호환성과 CXL 고유 확장.

7

Ch 7: CXL.cache — D2H·H2D 흐름과 coherency state

디바이스가 호스트 메모리를 캐시하는 프로토콜.

8

Ch 8: CXL.mem — M2S·S2M·HDM Decoder

호스트가 디바이스 메모리를 load/store하는 프로토콜.

9

Ch 9: Flit Format — 68B vs 256B vs Latency-Optimized

Flit 단위 구조의 세대 별 변화.

10

Ch 10: ARB/MUX — 세 프로토콜의 PHY 다중화

같은 PHY에 CXL.io·CXL.cache·CXL.mem을 시분할로 흘리는 layer.

11

Ch 11: Linux drivers/cxl/ 분석 — Mainline kernel CXL 구현

Linux 6.x의 CXL subsystem 코드 구조와 probe 흐름.

12

Ch 12: QEMU CXL 에뮬레이션 — 노트북에서 CXL 개발

QEMU 8.0+의 CXL Type 3 에뮬레이션과 드라이버 검증 워크플로.

13

Ch 13: Switching·Fabric Manager — 2.0 pooling에서 3.x fabric까지

CXL switch의 진화와 Fabric Manager의 역할.

14

Ch 14: Security — IDE·SPDM·TSP·CXL TEE

CXL 보안 메커니즘 4종의 위치와 관계.

15

Ch 15: RAS·Performance·Compliance — 운용·검증의 마지막 단계

Reliability·Availability·Serviceability, 성능 고려사항, Compliance Testing.

Industrial Ethernet 심화

industrial-ethernet

1

산업용 이더넷 분석 — 일반 이더넷과 결정성 요구의 차이

왜 표준 Ethernet으로 부족한가 — 실시간성·결정성.

2

산업용 통신 실시간 요구사항 — Determinism·Jitter·Cycle Time

Soft·Firm·Hard real-time — 산업 자동화의 시간 등급.

3

EtherCAT 아키텍처 분해 — Processing on the Fly 메커니즘

Slave가 프레임을 통과시키면서 읽고 쓴다 — EtherCAT 핵심.

4

EtherCAT 프레임 구조 분석 — Datagram·WKC·Address 모드

EtherCAT frame이 standard Ethernet 위에 어떻게 얹히는가.

5

EtherCAT Master 구현 비교 — SOEM·IgH·TwinCAT 분석

SOEM·IgH·TwinCAT — 오픈소스와 상용 master 구현.

6

PROFINET 개요 분석 — RT·IRT 클래스와 실시간 등급

Siemens 표준 산업 이더넷 — RT vs IRT.

7

PROFINET IO 모델 — Controller·Device·Supervisor 역할 추적

PROFINET IO 통신 모델 — AR·CR·DCP·alarm·MRP redundancy까지 한 번에.

8

TSN 표준 분석 — IEEE 802.1 Time-Sensitive Networking 개요

IEEE 802.1 toolkit — 표준 Ethernet에 결정성을 더하는 9개 표준을 한 자리에.

9

TSN 스케줄링 메커니즘 — Qbv·Qbu·gPTP 동기화 분석

Gate Control List 설계부터 ILP 기반 스케줄 합성·실제 도구·CNC YANG까지.

10

POWERLINK과 OpenSAFETY 분석 — 산업 안전 통신 프로토콜

B&R발 오픈소스 표준 산업 이더넷·통합 safety layer — slot polling으로 1ms 결정성을 만드는 법.

11

리눅스 실시간 산업 통신 — PREEMPT_RT·EtherCAT Master 운영

PREEMPT_RT mainline·CPU isolation·NIC tuning·IgH EtherCAT 마스터까지 — Linux 위에서 산업 이더넷을 굴리는 모든 단계.

12

산업용 이더넷 프로토콜 비교 — EtherCAT·PROFINET·POWERLINK·TSN 선택

EtherCAT·PROFINET·EtherNet/IP·POWERLINK·SERCOS III·TSN — 시나리오별 선택 가이드와 한국 산업 현장 적용 사례.