diff --git a/user/.cargo/config b/user/.cargo/config
new file mode 100644
index 00000000..d55502a6
--- /dev/null
+++ b/user/.cargo/config
@@ -0,0 +1,7 @@
+[build]
+target = "riscv64gc-unknown-none-elf"
+
+[target.riscv64gc-unknown-none-elf]
+rustflags = [
+ "-Clink-args=-Tsrc/linker.ld",
+]
\ No newline at end of file
diff --git a/user/.idea/modules.xml b/user/.idea/modules.xml
new file mode 100644
index 00000000..d9fb14e4
--- /dev/null
+++ b/user/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/user/.idea/user.iml b/user/.idea/user.iml
new file mode 100644
index 00000000..c254557e
--- /dev/null
+++ b/user/.idea/user.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/user/.idea/vcs.xml b/user/.idea/vcs.xml
new file mode 100644
index 00000000..6c0b8635
--- /dev/null
+++ b/user/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/user/.idea/workspace.xml b/user/.idea/workspace.xml
new file mode 100644
index 00000000..e8abb271
--- /dev/null
+++ b/user/.idea/workspace.xml
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1605664935096
+
+
+ 1605664935096
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/user/Cargo.lock b/user/Cargo.lock
new file mode 100644
index 00000000..e28c9137
--- /dev/null
+++ b/user/Cargo.lock
@@ -0,0 +1,5 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "user_lib"
+version = "0.1.0"
diff --git a/user/Cargo.toml b/user/Cargo.toml
new file mode 100644
index 00000000..817ca525
--- /dev/null
+++ b/user/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "user_lib"
+version = "0.1.0"
+authors = ["Yifan Wu "]
+edition = "2018"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/user/src/bin/hello_world.rs b/user/src/bin/hello_world.rs
new file mode 100644
index 00000000..684396a2
--- /dev/null
+++ b/user/src/bin/hello_world.rs
@@ -0,0 +1,11 @@
+#![no_std]
+#![no_main]
+
+#[macro_use]
+extern crate user_lib;
+
+#[no_mangle]
+fn main() -> i32 {
+ println!("Hello, world!");
+ 0
+}
\ No newline at end of file
diff --git a/user/src/console.rs b/user/src/console.rs
new file mode 100644
index 00000000..a826b8fe
--- /dev/null
+++ b/user/src/console.rs
@@ -0,0 +1,29 @@
+use core::fmt::{self, Write};
+use crate::syscall::{STDOUT, sys_write};
+
+struct Stdout;
+
+impl Write for Stdout {
+ fn write_str(&mut self, s: &str) -> fmt::Result {
+ sys_write(STDOUT, s.as_bytes());
+ Ok(())
+ }
+}
+
+pub fn print(args: fmt::Arguments) {
+ Stdout.write_fmt(args).unwrap();
+}
+
+#[macro_export]
+macro_rules! print {
+ ($fmt: literal $(, $($arg: tt)+)?) => {
+ $crate::console::print(format_args!($fmt $(, $($arg)+)?));
+ }
+}
+
+#[macro_export]
+macro_rules! println {
+ ($fmt: literal $(, $($arg: tt)+)?) => {
+ $crate::console::print(format_args!(concat!($fmt, "\n") $(, $($arg)+)?));
+ }
+}
\ No newline at end of file
diff --git a/user/src/lang_items.rs b/user/src/lang_items.rs
new file mode 100644
index 00000000..c90d297f
--- /dev/null
+++ b/user/src/lang_items.rs
@@ -0,0 +1,10 @@
+#[panic_handler]
+fn panic_handler(panic_info: &core::panic::PanicInfo) -> ! {
+ let err = panic_info.message().unwrap();
+ if let Some(location) = panic_info.location() {
+ println!("Panicked at {}:{}, {}", location.file(), location.line(), err);
+ } else {
+ println!("Panicked: {}", err);
+ }
+ loop {}
+}
\ No newline at end of file
diff --git a/user/src/lib.rs b/user/src/lib.rs
new file mode 100644
index 00000000..0a6eb264
--- /dev/null
+++ b/user/src/lib.rs
@@ -0,0 +1,23 @@
+#![no_std]
+#![feature(llvm_asm)]
+#![feature(linkage)]
+#![feature(panic_info_message)]
+
+#[macro_use]
+pub mod console;
+mod syscall;
+mod lang_items;
+
+#[no_mangle]
+#[link_section = ".text.entry"]
+pub extern "C" fn _start() -> ! {
+ main();
+ loop {}
+}
+
+#[linkage = "weak"]
+#[no_mangle]
+fn main() -> i32 {
+ panic!("Cannot find main!");
+}
+
diff --git a/user/src/linker.ld b/user/src/linker.ld
new file mode 100644
index 00000000..40db14a2
--- /dev/null
+++ b/user/src/linker.ld
@@ -0,0 +1,26 @@
+OUTPUT_ARCH(riscv)
+ENTRY(_start)
+
+BASE_ADDRESS = 0x80040000;
+
+SECTIONS
+{
+ . = BASE_ADDRESS;
+ .text : {
+ *(.text.entry)
+ *(.text .text.*)
+ }
+ .rodata : {
+ *(.rodata .rodata.*)
+ }
+ .data : {
+ *(.data .data.*)
+ }
+ .bss : {
+ *(.bss .bss.*)
+ }
+ /DISCARD/ : {
+ *(.eh_frame)
+ *(.debug*)
+ }
+}
\ No newline at end of file
diff --git a/user/src/syscall.rs b/user/src/syscall.rs
new file mode 100644
index 00000000..fbd743ea
--- /dev/null
+++ b/user/src/syscall.rs
@@ -0,0 +1,20 @@
+pub const STDOUT: usize = 1;
+
+const SYSCALL_WRITE: usize = 64;
+
+fn syscall(id: usize, args: [usize; 3]) -> isize {
+ let mut ret: isize;
+ unsafe {
+ llvm_asm!("ecall"
+ : "={x10}" (ret)
+ : "{x10}" (args[0]), "{x11}" (args[1]), "{x12}" (args[2]), "{x17}" (id)
+ : "memory"
+ : "volatile"
+ );
+ }
+ ret
+}
+
+pub fn sys_write(fd: usize, buffer: &[u8]) -> isize {
+ syscall(SYSCALL_WRITE, [fd, buffer.as_ptr() as usize, buffer.len()])
+}
\ No newline at end of file
diff --git a/user/target/.rustc_info.json b/user/target/.rustc_info.json
new file mode 100644
index 00000000..f63d3444
--- /dev/null
+++ b/user/target/.rustc_info.json
@@ -0,0 +1 @@
+{"rustc_fingerprint":18300565340359876986,"outputs":{"17103856195547239926":["___\nlib___.rlib\nlib___.a\n/home/oslab/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu\ndebug_assertions\npanic=\"abort\"\nproc_macro\ntarget_arch=\"riscv64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_feature=\"a\"\ntarget_feature=\"c\"\ntarget_feature=\"d\"\ntarget_feature=\"f\"\ntarget_feature=\"m\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"none\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\n","warning: dropping unsupported crate type `dylib` for target `riscv64gc-unknown-none-elf`\n\nwarning: dropping unsupported crate type `cdylib` for target `riscv64gc-unknown-none-elf`\n\nwarning: dropping unsupported crate type `proc-macro` for target `riscv64gc-unknown-none-elf`\n\nwarning: 3 warnings emitted\n\n"],"17205967170045284429":["___\nlib___.rlib\nlib___.a\n/home/oslab/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu\ndebug_assertions\npanic=\"abort\"\nproc_macro\ntarget_arch=\"riscv64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_feature=\"a\"\ntarget_feature=\"c\"\ntarget_feature=\"d\"\ntarget_feature=\"f\"\ntarget_feature=\"m\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"none\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\n","warning: dropping unsupported crate type `dylib` for target `riscv64gc-unknown-none-elf`\n\nwarning: dropping unsupported crate type `cdylib` for target `riscv64gc-unknown-none-elf`\n\nwarning: dropping unsupported crate type `proc-macro` for target `riscv64gc-unknown-none-elf`\n\nwarning: 3 warnings emitted\n\n"],"1164083562126845933":["rustc 1.49.0-nightly (cf9cf7c92 2020-11-10)\nbinary: rustc\ncommit-hash: cf9cf7c923eb01146971429044f216a3ca905e06\ncommit-date: 2020-11-10\nhost: x86_64-unknown-linux-gnu\nrelease: 1.49.0-nightly\n",""],"4476964694761187371":["___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/oslab/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nunix\n",""],"11319788728607228043":["___\nlib___.rlib\nlib___.a\n/home/oslab/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu\ndebug_assertions\npanic=\"abort\"\nproc_macro\ntarget_arch=\"riscv64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_feature=\"a\"\ntarget_feature=\"c\"\ntarget_feature=\"d\"\ntarget_feature=\"f\"\ntarget_feature=\"m\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"none\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\n","warning: dropping unsupported crate type `dylib` for target `riscv64gc-unknown-none-elf`\n\nwarning: dropping unsupported crate type `cdylib` for target `riscv64gc-unknown-none-elf`\n\nwarning: dropping unsupported crate type `proc-macro` for target `riscv64gc-unknown-none-elf`\n\nwarning: 3 warnings emitted\n\n"]},"successes":{}}
\ No newline at end of file
diff --git a/user/target/CACHEDIR.TAG b/user/target/CACHEDIR.TAG
new file mode 100644
index 00000000..20d7c319
--- /dev/null
+++ b/user/target/CACHEDIR.TAG
@@ -0,0 +1,3 @@
+Signature: 8a477f597d28d172789f06886806bc55
+# This file is a cache directory tag created by cargo.
+# For information about cache directory tags see https://bford.info/cachedir/
diff --git a/user/target/debug/.cargo-lock b/user/target/debug/.cargo-lock
new file mode 100644
index 00000000..e69de29b
diff --git a/user/target/release/.cargo-lock b/user/target/release/.cargo-lock
new file mode 100644
index 00000000..e69de29b
diff --git a/user/target/riscv64gc-unknown-none-elf/CACHEDIR.TAG b/user/target/riscv64gc-unknown-none-elf/CACHEDIR.TAG
new file mode 100644
index 00000000..20d7c319
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/CACHEDIR.TAG
@@ -0,0 +1,3 @@
+Signature: 8a477f597d28d172789f06886806bc55
+# This file is a cache directory tag created by cargo.
+# For information about cache directory tags see https://bford.info/cachedir/
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.cargo-lock b/user/target/riscv64gc-unknown-none-elf/debug/.cargo-lock
new file mode 100644
index 00000000..e69de29b
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/dep-lib-user_lib b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/dep-lib-user_lib
new file mode 100644
index 00000000..f9f6f65c
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/dep-lib-user_lib differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/invoked.timestamp b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/invoked.timestamp
new file mode 100644
index 00000000..e00328da
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/invoked.timestamp
@@ -0,0 +1 @@
+This file has an mtime of when this was started.
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/lib-user_lib b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/lib-user_lib
new file mode 100644
index 00000000..d2268234
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/lib-user_lib
@@ -0,0 +1 @@
+41937feca2aff630
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/lib-user_lib.json b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/lib-user_lib.json
new file mode 100644
index 00000000..20d0033e
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/lib-user_lib.json
@@ -0,0 +1 @@
+{"rustc":457852275655460692,"features":"[]","target":3375593478374818422,"profile":18074012566298724745,"path":10872709659218687626,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-ac05933ae451745f/dep-lib-user_lib"}}],"rustflags":["-Clink-args=-Tsrc/linker.ld"],"metadata":4791657899108178287,"config":0}
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/bin-hello_world b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/bin-hello_world
new file mode 100644
index 00000000..6d87893e
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/bin-hello_world
@@ -0,0 +1 @@
+e51f381f878f6eda
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/bin-hello_world.json b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/bin-hello_world.json
new file mode 100644
index 00000000..620acd94
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/bin-hello_world.json
@@ -0,0 +1 @@
+{"rustc":457852275655460692,"features":"[]","target":10036166384340519867,"profile":18074012566298724745,"path":10402765361534072892,"deps":[[1196176764371957,"user_lib",false,3528200472378708801]],"local":[{"CheckDepInfo":{"dep_info":"riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/dep-bin-hello_world"}}],"rustflags":["-Clink-args=-Tsrc/linker.ld"],"metadata":4791657899108178287,"config":0}
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/dep-bin-hello_world b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/dep-bin-hello_world
new file mode 100644
index 00000000..505660f8
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/dep-bin-hello_world differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/invoked.timestamp b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/invoked.timestamp
new file mode 100644
index 00000000..e00328da
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/.fingerprint/user_lib-b4124dce0aef8d75/invoked.timestamp
@@ -0,0 +1 @@
+This file has an mtime of when this was started.
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/deps/hello_world-b4124dce0aef8d75 b/user/target/riscv64gc-unknown-none-elf/debug/deps/hello_world-b4124dce0aef8d75
new file mode 100755
index 00000000..aa02463a
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/deps/hello_world-b4124dce0aef8d75 differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/deps/hello_world-b4124dce0aef8d75.d b/user/target/riscv64gc-unknown-none-elf/debug/deps/hello_world-b4124dce0aef8d75.d
new file mode 100644
index 00000000..2817a45c
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/deps/hello_world-b4124dce0aef8d75.d
@@ -0,0 +1,5 @@
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/debug/deps/hello_world-b4124dce0aef8d75: src/bin/hello_world.rs
+
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/debug/deps/hello_world-b4124dce0aef8d75.d: src/bin/hello_world.rs
+
+src/bin/hello_world.rs:
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/deps/libuser_lib-ac05933ae451745f.rlib b/user/target/riscv64gc-unknown-none-elf/debug/deps/libuser_lib-ac05933ae451745f.rlib
new file mode 100644
index 00000000..c8c4b435
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/deps/libuser_lib-ac05933ae451745f.rlib differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/deps/libuser_lib-ac05933ae451745f.rmeta b/user/target/riscv64gc-unknown-none-elf/debug/deps/libuser_lib-ac05933ae451745f.rmeta
new file mode 100644
index 00000000..627e4ab8
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/deps/libuser_lib-ac05933ae451745f.rmeta differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/deps/user_lib-ac05933ae451745f.d b/user/target/riscv64gc-unknown-none-elf/debug/deps/user_lib-ac05933ae451745f.d
new file mode 100644
index 00000000..bf82db0c
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/deps/user_lib-ac05933ae451745f.d
@@ -0,0 +1,10 @@
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/debug/deps/user_lib-ac05933ae451745f.rmeta: src/lib.rs src/console.rs src/syscall.rs src/lang_items.rs
+
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/debug/deps/libuser_lib-ac05933ae451745f.rlib: src/lib.rs src/console.rs src/syscall.rs src/lang_items.rs
+
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/debug/deps/user_lib-ac05933ae451745f.d: src/lib.rs src/console.rs src/syscall.rs src/lang_items.rs
+
+src/lib.rs:
+src/console.rs:
+src/syscall.rs:
+src/lang_items.rs:
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/hello_world b/user/target/riscv64gc-unknown-none-elf/debug/hello_world
new file mode 100755
index 00000000..aa02463a
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/hello_world differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/hello_world.d b/user/target/riscv64gc-unknown-none-elf/debug/hello_world.d
new file mode 100644
index 00000000..0230e389
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/hello_world.d
@@ -0,0 +1 @@
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/debug/hello_world: /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/bin/hello_world.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/console.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/lang_items.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/lib.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/syscall.rs
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/1cyby92ahhct29sj.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/1cyby92ahhct29sj.o
new file mode 100644
index 00000000..de6a4abf
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/1cyby92ahhct29sj.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/255pyf8oqm5o60pl.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/255pyf8oqm5o60pl.o
new file mode 100644
index 00000000..92d8e4bb
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/255pyf8oqm5o60pl.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/dep-graph.bin b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/dep-graph.bin
new file mode 100644
index 00000000..cf13fad5
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/dep-graph.bin differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/query-cache.bin b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/query-cache.bin
new file mode 100644
index 00000000..a3d73372
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/query-cache.bin differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/work-products.bin b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/work-products.bin
new file mode 100644
index 00000000..4fb55609
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7-2h0amvxnf2nxj/work-products.bin differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7.lock b/user/target/riscv64gc-unknown-none-elf/debug/incremental/hello_world-v11id1s4qxvx/s-ft6035czf2-st25v7.lock
new file mode 100755
index 00000000..e69de29b
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/10az8widxhjxhgtx.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/10az8widxhjxhgtx.o
new file mode 100644
index 00000000..017ad7fa
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/10az8widxhjxhgtx.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/147k6ue95x1syi05.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/147k6ue95x1syi05.o
new file mode 100644
index 00000000..effec05c
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/147k6ue95x1syi05.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2d9zyaaiobk4zurh.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2d9zyaaiobk4zurh.o
new file mode 100644
index 00000000..615e9ef9
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2d9zyaaiobk4zurh.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2fjxqfs0exyqds3t.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2fjxqfs0exyqds3t.o
new file mode 100644
index 00000000..4cd16c65
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2fjxqfs0exyqds3t.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2u1772ea9ier1rws.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2u1772ea9ier1rws.o
new file mode 100644
index 00000000..66b83439
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2u1772ea9ier1rws.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2zryyes59x4c5kja.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2zryyes59x4c5kja.o
new file mode 100644
index 00000000..db2003f1
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/2zryyes59x4c5kja.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/3axu0toiprwvp1ss.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/3axu0toiprwvp1ss.o
new file mode 100644
index 00000000..689e9ea5
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/3axu0toiprwvp1ss.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/44k5o6bbhtowka37.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/44k5o6bbhtowka37.o
new file mode 100644
index 00000000..dd84ec2d
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/44k5o6bbhtowka37.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4payedb2d7c3qhja.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4payedb2d7c3qhja.o
new file mode 100644
index 00000000..2f9794db
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4payedb2d7c3qhja.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4xy4bjb8bpitqt95.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4xy4bjb8bpitqt95.o
new file mode 100644
index 00000000..49313f2d
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4xy4bjb8bpitqt95.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4yg7fz2yw8qkqegw.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4yg7fz2yw8qkqegw.o
new file mode 100644
index 00000000..3a33ea9e
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/4yg7fz2yw8qkqegw.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/51exv9oflntflb3a.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/51exv9oflntflb3a.o
new file mode 100644
index 00000000..b1446e8d
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/51exv9oflntflb3a.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/57i3fcg2ujvn6o85.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/57i3fcg2ujvn6o85.o
new file mode 100644
index 00000000..d161d34d
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/57i3fcg2ujvn6o85.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/5azlg8fuivp6rnzc.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/5azlg8fuivp6rnzc.o
new file mode 100644
index 00000000..fe2e83b2
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/5azlg8fuivp6rnzc.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/5db448brgvcabcw0.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/5db448brgvcabcw0.o
new file mode 100644
index 00000000..006c5189
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/5db448brgvcabcw0.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/dep-graph.bin b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/dep-graph.bin
new file mode 100644
index 00000000..54628968
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/dep-graph.bin differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/fg8sfd226batyv8.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/fg8sfd226batyv8.o
new file mode 100644
index 00000000..8688f137
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/fg8sfd226batyv8.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/l0mj1km0wl40coo.o b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/l0mj1km0wl40coo.o
new file mode 100644
index 00000000..a5f377e2
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/l0mj1km0wl40coo.o differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/query-cache.bin b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/query-cache.bin
new file mode 100644
index 00000000..fa32c1a1
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/query-cache.bin differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/work-products.bin b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/work-products.bin
new file mode 100644
index 00000000..c6b9fa0b
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr-u07fqb241s45/work-products.bin differ
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr.lock b/user/target/riscv64gc-unknown-none-elf/debug/incremental/user_lib-1rlqc1v49k4ja/s-ft6035cacm-q0p3wr.lock
new file mode 100755
index 00000000..e69de29b
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/libuser_lib.d b/user/target/riscv64gc-unknown-none-elf/debug/libuser_lib.d
new file mode 100644
index 00000000..96051689
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/debug/libuser_lib.d
@@ -0,0 +1 @@
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/debug/libuser_lib.rlib: /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/console.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/lang_items.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/lib.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/syscall.rs
diff --git a/user/target/riscv64gc-unknown-none-elf/debug/libuser_lib.rlib b/user/target/riscv64gc-unknown-none-elf/debug/libuser_lib.rlib
new file mode 100644
index 00000000..c8c4b435
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/debug/libuser_lib.rlib differ
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.cargo-lock b/user/target/riscv64gc-unknown-none-elf/release/.cargo-lock
new file mode 100644
index 00000000..e69de29b
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/dep-lib-user_lib b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/dep-lib-user_lib
new file mode 100644
index 00000000..f9f6f65c
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/dep-lib-user_lib differ
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/invoked.timestamp b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/invoked.timestamp
new file mode 100644
index 00000000..e00328da
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/invoked.timestamp
@@ -0,0 +1 @@
+This file has an mtime of when this was started.
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/lib-user_lib b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/lib-user_lib
new file mode 100644
index 00000000..e13f8372
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/lib-user_lib
@@ -0,0 +1 @@
+8ec22604a7e65d6d
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/lib-user_lib.json b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/lib-user_lib.json
new file mode 100644
index 00000000..7d2a66d2
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/lib-user_lib.json
@@ -0,0 +1 @@
+{"rustc":457852275655460692,"features":"[]","target":3375593478374818422,"profile":4339006351771724982,"path":10872709659218687626,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-0fdba27c1d499ab2/dep-lib-user_lib"}}],"rustflags":["-Clink-args=-Tsrc/linker.ld"],"metadata":4791657899108178287,"config":0}
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/bin-hello_world b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/bin-hello_world
new file mode 100644
index 00000000..69ee0679
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/bin-hello_world
@@ -0,0 +1 @@
+81ce7e0677cd11c5
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/bin-hello_world.json b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/bin-hello_world.json
new file mode 100644
index 00000000..3cb19d7c
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/bin-hello_world.json
@@ -0,0 +1 @@
+{"rustc":457852275655460692,"features":"[]","target":10036166384340519867,"profile":4339006351771724982,"path":10402765361534072892,"deps":[[1196176764371957,"user_lib",false,7880708527971811982]],"local":[{"CheckDepInfo":{"dep_info":"riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/dep-bin-hello_world"}}],"rustflags":["-Clink-args=-Tsrc/linker.ld"],"metadata":4791657899108178287,"config":0}
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/dep-bin-hello_world b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/dep-bin-hello_world
new file mode 100644
index 00000000..505660f8
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/dep-bin-hello_world differ
diff --git a/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/invoked.timestamp b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/invoked.timestamp
new file mode 100644
index 00000000..e00328da
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/.fingerprint/user_lib-65513b09835dd0af/invoked.timestamp
@@ -0,0 +1 @@
+This file has an mtime of when this was started.
\ No newline at end of file
diff --git a/user/target/riscv64gc-unknown-none-elf/release/deps/hello_world-65513b09835dd0af b/user/target/riscv64gc-unknown-none-elf/release/deps/hello_world-65513b09835dd0af
new file mode 100755
index 00000000..90f7c6f0
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/release/deps/hello_world-65513b09835dd0af differ
diff --git a/user/target/riscv64gc-unknown-none-elf/release/deps/hello_world-65513b09835dd0af.d b/user/target/riscv64gc-unknown-none-elf/release/deps/hello_world-65513b09835dd0af.d
new file mode 100644
index 00000000..541e2566
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/deps/hello_world-65513b09835dd0af.d
@@ -0,0 +1,5 @@
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/release/deps/hello_world-65513b09835dd0af: src/bin/hello_world.rs
+
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/release/deps/hello_world-65513b09835dd0af.d: src/bin/hello_world.rs
+
+src/bin/hello_world.rs:
diff --git a/user/target/riscv64gc-unknown-none-elf/release/deps/libuser_lib-0fdba27c1d499ab2.rlib b/user/target/riscv64gc-unknown-none-elf/release/deps/libuser_lib-0fdba27c1d499ab2.rlib
new file mode 100644
index 00000000..611f4cb8
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/release/deps/libuser_lib-0fdba27c1d499ab2.rlib differ
diff --git a/user/target/riscv64gc-unknown-none-elf/release/deps/libuser_lib-0fdba27c1d499ab2.rmeta b/user/target/riscv64gc-unknown-none-elf/release/deps/libuser_lib-0fdba27c1d499ab2.rmeta
new file mode 100644
index 00000000..f7bb4516
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/release/deps/libuser_lib-0fdba27c1d499ab2.rmeta differ
diff --git a/user/target/riscv64gc-unknown-none-elf/release/deps/user_lib-0fdba27c1d499ab2.d b/user/target/riscv64gc-unknown-none-elf/release/deps/user_lib-0fdba27c1d499ab2.d
new file mode 100644
index 00000000..adb62977
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/deps/user_lib-0fdba27c1d499ab2.d
@@ -0,0 +1,10 @@
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/release/deps/user_lib-0fdba27c1d499ab2.rmeta: src/lib.rs src/console.rs src/syscall.rs src/lang_items.rs
+
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/release/deps/libuser_lib-0fdba27c1d499ab2.rlib: src/lib.rs src/console.rs src/syscall.rs src/lang_items.rs
+
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/release/deps/user_lib-0fdba27c1d499ab2.d: src/lib.rs src/console.rs src/syscall.rs src/lang_items.rs
+
+src/lib.rs:
+src/console.rs:
+src/syscall.rs:
+src/lang_items.rs:
diff --git a/user/target/riscv64gc-unknown-none-elf/release/hello_world b/user/target/riscv64gc-unknown-none-elf/release/hello_world
new file mode 100755
index 00000000..90f7c6f0
Binary files /dev/null and b/user/target/riscv64gc-unknown-none-elf/release/hello_world differ
diff --git a/user/target/riscv64gc-unknown-none-elf/release/hello_world.d b/user/target/riscv64gc-unknown-none-elf/release/hello_world.d
new file mode 100644
index 00000000..312f738d
--- /dev/null
+++ b/user/target/riscv64gc-unknown-none-elf/release/hello_world.d
@@ -0,0 +1 @@
+/home/oslab/workspace/v3/rCore-Tutorial-v3/user/target/riscv64gc-unknown-none-elf/release/hello_world: /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/bin/hello_world.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/console.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/lang_items.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/lib.rs /home/oslab/workspace/v3/rCore-Tutorial-v3/user/src/syscall.rs