- Userspace linker script: apps/servers link at 0x10000 (user VA) - Adapter linker script: kernel links at 0x80200000 (S-mode) - Each uses build.rs to emit its own -T flag, global config only sets panic=abort - ELF loader: page-aligns segment mappings, handles non-aligned vaddrs - Stack: 4 pages (16K) mapped below program - SP set to top of stack (0x10000), not bottom - FAT16 disk image forced (mformat was creating FAT32) - End-to-end verified: VirtIO → FAT16 → ELF → userspace → ecall → exit
4 lines
148 B
TOML
4 lines
148 B
TOML
[target.riscv64gc-unknown-none-elf]
|
|
runner = "qemu-system-riscv64 -machine virt -nographic -bios default -kernel"
|
|
rustflags = ["-C", "panic=abort"]
|