Configuring Build Automation and Core Standard Library Support
Automating Execution Environments
In systems programming projects involving emulators like NEMU (Non-Architecture-based Machine Emulator), developers often face repetitive manual input when launching test cases. While interactive debugging tools (such as sdb) require user intervention, automated regression testing should not depend on manual ke ...
Posted on Mon, 13 Jul 2026 17:28:02 +0000 by Pellefant
Developing a Bare-Metal Environment for RISC-V
Modern applications rely on complex execution environments—ranging from standard libraries to operating systems—to manage resources and hardware interactions. To build a kernel from scratch, one must strip away these abstractions and interface directly with the CPU and memory. This process involves navigating the target platform's architecture, ...
Posted on Mon, 06 Jul 2026 16:13:44 +0000 by learningsql
Setting Up NEMU and QEMU Differential Testing with Dynamic Library Integration
Overview
This guide covers setting up a differential testing environment where:
QEMU serves as the reference implementation (REF)
NEMU serves as the device under test (DUT)
Test environment: Ubuntu 18.04.5 LTS
Building NEMU
First, install the required dependencies:
apt install build-essential man gcc gdb git libreadline-dev libsdl2-dev zstd l ...
Posted on Tue, 23 Jun 2026 17:30:28 +0000 by nickman013
Debugging Techniques for DiffTest Between NEMU and QEMU
Logging Execution Traces
QEMU Logging
Enable instruction logging in QEMU with these launch parameters:
-d in_asm -D ./qemu.log
For additional CPU register output, include the cpu parameter: -d in_asm,cpu.
NEMU Logging
Configure NEMU during compilation via make menuconfig:
Testing and Debugging -> [*] Enable debug features: instruction traci ...
Posted on Fri, 19 Jun 2026 17:51:47 +0000 by carsale
Implementing Process-Specific Kernel Page Tables and Optimizing Copy Operations in xv6
Memory Layout and Page Table Management
Hardware Device Mapping
Hardware devices like UART0 (0x10000000L), VIRTIO0, CLINT, and PLIC have fixed physical addresses and interrupt numbers defined by hardware design. The kernel uses these addresses to communicate with devices, initialize registers, and handle interrupts.
Kernel Loading and Execution ...
Posted on Fri, 19 Jun 2026 17:44:33 +0000 by zhahaman2001
Implementing Material Recognition on LicheePi 4A with YOLOX and OpenCV
Development Board Setup
System Installation
The Debian system (20230920 version) was selected for the LicheePi 4A. The installation process involves:
Using burn_tools.zip for flashing
Modifying the burn_lpi4a.bat file path to point to the downloaded image
Disabling driver signature enforcement in Windows 10 for successful driver installation
...
Posted on Sat, 09 May 2026 17:03:16 +0000 by seanlyons