STM32 / Firmware
5 min readStarting a series on USB Device on STM32
A journey through USB knowledge, from theory to a real project on STM32G0: from protocol fundamentals to a working composite device firmware.
Bài viết hoàn chỉnh về BIOS/UEFI, firmware và embedded systems. Tập trung vào cấu trúc, debugging và system-level thinking. Complete articles on BIOS/UEFI, firmware, and embedded systems. Focused on structure, debugging, and system-level thinking. BIOS/UEFI、ファームウェア、組み込みシステムの記事です。 構造、デバッグ、システムレベルの考え方を重視します。
Lọc theo series
Lọc theo ngôn ngữ
Series
Series
BIOS / UEFI
9 min readNot memorizing phase names — learning boot flow to know where a machine is dying and which direction to debug. From SEC through Runtime, a map for real failure modes.
BIOS / UEFI
約 12 分マシンがどこで死んでいるかを知りデバッグするためにブートフローを学ぶ。SECからRuntimeまでの実際の障害モードへの地図。
BIOS / UEFI
17 min readWhy does everyone say 'go into BIOS' when modern machines use UEFI? Covers BIOS, UEFI, boot flow, Secure Boot, Boot#### and how firmware builds the system before the OS runs.
BIOS / UEFI
約 23 分現代のマシンがUEFIを使っているのに「BIOSに入る」と言い続けるのはなぜか。BIOS・UEFI・ブートフロー・Secure Boot・Boot####の解説。
BIOS / UEFI
21 phút đọcVì sao ai cũng nói 'vào BIOS' dù máy hiện nay dùng UEFI? Bài viết giải thích BIOS, UEFI, boot flow, Secure Boot, Boot#### và cách firmware dựng hệ thống trước khi OS chạy.
BIOS / UEFI
11 phút đọcKhông phải học để thuộc tên phase. Học boot flow để biết máy đang chết ở đâu, và debug theo hướng nào: từ SEC đến Runtime.
BIOS / UEFI
10 phút đọcPEI: cần RAM để chạy code nhưng cần code để init RAM. Giải pháp là Cache-As-RAM. PPI, HOB và tại sao lỗi DXE đôi khi bắt nguồn từ PEI.
BIOS / UEFI
11 min readWhy shouldn't firmware toggle a GPIO to power off? ACPI is the contract firmware writes and the OS reads: tables, AML, power states, and debugging broken sleep and wake.
BIOS / UEFI
11 min readDeep dive into DXE: dispatcher, DEPEX, Driver Binding, protocol database, and how to use serial log, POST codes, and UEFI Shell to debug real failures.
BIOS / UEFI
8 min readModern BIOS Setup is built on HII: VFR, VarStore, NVRAM. Why adding a field in the middle of a struct can break a system, and how to debug settings that don't persist.
BIOS / UEFI
11 min readSMM is not a linear boot phase but an isolated execution mode. SMI triggers, SMRAM, handler timing, SmmReadyToLock, and debugging SetVariable that silently fails.
BIOS / UEFI
約 15 分なぜfirmwareがGPIOトグルで電源を落としてはいけないのか。ACPIはfirmwareが書きOSが読む契約: テーブル、AML、電力状態、スリープ/ウェイクのデバッグ。
BIOS / UEFI
約 13 分DXEの深掘り: dispatcher、DEPEX、Driver Binding、protocolデータベース。シリアルログ、POST code、UEFI Shellで実際の障害をデバッグする方法。
BIOS / UEFI
約 11 分現代のBIOS SetupはHII上に構築されている: VFR、VarStore、NVRAM。structの途中にフィールドを追加するとなぜ壊れるか、保存されない設定のデバッグ。
BIOS / UEFI
約 15 分SMMは分離された実行モード。SMIトリガー、SMRAM、SmmReadyToLock、そしてSetVariableがサイレントに失敗するデバッグ方法。
BIOS / UEFI
13 phút đọcDeep dive vào DXE phase: dispatcher, DEPEX, Driver Binding, protocol database, kèm cách dùng serial log, POST code và UEFI Shell để debug thực tế.
BIOS / UEFI
9 phút đọcBDS là nơi firmware chuyển từ 'dựng driver' sang 'chọn OS'. ConnectAll, BootOrder, Device Path resolution và tại sao boot option biến mất sau khi clone disk.
BIOS / UEFI
11 phút đọcBIOS Setup hiện đại xây trên HII: VFR, VarStore, NVRAM. Tại sao thêm field vào giữa struct phá hỏng hệ thống và cách debug setting không lưu được.
BIOS / UEFI
15 phút đọcTại sao firmware không nên dùng GPIO trực tiếp để tắt máy? ACPI là hợp đồng firmware viết, OS đọc: table, AML, power state và cách debug sleep/wake sai.
BIOS / UEFI
16 phút đọcSMM không phải phase tuyến tính mà là isolated execution mode. Hiểu SMI trigger, SMRAM, handler timing, SmmReadyToLock và debug SetVariable không lưu được.
BIOS / UEFI
4 phút đọcHành trình hiểu firmware PC từ gốc: boot flow, kiến trúc UEFI, và cách firmware tự dựng hệ thống trước khi bàn giao cho OS, qua từng phase SEC, PEI, DXE, BDS.
Series
STM32 / Firmware
16 min readDesigning a non-blocking UART debug logger for STM32: avoiding printf blocking, handling lost logs with DMA, and using a ring buffer with DMA callbacks.
STM32 / Firmware
22 phút đọcThiết kế debug UART non-blocking cho STM32: tránh printf blocking, xử lý mất log với DMA, dùng ring buffer và DMA callback.
STM32 / Firmware
11 min readBuilding a FreeRTOS skeleton on STM32: tasks, queues, mutexes, and how to split firmware into independent modules.
STM32 / Firmware
14 phút đọcTriển khai FreeRTOS skeleton trên STM32: task, queue, mutex, và cách chia firmware thành các module độc lập.
STM32 / Firmware
14 phút đọcTừ demo nhiều task sang kiến trúc firmware thật: cách tổ chức task ownership, chọn đúng primitive signal, tránh race condition và viết HAL wrapper để dễ port.
STM32 / Firmware
18 phút đọcTừ linker script chia vùng Flash, erase/write API, tại sao single-bank freeze, đến nguyên lý EEPROM emulation trên STM32G0 dual bank.
STM32 / Firmware
22 phút đọcThiết kế bootloader STM32G0B1RE dual-slot, update qua UART, validate vector table, CRC32 từng packet, metadata pending/confirmed và rollback tự động.
STM32 / Firmware
4 phút đọcTừ những vấn đề thật trong firmware POS đến thiết kế thật: logger non-blocking, FreeRTOS architecture, Flash EEPROM emulation và dual-slot bootloader trên STM32G0.