Glossary

Glossary

ABI: Application Binary Interface; the rules for calling conventions, register use, and data layout.

Bare-metal: Code running directly on hardware (or an emulator) without an operating system.

BSS: Block Started by Symbol; the uninitialized data segment, zeroed at startup.

CSR: Control and Status Register; special RISC-V registers for privileged control and state.

ELF: Executable and Linkable Format; the standard file format for compiled binaries.

Entry point (_start): The first instruction executed; the linker symbol where execution begins.

Freestanding: C build mode without the standard library or hosted environment assumptions.

GCC: GNU Compiler Collection; the compiler toolchain used to build the examples.

GDB: GNU Debugger; used to inspect and control execution.

ILP32: ABI where int, long, and pointers are 32-bit.

ISA: Instruction Set Architecture; the set of instructions a CPU understands.

Linker script: File that defines memory layout and section placement for the linker.

MMIO: Memory-Mapped I/O; device registers mapped into memory address space.

QEMU: Quick Emulator; a machine emulator used here in system-mode.

RV32I: The 32-bit base RISC-V integer ISA.

RV32IM: RV32I plus the M extension (mul/div).

Toolchain: Compiler, assembler, linker, and related tools used to build binaries.

UART: Universal Asynchronous Receiver/Transmitter; a serial output interface.

VMA/LMA: Virtual/Load Memory Address; where sections appear at runtime vs in the file.