ブログ
【STM32 Series #12】Optimization and Assembly — Watching C Become Machine Code, and Becoming a Strong Embedded Engineer
The compiler transforms code while preserving meaning — but forget volatile and it changes the meaning too. See how assembly changes between -O0 and -O2 with objdump, and close out 12 episodes with the ‘conditions for embedded mastery.’
作成: 2026-05-08【STM32 Series #11】 — Linker Scripts and Map Files: What .text/.data/.bss Really Are, and How to See Your Memory Usage
“RAM is full!” “A variable is changing on its own…” The answer is in the map file. This episode covers what .text/.data/.bss really are, how to read a linker script, how to stop stack overflows — and what the 512,000-line Claude Code leak teaches us about map file hygiene.
作成: 2026-05-02【STM32 Series #10】The DMA Idea — Understanding the Transfer Architecture That Makes the CPU Idle
Stop having the CPU send bytes one at a time — let DMA handle everything. By DMA-ifying UART transmission, the CPU is freed to do real work. Episode 10 builds intuition for throughput, latency, and bus contention.
作成: 2026-04-30[STM32 Series #9] Interrupt Design Anti-Patterns — Learn ISR Pitfalls by Deliberately Breaking Things
printf in ISR, missing volatile, heavy processing, forgotten flag clear — we deliberately trigger every classic embedded landmine and watch them fail. Applies to Arduino, ESP32, Renesas, PIC — every MCU with interrupts.
作成: 2026-04-26STM32 Series #8: Understanding Interrupts — Vector Table, NVIC, Context Saving, and TIM2 Implementation
Why does polling fail when you need to ‘do something every 1ms’? Understand the vector table, NVIC, and context saving — then implement a 1ms periodic event with TIM2 interrupts.
作成: 2026-04-17STM32 Series #7: The World of Time — Knowing the Weight of a Single Cycle
How many CPU cycles does ‘wait 1 second’ actually consume? Learn to measure execution time in µs using DWT CYCCNT, and internalize the embedded engineer’s iron rule: ‘you can’t discuss it without measuring it.’
作成: 2026-04-08STM32 Series #6: The Complete Pointer Accident Handbook — How and Why Things Break
NULL dereference, dangling pointers, out-of-bounds array access, undefined behavior — we deliberately trigger the classic pointer land mines of embedded development and observe them under the debugger. Knowing how things break is the most powerful way to learn.
作成: 2026-03-28STM32 Series #5: Pointers = Addresses with Types — Turning Pointers into a Weapon
Demystify C’s most feared concept — pointers — from the core principle of ’typed addresses.’ What casts mean, how memory-mapped I/O connects to pointers, and what CMSIS headers are actually doing. Stop fearing pointers and start using them as a weapon.
作成: 2026-03-25 ・ 更新: 2026-03-29KiCad 10.0 New Features: Allegro/PADS Importers, Design Variants, Graphical DRC
KiCad 10.0 (March 2026): Allegro/PADS/gEDA importers, Design Variants, graphical DRC editor, time-domain track tuning, PCB Design Blocks, and more. Complete feature breakdown with V9 migration guide and 10.0.1 bugfix notes.
作成: 2026-03-20 ・ 更新: 2026-05-09STM32 Series #4: The World of Bits — Register Operations and the BSRR Design
From mask/shift basics to the RMW problem to STM32’s elegant BSRR design. Learn to read registers as bit collections, practice register-direct LED blinking through GPIO, and measure the speed difference between HAL and direct register access.
作成: 2026-03-14STM32 Series #3: How C Represents Memory — Arrays, Structs, and Padding
Use the STM32 debugger Memory view to observe struct padding and alignment in C. See why sizeof() doesn’t always equal the sum of member sizes, learn how to reduce RAM usage by reordering members, and understand volatile through actual byte-level inspection.
作成: 2026-03-06 ・ 更新: 2026-03-12STM32 Series #2: Where Variables Live — Flash, RAM, and the Stack
C variable declarations (const, global, local) determine which memory region data lands in. Use the debugger to verify actual addresses and understand the difference and purpose of Flash, SRAM, and the Stack.
作成: 2026-03-01STM32 Series #1: The Microcontroller Is an "Address World" — Understanding Hardware Through Coordinates
Use the STM32CubeIDE debugger to observe the microcontroller’s internal state as your program runs. Understand the physical ‘address’ coordinates underlying C code — program counter, memory map, register writes — and experience the embedded address world through real measurements.
作成: 2026-02-23RTX PRO 4000 Blackwell Benchmark: AI Inference 5.47× Faster, Blender 2.29× — Full Review vs RTX A4000
Real-world benchmarks of the RTX PRO 4000 Blackwell: AI inference 5.47× faster, Blender 2.29×, Stable Diffusion 1.65× over the RTX A4000. Full data including Llama 3.1 8B logs, SPECviewperf 2020, Geekbench 6 OpenCL, and FF14 — plus RTX 4090 comparison and standard vs SFF model guide.
作成: 2026-02-22 ・ 更新: 2026-03-14STM32 Series #0: Why Embedded Programming Looks Hard — Place and Time
Embedded programming looks hard because it requires awareness of ‘place’ (memory) and ’time’ (execution timing). What does it mean to operate hardware directly without an OS protecting you? This article explains the core mental model.
作成: 2026-02-17Full 13-Part Series: The Embedded World Beyond Pointers — Memory and Time in STM32 Programming
The next step after Arduino! Serious embedded programming with the STM32 microcontroller. Addresses, bits, and time — understand the essence of embedded systems step by step, building a solid mental model that applies to any platform.
作成: 2026-02-12 ・ 更新: 2026-04-08Arduino IR Remote Control: Receive & Decode Signals with IRremote Library
Receive and decode IR remote control signals with Arduino, then use them to control 6 LEDs. Complete guide covering IR communication principles, hex signal decoding with IRremote, and step-by-step dimmer implementation — with circuit diagrams and full sample code.
作成: 2020-07-23 ・ 更新: 2026-04-28Arduino RGB LED PWM Control: 8 Colors to 16.7 Million with Sine Wave Gradient
A complete guide to controlling full-color RGB LEDs with Arduino PWM. From basic 8-color digital output to smooth 16.7 million color gradients using three-phase sine waves — with circuit diagrams and ready-to-use sample code.
作成: 2020-07-13 ・ 更新: 2026-04-28Arduino LED Circuit for Beginners | Ohm's Law Resistor Calculation
Learn how to safely light up an LED using Ohm’s Law. Calculate the correct resistor value, wire a breadboard circuit, and avoid common mistakes — a complete beginner’s guide.
作成: 2020-06-15 ・ 更新: 2026-04-28