#rtos
4 pieces tagged rtos.
-
A Heap Without a Tail: A TLSF Allocator for VaiOS, and Teaching QEMU to Measure It
VaiOS's heap is fast on average and resists fragmentation — but its malloc has a worst case that grows with the heap, and it runs with interrupts off, which makes it an interrupt-latency problem in disguise. I gave the kernel a second allocator — TLSF, O(1) in the worst case — behind a swappable backend interface, so either can be selected from config. Then I tried to measure the difference under QEMU and found the cycle counter was fake. This is how I made the measurement honest: a real time source from semihosting, and a deterministic metric that doesn't need one at all.
-
Eight Bugs Between a File and the Ground: Debugging Vayu's Transfer Stack on Hardware
I wanted to copy a file off the flight controller's SD card and get the same bytes back. Small files worked; anything past a kilobyte stalled or came back subtly wrong, non-deterministically. This is the hunt that followed — an isolation ladder that exonerated the SD card, a plausible theory I ruled out by measuring instead of guessing, and two bugs with the exact same shape: a synchronous primitive racing an asynchronous event that only collides under a preemptive scheduler. Eight fixes later, the round-trip is byte-perfect to 64 KB.
-
Cutting the Cable: Reading Vayu's First Wireless Rig Log
We had logged the flight controller on the bench before — but always down a USB cable, which is exactly what kept it pinned to the bench. A new UDP/WiFi telemetry bridge cut that cable and let the airframe move freely on a rig for the first time. This is a frame-by-frame read of that first untethered log: the transport, an attitude loop that shakes itself apart under its own feedback, and the sensors and telemetry bugs underneath.
-
Benchmarking VAIOS Against FreeRTOS and Zephyr
We measured our in-house real-time operating system against FreeRTOS and Zephyr on the same flight-controller hardware — scheduling, IPC, memory, timing, and footprint. Here is the full set of results.