From cec9b5aee9e6f9c77706d7d40bac2fd71d79d646 Mon Sep 17 00:00:00 2001 From: Yifan Wu Date: Sat, 2 Jan 2021 10:19:14 +0800 Subject: [PATCH] Add env && Update link_user.S format. --- os/Makefile | 10 ++++++++-- os/build.rs | 17 ++++++----------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/os/Makefile b/os/Makefile index 217a0c41..e0d92efe 100644 --- a/os/Makefile +++ b/os/Makefile @@ -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 diff --git a/os/build.rs b/os/build.rs index eb553e5b..88a964b2 100644 --- a/os/build.rs +++ b/os/build.rs @@ -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(()) } \ No newline at end of file