Add env && Update link_user.S format.

pull/15/head
Yifan Wu 5 years ago
parent 5d6c7548fc
commit cec9b5aee9

@ -22,7 +22,13 @@ OBJCOPY := rust-objcopy --binary-architecture=riscv64
# Disassembly
DISASM ?= -x
build: $(KERNEL_BIN)
build: env $(KERNEL_BIN)
env:
rustup component add rust-src
rustup component add llvm-tools-preview
cargo install cargo-binutils
rustup target add riscv64gc-unknown-none-elf
$(KERNEL_BIN): kernel
@$(OBJCOPY) $(KERNEL_ELF) --strip-all -O binary $@
@ -66,4 +72,4 @@ debug: build
tmux split-window -h "riscv64-unknown-elf-gdb -ex 'file $(KERNEL_ELF)' -ex 'set arch riscv:rv64' -ex 'target remote localhost:1234'" && \
tmux -2 attach-session -d
.PHONY: build kernel clean disasm disasm-vim run-inner
.PHONY: build env kernel clean disasm disasm-vim run-inner

@ -2,7 +2,8 @@ use std::io::{Result, Write};
use std::fs::{File, read_dir};
fn main() {
println!("cargo:rerun-if-changed=../user/src/bin/");
println!("cargo:rerun-if-changed=../user/src/");
println!("cargo:rerun-if-changed={}", TARGET_PATH);
insert_app_data().unwrap();
}
@ -26,17 +27,12 @@ fn insert_app_data() -> Result<()> {
.section .data
.global _num_app
_num_app:
.quad {}
"#, apps.len())?;
.quad {}"#, apps.len())?;
for i in 0..apps.len() {
writeln!(f, r#"
.quad app_{}_start
"#, i)?;
writeln!(f, r#" .quad app_{}_start"#, i)?;
}
writeln!(f, r#"
.quad app_{}_end
"#, apps.len() - 1)?;
writeln!(f, r#" .quad app_{}_end"#, apps.len() - 1)?;
for (idx, app) in apps.iter().enumerate() {
println!("app_{}: {}", idx, app);
@ -46,8 +42,7 @@ _num_app:
.global app_{0}_end
app_{0}_start:
.incbin "{2}{1}.bin"
app_{0}_end:
"#, idx, app, TARGET_PATH)?;
app_{0}_end:"#, idx, app, TARGET_PATH)?;
}
Ok(())
}
Loading…
Cancel
Save