-
Sharing One Debug UART Between Linux and RISC-V with RPMsg
How I replaced cross-core UART contention with a buffered RPMsg log relay, a host-ready handshake, and a race-free startup sequence.
-
Designing Reliable Live Data Acquisition and File Synchronization over BLE
How I separated live waveform preview from lossless file delivery, tailed a growing recording, and made Stop mean drain and verify instead of disconnect.
-
Crossing Thread Boundaries Safely in libevent
How I connected a BlueZ GATT thread to a libevent main loop using an eventfd, a protected job queue, and a socketpair response channel.
-
Understanding Event-Driven I/O with libevent and libuv
What I learned about file descriptors, non-blocking I/O, event loops, callbacks, and the boundary between event-driven code and threads.