본문으로 건너뛰기
Series · 152 posts

Modern Embedded Recipes

aba adc alignment allocator altera amba arm atomic axi axi-stream bar bare-metal basics boot bootloader brick build buildroot cache cache-coherency calibration camera can cas char-driver clock cmake code-size coherent compile completion concurrency configfs cookbook cortex-a cortex-m cortex-m33 cq cross-compile csa cuda cxl dac dataflow dax ddr debug debugging deepstream defer design device-tree devicetree display dkms dla dma dma-buf dmb doorbell double-buffer dpdk dpu dsb dtb dts dvfs edge-ai edge-triggered elf embedded emulation enumeration epoll ethernet ethos event exceptions false-sharing fatfs fft flash flex-bus fpga gdb ggml gguf gpio gptq hardfault hashed-wheel hazard-pointer hbm hexagon hierarchical hls huge-page hw-basics i2c image imu inference int4 int8 intel interconnect interrupt intrinsics io_uring iommu iot irq-affinity irqbalance isb isolcpus isp ispc isr jetpack jetson jtag kbuild kernel-build kernel-driver kernel-module ko kobject lcd led level-triggered libcamera linker linux llama-cpp llm lock lock-free logging logic-analyzer low-power lvds madvise mailbox mapfile mars-pathfinder matrix matter mcu mcuboot memory memory-barrier memory-map methodology mlock mlx mmap mmio mmu motor mpmc mpu msi-x multiplex mutex neon npu numa nvic nvme oled onnx onnxruntime openamp opencl openmp openocd openthread optimization overlay padding pcie performance peripheral pi pipeline platform-driver pll polling postmortem power preempt-rt priority-inversion ps-pl psa ptq pwm qat qemu quantization quartus queue race rcu recipes reentrant registers ring-buffer rootfs rs485 rtc rtos runtime scheduler sd sdram secure-boot security semaphore sendfile sensor sequence servo signal-integrity signaling simd soa spdk spi spl splice spsc sq stack startup stepper swd sycl sysfs systick task tensorrt tflite tflite-micro tfm tft thermal thread throttling timer timer-wheel timing toolchain trustzone type-3 u-boot uart uboot udev uio usb v4l2 vectorization vfio virtualization vitis vitis-ai vivado vpi wait-free watchdog wcet xdma xilinx zero-copy zynq
1

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 지원 — 노트북에서 CXL Type 3 디바이스를 에뮬레이션해 드라이버·BIOS 개발 환경 만들기.

151

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

Linux kernel 6.x의 CXL 서브시스템 — cxl_pci·cxl_core·cxl_mem·region·DAX 모듈의 역할과 probe 흐름.