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.