Blog Blog ブログ

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

USB Device trên STM32

Xem series →

Series

Từ nút nguồn đến hệ điều hành

Xem series →
Coming soon
UEFI Boot Flow: from Reset Vector to ExitBootServices

BIOS / UEFI

9 min read

UEFI Boot Flow: from Reset Vector to ExitBootServices

Not 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.

近日公開
UEFIブートフロー: リセットベクターからExitBootServicesまで

BIOS / UEFI

約 12 分

UEFIブートフロー: リセットベクターからExitBootServicesまで

マシンがどこで死んでいるかを知りデバッグするためにブートフローを学ぶ。SECからRuntimeまでの実際の障害モードへの地図。

Coming soon
How are BIOS and UEFI different?

BIOS / UEFI

17 min read

How are BIOS and UEFI different?

Why 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はどこが違うのか?

BIOS / UEFI

約 23 分

BIOSとUEFIはどこが違うのか?

現代のマシンがUEFIを使っているのに「BIOSに入る」と言い続けるのはなぜか。BIOS・UEFI・ブートフロー・Secure Boot・Boot####の解説。

Sắp ra mắt
BIOS và UEFI khác nhau như thế nào?

BIOS / UEFI

21 phút đọc

BIOS và UEFI khác nhau như thế nào?

Vì 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.

Sắp ra mắt
UEFI Boot Flow: từ Reset Vector đến ExitBootServices

BIOS / UEFI

11 phút đọc

UEFI Boot Flow: từ Reset Vector đến ExitBootServices

Khô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.

Sắp ra mắt
PEI Phase: khi firmware tự dựng RAM trước khi có RAM

BIOS / UEFI

10 phút đọc

PEI Phase: khi firmware tự dựng RAM trước khi có RAM

PEI: 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.

Coming soon
What is ACPI: why firmware shouldn't power off by toggling a GPIO

BIOS / UEFI

11 min read

What is ACPI: why firmware shouldn't power off by toggling a GPIO

Why 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.

Coming soon
DXE Phase: Drivers, Protocols, and reading logs when nothing runs

BIOS / UEFI

11 min read

DXE Phase: Drivers, Protocols, and reading logs when nothing runs

Deep dive into DXE: dispatcher, DEPEX, Driver Binding, protocol database, and how to use serial log, POST codes, and UEFI Shell to debug real failures.

Coming soon
What is BIOS Setup: from the classic blue screen to HII and modern NVRAM

BIOS / UEFI

8 min read

What is BIOS Setup: from the classic blue screen to HII and modern NVRAM

Modern 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.

Coming soon
SMM in UEFI: System Management Mode from a debug perspective

BIOS / UEFI

11 min read

SMM in UEFI: System Management Mode from a debug perspective

SMM is not a linear boot phase but an isolated execution mode. SMI triggers, SMRAM, handler timing, SmmReadyToLock, and debugging SetVariable that silently fails.

近日公開
ACPIとは: firmwareがGPIOをトグルして電源を切ってはいけない理由

BIOS / UEFI

約 15 分

ACPIとは: firmwareがGPIOをトグルして電源を切ってはいけない理由

なぜfirmwareがGPIOトグルで電源を落としてはいけないのか。ACPIはfirmwareが書きOSが読む契約: テーブル、AML、電力状態、スリープ/ウェイクのデバッグ。

近日公開
DXEフェーズ: ドライバー、Protocolと何も動かないときのログの読み方

BIOS / UEFI

約 13 分

DXEフェーズ: ドライバー、Protocolと何も動かないときのログの読み方

DXEの深掘り: dispatcher、DEPEX、Driver Binding、protocolデータベース。シリアルログ、POST code、UEFI Shellで実際の障害をデバッグする方法。

近日公開
BIOS Setupとは: クラシックな青い画面からHIIと現代のNVRAMまで

BIOS / UEFI

約 11 分

BIOS Setupとは: クラシックな青い画面からHIIと現代のNVRAMまで

現代のBIOS SetupはHII上に構築されている: VFR、VarStore、NVRAM。structの途中にフィールドを追加するとなぜ壊れるか、保存されない設定のデバッグ。

近日公開
UEFIのSMM: デバッグ視点からのSystem Management Mode

BIOS / UEFI

約 15 分

UEFIのSMM: デバッグ視点からのSystem Management Mode

