Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
rcore-os
RCore Tutorial V3
提交
772d5325
R
RCore Tutorial V3
项目概览
rcore-os
/
RCore Tutorial V3
上一次同步 1 年多
通知
15
Star
793
Fork
260
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
RCore Tutorial V3
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
772d5325
编写于
1月 03, 2023
作者:
chyyuu1972
1
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update code, now '-bios none' can get the same result as ch9
上级
7c9a5819
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
16 addition
and
16 deletion
+16
-16
os/Makefile
os/Makefile
+1
-1
os/src/main.rs
os/src/main.rs
+3
-3
os/src/trap/mod.rs
os/src/trap/mod.rs
+12
-12
未找到文件。
os/Makefile
浏览文件 @
772d5325
...
...
@@ -71,7 +71,7 @@ disasm-vim: kernel
@
nvim
$(DISASM_TMP)
@
rm
$(DISASM_TMP)
run
:
run-inner
-none
run
:
run-inner
run-inner-none
:
build
@
qemu-system-riscv64
\
...
...
os/src/main.rs
浏览文件 @
772d5325
...
...
@@ -260,9 +260,9 @@ pub fn rust_main() -> ! {
println!
(
"KERN: init gpu"
);
let
_
gpu
=
GPU_DEVICE
.clone
();
println!
(
"KERN: init keyboard"
);
//
let _keyboard = KEYBOARD_DEVICE.clone();
//
println!("KERN: init mouse");
//
let _mouse = MOUSE_DEVICE.clone();
let
_
keyboard
=
KEYBOARD_DEVICE
.clone
();
println!
(
"KERN: init mouse"
);
let
_
mouse
=
MOUSE_DEVICE
.clone
();
println!
(
"KERN: init trap"
);
trap
::
init
();
//trap::enable_timer_interrupt();
...
...
os/src/trap/mod.rs
浏览文件 @
772d5325
...
...
@@ -95,18 +95,18 @@ pub fn trap_handler() -> ! {
Trap
::
Exception
(
Exception
::
IllegalInstruction
)
=>
{
current_add_signal
(
SignalFlags
::
SIGILL
);
}
Trap
::
Interrupt
(
Interrupt
::
SupervisorTimer
)
=>
{
set_next_trigger
();
check_timer
();
suspend_current_and_run_next
();
}
//
Trap::Interrupt(Interrupt::SupervisorTimer) => {
//
set_next_trigger();
//
check_timer();
//
suspend_current_and_run_next();
//
}
Trap
::
Interrupt
(
Interrupt
::
SupervisorSoft
)
=>
{
//set_next_trigger();
const
SSIP
:
usize
=
1
<<
1
;
unsafe
{
asm!
(
"csrc sip, {}"
,
in
(
reg
)
SSIP
);
}
println!
(
"TRAP: ssoft in Kern"
);
//
println!("TRAP: ssoft in Kern");
check_timer
();
// do not schedule now
}
...
...
@@ -161,18 +161,18 @@ pub fn trap_from_kernel(_trap_cx: &TrapContext) {
Trap
::
Interrupt
(
Interrupt
::
SupervisorExternal
)
=>
{
crate
::
board
::
irq_handler
();
}
Trap
::
Interrupt
(
Interrupt
::
SupervisorTimer
)
=>
{
//set_next_trigger();
check_timer
();
// do not schedule now
}
//
Trap::Interrupt(Interrupt::SupervisorTimer) => {
//
//set_next_trigger();
//
check_timer();
//
// do not schedule now
//
}
Trap
::
Interrupt
(
Interrupt
::
SupervisorSoft
)
=>
{
//set_next_trigger();
const
SSIP
:
usize
=
1
<<
1
;
unsafe
{
asm!
(
"csrc sip, {}"
,
in
(
reg
)
SSIP
);
}
println!
(
"TRAP: ssoft in Kern"
);
//
println!("TRAP: ssoft in Kern");
check_timer
();
// do not schedule now
}
...
...
Miykael_xxm
🚴
@xiongjiamu
mentioned in commit
feddfd89
·
1月 04, 2023
mentioned in commit
feddfd89
mentioned in commit feddfd8968bfaf631c6e8b6ac06854f1f5ec049b
开关提交列表
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录