Commit Graph

201 Commits

Author SHA1 Message Date
Yifan Wu
2041a7c0d4 Now construction of PA/VA only uses 56/39 bits. 2021-11-13 03:06:44 -08:00
Yifan Wu
cd6754a7df rust->nightly-2021-10-15,cargo-binutils->0.3.3 2021-10-20 13:49:12 -07:00
Yifan Wu
5753a09366 Implement mpsc using semaphores. 2021-10-10 17:20:53 -07:00
Yifan Wu
b851f8d743 Create threads with a argument. See bin/threads_arg.rs 2021-10-08 13:50:36 -07:00
Yifan Wu
8adfc90db9 Implement sleep using blocking & BinaryHeap. 2021-10-08 12:55:39 -07:00
Yifan Wu
7225254d8a Add MutexBlocking. 2021-10-07 14:33:44 -07:00
Yifan Wu
b0fad5aca3 Add MutexSpin and several syscalls. 2021-10-07 12:40:47 -07:00
Yifan Wu
136e26ae6c User base from 0x0->0x10000; user image size limit from 128MB->16MB; trigger race condition on k210 2021-10-03 07:36:41 -07:00
Yifan Wu
24b3c82b8a Stage2: multiple user threads based on uniprocessor, see new added test race_adder and threads. 2021-10-02 16:18:05 -07:00
Yifan Wu
1493ec9459 Stage1 clear! All applications work but now they are based on threads. 2021-09-30 14:36:33 -07:00
Yifan Wu
c599a31dd0 Debugging sys_exec :( 2021-09-30 10:09:21 -07:00
Yifan Wu
26bbec6320 Working on ch8 2021-09-28 01:21:59 +08:00
Yifan Wu
638eb8666a Update rustc && rustsbi-k210 2021-08-26 21:03:50 +08:00
Yifan Wu
bf69560f9b Update rustsbi; huge_write writes 1MiB 2021-08-26 19:04:40 +08:00
Felix Yan
03151ac124
Correct typos in drivers/block/sdcard.rs 2021-08-08 17:46:41 +08:00
Yifan Wu
315e61da1a Rm spin::Mutex except for easy-fs & add new test huge_write & flush cache to disk after a write transaction 2021-07-21 19:10:04 +08:00
Yifan Wu
e7f120bab3 Downgrade cargo-binutils to 0.2.0 2021-04-05 16:29:31 +08:00
Yifan Wu
f7ed29756c Link small sections in linker 2021-04-05 16:29:31 +08:00
Yifan Wu
ff69985d79 Downgrade cargo-binutils to 0.2.0 2021-04-05 16:28:36 +08:00
Yifan Wu
a09429b32c Link small sections in linker 2021-03-07 19:59:12 +08:00
Spxg
a1cda4aa59 panic_handler: update msg format and add column location 2021-03-07 11:58:14 +08:00
Yifan Wu
3554e20dc6 Do not fetch tools when running on qemu. 2021-03-06 03:33:28 +08:00
Yifan Wu
d57a160b32 Do not fetch tools when running on qemu. 2021-03-06 03:32:24 +08:00
Yifan Wu
818363f2ca Fix qemu mmio range 2021-03-05 02:07:04 +08:00
Yifan Wu
195816ce2c Fix qemu mmio range 2021-03-05 02:06:40 +08:00
Yifan Wu
dd2be93ef0 Fix k210 alignment issue when push cmdargs when sys_exec 2021-02-28 08:51:08 +08:00
Yifan Wu
e643af7937 Fix k210 alignment issue when push cmdargs when sys_exec 2021-02-28 08:50:45 +08:00
Yifan Wu
67372ac84d Merge updates from ch7 2021-02-28 06:38:13 +08:00
Yifan Wu
3e1c12b6a1 Add sys_dup && support input/output redirection in user_shell 2021-02-27 22:27:08 +08:00
Yifan Wu
90d351bfe8 Support cmdline_args when sys_exec. 2021-02-26 12:06:55 +08:00
Yifan Wu
35cc3d6e2f Fix overflow bug when ceiling va 2021-02-24 03:50:59 +08:00
Yifan Wu
b8f1db4aa3 Fix overflow bug when ceiling va 2021-02-24 03:50:33 +08:00
Yifan Wu
e8a0682cf8 Refactor easy-fs 2021-02-24 03:42:45 +08:00
Yifan Wu
920d077a66 Refactor easy-fs. 2021-02-24 03:34:59 +08:00
Yifan Wu
87743bac4d Merge branch 'ch7' into dev 2021-02-19 00:38:39 +08:00
Yifan Wu
04114ad949 Remove Any Trait of File 2021-02-19 00:38:21 +08:00
Yifan Wu
1b6f2c4c1e Fix lock uses in ch5 2021-02-16 20:50:47 +08:00
Yifan Wu
9b65abcfa8 Fix lock uses in ch5 2021-02-16 20:50:24 +08:00
Yifan Wu
caac1beb0a Mutex -> RefCell in Processor. 2021-02-15 16:44:00 +08:00
Yifan Wu
fd75ac027a Mutex -> RefCell in Processor. 2021-02-15 16:43:35 +08:00
Yifan Wu
d97b0a20ab Replace TCB.inner.block with TCB::acquire_inner_lock 2021-02-11 10:27:41 +08:00
Yifan Wu
e04394af56 Replace TCB.inner.block with TCB::acquire_inner_lock 2021-02-11 10:27:19 +08:00
Yifan Wu
1cc75ded25 Move kflash.py out of proj. 2021-02-08 11:22:25 +08:00
Yifan Wu
dddd04b683 Move kflash.py out of proj. 2021-02-08 11:20:47 +08:00
Yifan Wu
eb5ef8e956 Bump rustsbi to 0.1.1 && make config of qemu/k210 different 2021-02-07 18:40:58 +08:00
Yifan Wu
33373aa20d Bump rustsbi to 0.1.1 && make config of qemu/k210 different 2021-02-07 18:39:52 +08:00
Yifan Wu
18da8a3879 Update os/Makefile && Update rust to 2021-01-30 2021-02-02 18:03:38 +08:00
Yifan Wu
4f7db8b92e Update os/Makefile && Update rust to 2021-01-30 2021-02-02 18:00:55 +08:00
Yifan Wu
6267c5d922 Do not clone KERNEL_SPACE in mm::init 2021-01-27 07:30:47 +08:00
Yifan Wu
9d7882a73d Do not clone KERNEL_SPACE in mm::init 2021-01-27 07:30:27 +08:00
Yifan Wu
9772373743 Fix os/Makefile: Support macOS 2021-01-21 00:26:56 +08:00
Yifan Wu
e588d40d70 Fix os/Makefile: Support macOS 2021-01-21 00:26:08 +08:00
Yifan Wu
1a7261d86d Move some variable name to task_cx to task_cx_ptr2(ch5 ver). 2021-01-04 16:20:49 +08:00
Yifan Wu
dbe56c1362 Move some variable name to task_cx to task_cx_ptr2(ch5 ver). 2021-01-04 16:20:09 +08:00
Yifan Wu
12747d71b4 Remove meaningless sstatus::set_sie() when initializing. 2021-01-03 17:39:46 +08:00
Yifan Wu
fd638d5388 Remove meaningless sstatus::set_sie() when initializing. 2021-01-03 17:38:37 +08:00
Yifan Wu
208b827b5c Add env. 2021-01-02 10:05:33 +08:00
Yifan Wu
b674fd5a77 Remove fs.img. 2020-12-31 20:38:54 +08:00
Yifan Wu
fdab87d2ed Update Rust environment initialization. 2020-12-31 18:09:35 +08:00
Yifan Wu
7c0d66c58f Remove some warnings. 2020-12-20 23:49:35 +08:00
Yifan Wu
606abbe6a1 Simple filetest passed on qemu/k210. 2020-12-20 13:52:38 +08:00
Yifan Wu
1bafe9615f Fix virtio_phys_to_virt. Now we can load app from disk on qemu/k210! 2020-12-20 08:46:27 +08:00
Yifan Wu
ae9eecf97b Load app from sdcard on K210, but panicked on qemu. 2020-12-20 00:52:14 +08:00
Yifan Wu
ea515323d3 Import easy-fs in os && change easy-fs to no_std mode. 2020-12-19 21:18:57 +08:00
Yifan Wu
84900e8b94 Remove block device test. 2020-12-16 17:44:09 +08:00
Yifan Wu
914f042617 Add sdcard driver based on k210-rust crates && adjust clock freq. 2020-12-16 15:19:29 +08:00
Yifan Wu
f754326d0a virtio-blk worked. 2020-12-16 10:18:38 +08:00
Yifan Wu
8e178c0080 Pipe OK. 2020-12-14 16:18:33 +08:00
Yifan Wu
2e6734027d Rewrite Stdin/Stdout 2020-12-13 15:07:19 +08:00
Yifan Wu
f5c029d3db k210 only can use 6M before configuring sdcard. 2020-12-11 18:04:57 +08:00
Yifan Wu
84b10893d4 forktree worked with depth=3 on k210 platform. 2020-12-11 16:14:14 +08:00
Yifan Wu
244c0ee84d Handle backspace for k210/qemu platform && Add lots of user tests. 2020-12-11 01:44:07 +08:00
Yifan Wu
7a1bc49eb3 Update rustsbi-k210 to enable lagacy console_putchar. Adjust alignment of links apps. Run matrix on K210! 2020-12-10 17:20:13 +08:00
Yifan Wu
3a2f89fc67 Avoid panicking when inputting error app name; List all apps when initializing. 2020-12-10 14:51:50 +08:00
Yifan Wu
3642f9c56d Implement many process syscalls. 2020-12-10 11:57:26 +08:00
Yifan Wu
eddbc8954c Implement sys_read && allocate pid and kernel stack dynamically. 2020-12-08 17:17:28 +08:00
Yifan Wu
1bc53c0b5f Split TaskManager and Processor. 2020-12-08 15:37:10 +08:00
Yifan Wu
0c12d43b61 Get app data by name. 2020-12-08 10:43:24 +08:00
Yifan Wu
949f2095bb ch4 ok on qemu/k210 && Remove some comments. 2020-12-08 01:35:08 +08:00
Yifan Wu
8ee3671269 Split kernel/user trap handler && Fix user tests. 2020-12-07 18:57:23 +08:00
Yifan Wu
f54573ae15 Fetch buffer in user space as a Vec. 2020-12-07 18:07:19 +08:00
Yifan Wu
064f1cb5cb Fetching buffer arguments from user space. 2020-12-06 13:56:13 +08:00
Yifan Wu
3625b7578d Analyse ELF. 2020-12-04 17:53:14 +08:00
Yifan Wu
0011fe9477 Kernel remapped. 2020-12-04 17:23:35 +08:00
Yifan Wu
1256085d36 Frame Allocator OK. 2020-12-03 10:40:30 +08:00
Yifan Wu
2fd70b0ff4 Heap test passed on k210/qemu, heap size = 3M. 2020-12-02 10:32:26 +08:00
Yifan Wu
63aaa9d0a1 Chapter3: power2/3/5 & sleep test worked on k210/qemu based on timer. 2020-11-29 10:31:15 +08:00
Yifan Wu
4590f233b5 sys_yield tests worked on qemu. 2020-11-29 04:01:38 +08:00
Yifan Wu
91043b08cd Switch ok with debug mode apps, implement sys_exit correctly later. 2020-11-29 01:31:36 +08:00
Yifan Wu
e552f3cfca Add sys_yield tests and compile them to different location. 2020-11-28 16:22:29 +08:00
Yifan Wu
5e5ed05399 Update rustsbi-qemu && batch worked on qemu/k210. 2020-11-20 11:10:38 +08:00
Yifan Wu
3b920ac8f5 Run hello_world/power one by one in batch mode. 2020-11-20 01:18:25 +08:00
Yifan Wu
e9949e5bd4 Try batch but kernel panicked. 2020-11-19 18:01:16 +08:00
Yifan Wu
0d0c7255b6 Auto link multiple applications in kernel. 2020-11-19 04:33:06 +08:00
Yifan Wu
f613fa122c Working on app data auto linking. 2020-11-18 18:29:53 +08:00
Yifan Wu
c701cd00ce Chapter1: Update panic_handler. 2020-11-13 12:06:39 +08:00
Yifan Wu
49050aca3f Update linker & Hello k210/qemu(release mode). 2020-11-12 17:13:57 +08:00
Yifan Wu
406acaae2c Small update. 2020-11-11 23:40:00 +08:00
Yifan Wu
721d0e5ecf Debug using gdb on qemu. 2020-11-11 16:59:44 +08:00
Yifan Wu
5370f725be Load kernel on qemu/k210. 2020-11-11 16:50:00 +08:00
Yifan Wu
29f4683ad8 Compiled on target platform. 2020-11-10 23:02:38 +08:00