Tech Blog
- Home /
- Tech Blog
Hello World on ZynqMP R5 with Zephyr OS
The ZynqMP SoC has two Cortex-R5F cores sitting alongside the quad-core Cortex-A53 APU. Most people leave them unused. Here’s how to bring them up with Zephyr RTOS and communicate with Linux over RPMsg — the entire workflow from a running Linux system, no JTAG required.
Read MoreTracing Every Function Call with a GCC Plugin
Ever wanted to see every function call in a program — entry, exit, thread ID, and instruction pointer — without touching the source? This post builds exactly that: a GCC plugin that instruments functions at compile time and a libc-free runtime tracer that writes the log using raw syscalls.
Read MoreTracing glibc Itself — From _dl_start to printf
The previous post built a GCC plugin that traces every function in a normal program. This post takes it to the logical extreme: instrumenting glibc itself, including ld.so — the dynamic linker that runs before main, before any libc function exists, before the process is even fully initialized.
Read MoreZero-Overhead USDT Probes Without sys/sdt.h
The previous two posts built a GCC plugin that writes a trace file on every function entry and exit. That works well for offline analysis but has a cost: every call executes a spinlock check, a gettid syscall, a hex formatting loop, and a writev. Even with the lock already open and O_APPEND in place, that is work happening on every function call in your program.
Read More