Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
rcore-os
RCore Tutorial V3
提交
d1f03890
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,体验更适合开发者的 AI 搜索 >>
提交
d1f03890
编写于
12月 13, 2022
作者:
Y
Yifan Wu
1
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove K210 support.
上级
e36a5a0c
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
6 addition
and
95 deletion
+6
-95
bootloader/rustsbi-k210.bin
bootloader/rustsbi-k210.bin
+0
-0
os/Makefile
os/Makefile
+5
-31
os/src/linker-k210.ld
os/src/linker-k210.ld
+0
-48
os/src/sbi.rs
os/src/sbi.rs
+1
-10
os/src/task/mod.rs
os/src/task/mod.rs
+0
-6
未找到文件。
bootloader/rustsbi-k210.bin
已删除
100755 → 0
浏览文件 @
e36a5a0c
文件已删除
os/Makefile
浏览文件 @
d1f03890
...
@@ -6,10 +6,9 @@ KERNEL_BIN := $(KERNEL_ELF).bin
...
@@ -6,10 +6,9 @@ KERNEL_BIN := $(KERNEL_ELF).bin
DISASM_TMP
:=
target/
$(TARGET)
/
$(MODE)
/asm
DISASM_TMP
:=
target/
$(TARGET)
/
$(MODE)
/asm
# BOARD
# BOARD
BOARD
?
=
qemu
BOARD
:
=
qemu
SBI
?=
rustsbi
SBI
?=
rustsbi
BOOTLOADER
:=
../bootloader/
$(SBI)
-
$(BOARD)
.bin
BOOTLOADER
:=
../bootloader/
$(SBI)
-
$(BOARD)
.bin
K210_BOOTLOADER_SIZE
:=
131072
# Building mode argument
# Building mode argument
ifeq
($(MODE), release)
ifeq
($(MODE), release)
...
@@ -17,15 +16,7 @@ ifeq ($(MODE), release)
...
@@ -17,15 +16,7 @@ ifeq ($(MODE), release)
endif
endif
# KERNEL ENTRY
# KERNEL ENTRY
ifeq
($(BOARD), qemu)
KERNEL_ENTRY_PA
:=
0x80200000
KERNEL_ENTRY_PA
:=
0x80200000
else
ifeq
($(BOARD), k210)
KERNEL_ENTRY_PA
:=
0x80020000
endif
# Run K210
K210-SERIALPORT
=
/dev/ttyUSB0
K210-BURNER
=
../tools/kflash.py
# Binutils
# Binutils
OBJDUMP
:=
rust-objdump
--arch-name
=
riscv64
OBJDUMP
:=
rust-objdump
--arch-name
=
riscv64
...
@@ -34,14 +25,7 @@ OBJCOPY := rust-objcopy --binary-architecture=riscv64
...
@@ -34,14 +25,7 @@ OBJCOPY := rust-objcopy --binary-architecture=riscv64
# Disassembly
# Disassembly
DISASM
?=
-x
DISASM
?=
-x
build
:
env switch-check $(KERNEL_BIN)
build
:
env $(KERNEL_BIN)
switch-check
:
ifeq
($(BOARD), qemu)
(
which last-qemu
)
||
(
rm
-f
last-k210
&&
touch
last-qemu
&&
make clean
)
else
ifeq
($(BOARD), k210)
(which
last-k210)
||
(rm
-f
last-qemu
&&
touch
last-k210
&&
make
clean)
endif
env
:
env
:
(
rustup target list |
grep
"riscv64gc-unknown-none-elf (installed)"
)
||
rustup target add
$(TARGET)
(
rustup target list |
grep
"riscv64gc-unknown-none-elf (installed)"
)
||
rustup target add
$(TARGET)
...
@@ -56,7 +40,7 @@ kernel:
...
@@ -56,7 +40,7 @@ kernel:
@
cd
../user
&&
make build
@
cd
../user
&&
make build
@
echo
Platform:
$(BOARD)
@
echo
Platform:
$(BOARD)
@
cp
src/linker-
$(BOARD)
.ld src/linker.ld
@
cp
src/linker-
$(BOARD)
.ld src/linker.ld
@
cargo build
$(MODE_ARG)
--features
"board_
$(BOARD)
"
@
cargo build
$(MODE_ARG)
@
rm
src/linker.ld
@
rm
src/linker.ld
clean
:
clean
:
...
@@ -75,21 +59,11 @@ run: run-inner
...
@@ -75,21 +59,11 @@ run: run-inner
run-inner
:
build
run-inner
:
build
ifeq
($(BOARD),qemu)
@
qemu-system-riscv64
\
@
qemu-system-riscv64
\
-machine
virt
\
-machine
virt
\
-nographic
\
-nographic
\
-bios
$(BOOTLOADER)
\
-bios
$(BOOTLOADER)
\
-device
loader,file
=
$(KERNEL_BIN)
,addr
=
$(KERNEL_ENTRY_PA)
-device
loader,file
=
$(KERNEL_BIN)
,addr
=
$(KERNEL_ENTRY_PA)
else
(
which
$
(
K210-BURNER
))
||
(
cd
..
&&
git clone https://github.com/sipeed/kflash.py.git
&&
mv
kflash.py tools
)
@
cp
$(BOOTLOADER)
$(BOOTLOADER)
.copy
@
dd
if
=
$(KERNEL_BIN)
of
=
$(BOOTLOADER)
.copy
bs
=
$(K210_BOOTLOADER_SIZE)
seek
=
1
@
mv
$(BOOTLOADER)
.copy
$(KERNEL_BIN)
@
sudo chmod
777
$
(
K210-SERIALPORT
)
python3
$
(
K210-BURNER
)
-p
$
(
K210-SERIALPORT
)
-b
1500000
$(KERNEL_BIN)
python3
-m
serial.tools.miniterm
--eol
LF
--dtr
0
--rts
0
--filter
direct
$
(
K210-SERIALPORT
)
115200
endif
debug
:
build
debug
:
build
@
tmux new-session
-d
\
@
tmux new-session
-d
\
...
@@ -103,4 +77,4 @@ gdbserver: build
...
@@ -103,4 +77,4 @@ gdbserver: build
gdbclient
:
gdbclient
:
@
riscv64-unknown-elf-gdb
-ex
'file
$(KERNEL_ELF)
'
-ex
'set arch riscv:rv64'
-ex
'target remote localhost:1234'
@
riscv64-unknown-elf-gdb
-ex
'file
$(KERNEL_ELF)
'
-ex
'set arch riscv:rv64'
-ex
'target remote localhost:1234'
.PHONY
:
build env kernel clean disasm disasm-vim run-inner
switch-check
gdbserver gdbclient
.PHONY
:
build env kernel clean disasm disasm-vim run-inner gdbserver gdbclient
os/src/linker-k210.ld
已删除
100644 → 0
浏览文件 @
e36a5a0c
OUTPUT_ARCH(riscv)
ENTRY(_start)
BASE_ADDRESS = 0x80020000;
SECTIONS
{
. = BASE_ADDRESS;
skernel = .;
stext = .;
.text : {
*(.text.entry)
*(.text .text.*)
}
. = ALIGN(4K);
etext = .;
srodata = .;
.rodata : {
*(.rodata .rodata.*)
*(.srodata .srodata.*)
}
. = ALIGN(4K);
erodata = .;
sdata = .;
.data : {
*(.data .data.*)
*(.sdata .sdata.*)
}
. = ALIGN(4K);
edata = .;
.bss : {
*(.bss.stack)
sbss = .;
*(.bss .bss.*)
*(.sbss .sbss.*)
}
. = ALIGN(4K);
ebss = .;
ekernel = .;
/DISCARD/ : {
*(.eh_frame)
}
}
\ No newline at end of file
os/src/sbi.rs
浏览文件 @
d1f03890
...
@@ -5,14 +5,13 @@ use core::arch::asm;
...
@@ -5,14 +5,13 @@ use core::arch::asm;
const
SBI_SET_TIMER
:
usize
=
0
;
const
SBI_SET_TIMER
:
usize
=
0
;
const
SBI_CONSOLE_PUTCHAR
:
usize
=
1
;
const
SBI_CONSOLE_PUTCHAR
:
usize
=
1
;
#[cfg(feature
=
"board_k210"
)]
const
SBI_SHUTDOWN
:
usize
=
8
;
// const SBI_CONSOLE_GETCHAR: usize = 2;
// const SBI_CONSOLE_GETCHAR: usize = 2;
// const SBI_CLEAR_IPI: usize = 3;
// const SBI_CLEAR_IPI: usize = 3;
// const SBI_SEND_IPI: usize = 4;
// const SBI_SEND_IPI: usize = 4;
// const SBI_REMOTE_FENCE_I: usize = 5;
// const SBI_REMOTE_FENCE_I: usize = 5;
// const SBI_REMOTE_SFENCE_VMA: usize = 6;
// const SBI_REMOTE_SFENCE_VMA: usize = 6;
// const SBI_REMOTE_SFENCE_VMA_ASID: usize = 7;
// const SBI_REMOTE_SFENCE_VMA_ASID: usize = 7;
// const SBI_SHUTDOWN: usize = 8;
/// handle SBI call with `which` SBI_id and other arguments
/// handle SBI call with `which` SBI_id and other arguments
#[inline(always)]
#[inline(always)]
...
@@ -46,16 +45,8 @@ pub fn console_putchar(c: usize) {
...
@@ -46,16 +45,8 @@ pub fn console_putchar(c: usize) {
// sbi_call(SBI_CONSOLE_GETCHAR, 0, 0, 0)
// sbi_call(SBI_CONSOLE_GETCHAR, 0, 0, 0)
// }
// }
#[cfg(feature
=
"board_qemu"
)]
use
crate
::
board
::
QEMUExit
;
use
crate
::
board
::
QEMUExit
;
/// use sbi call to shutdown the kernel
/// use sbi call to shutdown the kernel
pub
fn
shutdown
()
->
!
{
pub
fn
shutdown
()
->
!
{
#[cfg(feature
=
"board_k210"
)]
sbi_call
(
SBI_SHUTDOWN
,
0
,
0
,
0
);
#[cfg(feature
=
"board_qemu"
)]
crate
::
board
::
QEMU_EXIT_HANDLE
.exit_failure
();
crate
::
board
::
QEMU_EXIT_HANDLE
.exit_failure
();
#[cfg(feature
=
"board_k210"
)]
panic!
(
"It should shutdown!"
);
}
}
os/src/task/mod.rs
浏览文件 @
d1f03890
...
@@ -134,14 +134,8 @@ impl TaskManager {
...
@@ -134,14 +134,8 @@ impl TaskManager {
// go back to user mode
// go back to user mode
}
else
{
}
else
{
println!
(
"All applications completed!"
);
println!
(
"All applications completed!"
);
#[cfg(feature
=
"board_qemu"
)]
use
crate
::
board
::
QEMUExit
;
use
crate
::
board
::
QEMUExit
;
#[cfg(feature
=
"board_qemu"
)]
crate
::
board
::
QEMU_EXIT_HANDLE
.exit_success
();
crate
::
board
::
QEMU_EXIT_HANDLE
.exit_success
();
#[cfg(feature
=
"board_k210"
)]
panic!
(
"All applications completed!"
);
}
}
}
}
}
}
...
...
Miykael_xxm
🚴
@xiongjiamu
mentioned in commit
9a0e2c5f
·
12月 14, 2022
mentioned in commit
9a0e2c5f
mentioned in commit 9a0e2c5fba7d4cef80f2f76e9a1cef78e8bb3b3e
开关提交列表
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录