Sean Kim's Blog
  • About
  • Post (current)
  • Projects

UART Bare-Metal Driver Phase 2: Implementing ISR

Status: ✅ BRR, CR1 configured. ISR pseudocode complete. Ring buffer next.

March 01, 2026 · Firmware

UART Bare-Metal Driver Phase 1: Clock Init and GPIO Configuration

1. Setting up Driver is setting up registers

Feb 28, 2026 · Firmware

UART Bare-Metal Driver Project Overview

1. Project Overview

Feb 28, 2026 · Firmware

Bootloader with OTA Phase 5 - Part 2: OTA Handler Implementation

Phase 5 Overview

Jan 29, 2026 · Firmware
  • Bootloader with OTA Phase 5: OTA Protocol Implementation - Part 1

    16 min read   ·   January 27, 2026

      ·   Firmware

  • Bootloader with OTA Phase 4.1: Debugging the CRC Mismatch

    18 min read   ·   January 26, 2026

      ·   Firmware

  • Bootloader with OTA Phase 4: Implementing Persistent Boot State

    23 min read   ·   January 20, 2026

      ·   Firmware

  • Bootloader with OTA Phase 3: Dual Bank Selection

    9 min read   ·   January 17, 2026

      ·   Firmware

  • Debugging Bootloader: Part 2

    58 min read   ·   January 16, 2026

      ·   Firmware

  • Debugging Bootloader: Part 1

    31 min read   ·   January 15, 2026

      ·   Firmware

  • <
  • 1
  • 2
  • 3
  • 4
  • >
☰ Categories

Categories

RTOS
  • Part 1. How to Set FreeRTOS in Your Project
  • How to Use SEGGER Trace Tool for Debugging
  • Context Switching in RTOS
  • Schedulers in FreeRTOS
  • Semaphore vs. Mutex
  • Solutions for Priority Inversion
  • Illustrated Priority Inversion
System Programming
Firmware
  • UART Bare-Metal Driver Phase 2: Implementing ISR
  • UART Bare-Metal Driver Phase 1: Clock Init and GPIO Configuration
  • UART Bare-Metal Driver Project Overview
  • Bootloader with OTA Phase 5 - Part 2: OTA Handler Implementation
  • Bootloader with OTA Phase 5: OTA Protocol Implementation - Part 1
  • Bootloader with OTA Phase 4.1: Debugging the CRC Mismatch
  • Bootloader with OTA Phase 4: Implementing Persistent Boot State
  • Bootloader with OTA Phase 3: Dual Bank Selection
  • Debugging Bootloader: Part 2
  • Debugging Bootloader: Part 1
  • Bootloader with OTA Phase 2: Minimal Bootloader
  • Bootloader with OTA Phase 1: Flash Operations
  • Building My First Firmware Project with Claude
TIL
  • Basic Keywords for Developing a Linux Device Driver
  • fork() vs. clone(): What is the difference?
  • External Clock Will Not Work Unless You Have A External Hardware
  • Clock Sources and Types in STM32
  • Real Time Clock in STM32
  • What is MQTT?
  • What is FPU and why does it cause assembler error?
  • LightWeight IP (lwIP)
© Copyright 2026 Sean Kim. Powered by Jekyll with al-folio theme. Hosted by GitHub Pages.