SMMは分離された実行モード。SMIトリガー、SMRAM、SmmReadyToLock、そしてSetVariableがサイレントに失敗するデバッグ方法。

Sắp ra mắt
DXE Phase: Driver, Protocol và cách đọc log khi mọi thứ không chạy

BIOS / UEFI

13 phút đọc

DXE Phase: Driver, Protocol và cách đọc log khi mọi thứ không chạy

Deep 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ế.

Sắp ra mắt
BDS Phase: từ Protocol đến OS Loader

BIOS / UEFI

9 phút đọc

BDS Phase: từ Protocol đến OS Loader

BDS 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.

Sắp ra mắt
BIOS Setup là gì: từ màn hình xanh cổ điển đến HII và NVRAM hiện đại

BIOS / UEFI

11 phút đọc

BIOS Setup là gì: từ màn hình xanh cổ điển đến HII và NVRAM hiện đại

BIOS 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.

Sắp ra mắt
ACPI là gì: tại sao firmware không nên tắt máy bằng cách toggle GPIO

BIOS / UEFI

15 phút đọc

ACPI là gì: tại sao firmware không nên tắt máy bằng cách toggle GPIO

Tạ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.

Sắp ra mắt
SMM trong UEFI: System Management Mode từ góc debug

BIOS / UEFI

16 phút đọc

SMM trong UEFI: System Management Mode từ góc debug

SMM 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.

Sắp ra mắt
Series tổng hợp kiến thức về BIOS và UEFI: từ nút nguồn đến hệ điều hành

BIOS / UEFI

4 phút đọc

Series tổng hợp kiến thức về BIOS và UEFI: từ nút nguồn đến hệ điều hành

Hà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 thực chiến

Xem series →
Coming soon
Architecture diagram of a non-blocking UART logger on STM32: the application writes logs into a Ring Buffer, and DMA transmits them over UART in the background.

STM32 / Firmware

16 min read

Non-Blocking UART Logger on STM32 with DMA + Ring Buffer

Designing a non-blocking UART debug logger for STM32: avoiding printf blocking, handling lost logs with DMA, and using a ring buffer with DMA callbacks.

Sắp ra mắt
Sơ đồ kiến trúc UART logger non-blocking trên STM32: application ghi log vào Ring Buffer, DMA truyền ra UART ở background.

STM32 / Firmware

22 phút đọc

UART non-blocking logger trên STM32 với DMA + Ring Buffer

Thiế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.

Coming soon
FreeRTOS on STM32: Tasks, Queues, Mutexes, and How to Organize Firmware into Modules

STM32 / Firmware

11 min read

FreeRTOS on STM32: Tasks, Queues, Mutexes, and How to Organize Firmware into Modules

Building a FreeRTOS skeleton on STM32: tasks, queues, mutexes, and how to split firmware into independent modules.

Sắp ra mắt
FreeRTOS trên STM32: Task, Queue, Mutex và cách tổ chức firmware theo module

STM32 / Firmware

14 phút đọc

FreeRTOS trên STM32: Task, Queue, Mutex và cách tổ chức firmware theo module

Triển khai FreeRTOS skeleton trên STM32: task, queue, mutex, và cách chia firmware thành các module độc lập.

Sắp ra mắt
Thiết kế firmware STM32 với FreeRTOS: task ownership, signaling và HAL wrapper

STM32 / Firmware

14 phút đọc

Thiết kế firmware STM32 với FreeRTOS: task ownership, signaling và HAL wrapper

Từ 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.

Sắp ra mắt
Flash STM32G0: Linker Script, EEPROM Emulation và Dual Bank

STM32 / Firmware

18 phút đọc

Flash STM32G0: Linker Script, EEPROM Emulation và Dual Bank

Từ 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.

Sắp ra mắt
STM32 Dual-Slot UART Bootloader: BIN Update, VTOR và Safe Rollback

STM32 / Firmware

22 phút đọc

STM32 Dual-Slot UART Bootloader: BIN Update, VTOR và Safe Rollback

Thiết kế bootloader STM32G0B1RE dual-slot, update qua UART, validate vector table, CRC32 từng packet, metadata pending/confirmed và rollback tự động.

Sắp ra mắt
Series tổng hợp kiến thức về STM32 Firmware thực chiến

STM32 / Firmware

4 phút đọc

Series tổng hợp kiến thức về STM32 Firmware thực chiến

Từ 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.