Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
SummerGao.
rt-thread
提交
bcb7fac0
R
rt-thread
项目概览
SummerGao.
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bcb7fac0
编写于
5月 11, 2019
作者:
S
shaojinchun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix signals for k210
上级
c5249157
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
42 addition
and
143 deletion
+42
-143
bsp/k210/rtconfig.py
bsp/k210/rtconfig.py
+1
-1
libcpu/risc-v/common/context_gcc.S
libcpu/risc-v/common/context_gcc.S
+31
-95
libcpu/risc-v/k210/interrupt_gcc.S
libcpu/risc-v/k210/interrupt_gcc.S
+10
-47
未找到文件。
bsp/k210/rtconfig.py
浏览文件 @
bcb7fac0
...
...
@@ -15,7 +15,7 @@ if os.getenv('RTT_CC'):
if
CROSS_TOOL
==
'gcc'
:
PLATFORM
=
'gcc'
EXEC_PATH
=
r
'/opt/
riscv64-unknown-elf
/bin'
EXEC_PATH
=
r
'/opt/
gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.1-20190425-1021
/bin'
else
:
print
(
'Please make sure your toolchains is GNU GCC!'
)
exit
(
0
)
...
...
libcpu/risc-v/common/context_gcc.S
浏览文件 @
bcb7fac0
...
...
@@ -49,45 +49,9 @@ rt_hw_context_switch_to:
mv
a0
,
a1
jal
rt_cpus_lock_status_restore
#endif
/
*
load
epc
from
stack
*/
LOAD
a0
,
0
*
REGBYTES
(
sp
)
csrw
mepc
,
a0
LOAD
x1
,
1
*
REGBYTES
(
sp
)
/
*
load
mstatus
from
stack
*/
LOAD
a0
,
2
*
REGBYTES
(
sp
)
csrw
mstatus
,
a0
LOAD
x4
,
4
*
REGBYTES
(
sp
)
LOAD
x5
,
5
*
REGBYTES
(
sp
)
LOAD
x6
,
6
*
REGBYTES
(
sp
)
LOAD
x7
,
7
*
REGBYTES
(
sp
)
LOAD
x8
,
8
*
REGBYTES
(
sp
)
LOAD
x9
,
9
*
REGBYTES
(
sp
)
LOAD
x10
,
10
*
REGBYTES
(
sp
)
LOAD
x11
,
11
*
REGBYTES
(
sp
)
LOAD
x12
,
12
*
REGBYTES
(
sp
)
LOAD
x13
,
13
*
REGBYTES
(
sp
)
LOAD
x14
,
14
*
REGBYTES
(
sp
)
LOAD
x15
,
15
*
REGBYTES
(
sp
)
LOAD
x16
,
16
*
REGBYTES
(
sp
)
LOAD
x17
,
17
*
REGBYTES
(
sp
)
LOAD
x18
,
18
*
REGBYTES
(
sp
)
LOAD
x19
,
19
*
REGBYTES
(
sp
)
LOAD
x20
,
20
*
REGBYTES
(
sp
)
LOAD
x21
,
21
*
REGBYTES
(
sp
)
LOAD
x22
,
22
*
REGBYTES
(
sp
)
LOAD
x23
,
23
*
REGBYTES
(
sp
)
LOAD
x24
,
24
*
REGBYTES
(
sp
)
LOAD
x25
,
25
*
REGBYTES
(
sp
)
LOAD
x26
,
26
*
REGBYTES
(
sp
)
LOAD
x27
,
27
*
REGBYTES
(
sp
)
LOAD
x28
,
28
*
REGBYTES
(
sp
)
LOAD
x29
,
29
*
REGBYTES
(
sp
)
LOAD
x30
,
30
*
REGBYTES
(
sp
)
LOAD
x31
,
31
*
REGBYTES
(
sp
)
addi
sp
,
sp
,
32
*
REGBYTES
mret
j
rt_hw_context_switch_exit
/*
*
#
ifdef
RT_USING_SMP
...
...
@@ -102,7 +66,6 @@ rt_hw_context_switch_to:
*/
.
globl
rt_hw_context_switch
rt_hw_context_switch
:
/
*
saved
from
thread
context
*
x1
/
ra
->
sp
(
0
)
*
x1
/
ra
->
sp
(
1
)
...
...
@@ -163,48 +126,7 @@ save_mpie:
jal
rt_cpus_lock_status_restore
#endif /*RT_USING_SMP*/
/
*
resw
ra
to
mepc
*/
LOAD
a1
,
0
*
REGBYTES
(
sp
)
csrw
mepc
,
a1
LOAD
x1
,
1
*
REGBYTES
(
sp
)
/
*
force
to
machin
mode
(
MPP
=
11
)
*/
li
a1
,
0x00001800
;
csrs
mstatus
,
a1
LOAD
a1
,
2
*
REGBYTES
(
sp
)
csrs
mstatus
,
a1
LOAD
x4
,
4
*
REGBYTES
(
sp
)
LOAD
x5
,
5
*
REGBYTES
(
sp
)
LOAD
x6
,
6
*
REGBYTES
(
sp
)
LOAD
x7
,
7
*
REGBYTES
(
sp
)
LOAD
x8
,
8
*
REGBYTES
(
sp
)
LOAD
x9
,
9
*
REGBYTES
(
sp
)
LOAD
x10
,
10
*
REGBYTES
(
sp
)
LOAD
x11
,
11
*
REGBYTES
(
sp
)
LOAD
x12
,
12
*
REGBYTES
(
sp
)
LOAD
x13
,
13
*
REGBYTES
(
sp
)
LOAD
x14
,
14
*
REGBYTES
(
sp
)
LOAD
x15
,
15
*
REGBYTES
(
sp
)
LOAD
x16
,
16
*
REGBYTES
(
sp
)
LOAD
x17
,
17
*
REGBYTES
(
sp
)
LOAD
x18
,
18
*
REGBYTES
(
sp
)
LOAD
x19
,
19
*
REGBYTES
(
sp
)
LOAD
x20
,
20
*
REGBYTES
(
sp
)
LOAD
x21
,
21
*
REGBYTES
(
sp
)
LOAD
x22
,
22
*
REGBYTES
(
sp
)
LOAD
x23
,
23
*
REGBYTES
(
sp
)
LOAD
x24
,
24
*
REGBYTES
(
sp
)
LOAD
x25
,
25
*
REGBYTES
(
sp
)
LOAD
x26
,
26
*
REGBYTES
(
sp
)
LOAD
x27
,
27
*
REGBYTES
(
sp
)
LOAD
x28
,
28
*
REGBYTES
(
sp
)
LOAD
x29
,
29
*
REGBYTES
(
sp
)
LOAD
x30
,
30
*
REGBYTES
(
sp
)
LOAD
x31
,
31
*
REGBYTES
(
sp
)
addi
sp
,
sp
,
32
*
REGBYTES
mret
j
rt_hw_context_switch_exit
#ifdef RT_USING_SMP
/*
...
...
@@ -220,26 +142,42 @@ rt_hw_context_switch_interrupt:
STORE
a0
,
0
(
a1
)
csrr
a1
,
mepc
STORE
a1
,
0
*
REGBYTES
(
a0
)
csrr
a1
,
mstatus
STORE
a1
,
2
*
REGBYTES
(
a0
)
LOAD
sp
,
0
(
a2
)
move
a0
,
a3
call
rt_cpus_lock_status_restore
j
rt_hw_context_switch_exit
#endif
.
global
rt_hw_context_switch_exit
rt_hw_context_switch_exit
:
#ifdef RT_USING_SMP
#ifdef RT_USING_SIGNALS
mv
a0
,
sp
csrr
t0
,
mhartid
/
*
switch
interrupt
stack
of
current
cpu
*/
la
sp
,
__stack_start__
addi
t1
,
t0
,
1
li
t2
,
__STACKSIZE__
mul
t1
,
t1
,
t2
add
sp
,
sp
,
t1
/*
sp
=
(
cpuid
+
1
)
*
__STACKSIZE__
+
__stack_start__
*/
call
rt_signal_check
mv
sp
,
a0
#endif
#endif
/
*
resw
ra
to
mepc
*/
LOAD
a1
,
0
*
REGBYTES
(
sp
)
csrw
mepc
,
a1
LOAD
a0
,
0
*
REGBYTES
(
sp
)
csrw
mepc
,
a0
LOAD
x1
,
1
*
REGBYTES
(
sp
)
/
*
force
to
machin
mode
(
MPP
=
11
)
*/
li
a1
,
0x00001800
;
csrs
mstatus
,
a1
LOAD
a1
,
2
*
REGBYTES
(
sp
)
csrs
mstatus
,
a1
li
t0
,
0x00001800
csrs
mstatus
,
t0
LOAD
a0
,
2
*
REGBYTES
(
sp
)
csrs
mstatus
,
a0
LOAD
x4
,
4
*
REGBYTES
(
sp
)
LOAD
x5
,
5
*
REGBYTES
(
sp
)
...
...
@@ -272,5 +210,3 @@ rt_hw_context_switch_interrupt:
addi
sp
,
sp
,
32
*
REGBYTES
mret
#endif
libcpu/risc-v/k210/interrupt_gcc.S
浏览文件 @
bcb7fac0
...
...
@@ -20,8 +20,12 @@ trap_entry:
addi
sp
,
sp
,
-
32
*
REGBYTES
STORE
x1
,
1
*
REGBYTES
(
sp
)
li
t0
,
0x80
STORE
t0
,
2
*
REGBYTES
(
sp
)
csrr
x1
,
mstatus
STORE
x1
,
2
*
REGBYTES
(
sp
)
csrr
x1
,
mepc
STORE
x1
,
0
*
REGBYTES
(
sp
)
STORE
x4
,
4
*
REGBYTES
(
sp
)
STORE
x5
,
5
*
REGBYTES
(
sp
)
...
...
@@ -75,9 +79,11 @@ trap_entry:
#ifdef RT_USING_SMP
/
*
s0
-->
sp
*/
mv
sp
,
s0
mv
a0
,
s0
call
rt_scheduler_do_irq_switch
mv
sp
,
s0
j
rt_hw_context_switch_exit
#else
/
*
switch
to
from_thread
stack
*/
...
...
@@ -89,9 +95,6 @@ trap_entry:
beqz
s2
,
spurious_interrupt
sw
zero
,
0
(
s0
)
csrr
a0
,
mepc
STORE
a0
,
0
*
REGBYTES
(
sp
)
la
s0
,
rt_interrupt_from_thread
LOAD
s1
,
0
(
s0
)
STORE
sp
,
0
(
s1
)
...
...
@@ -100,47 +103,7 @@ trap_entry:
LOAD
s1
,
0
(
s0
)
LOAD
sp
,
0
(
s1
)
LOAD
a0
,
0
*
REGBYTES
(
sp
)
csrw
mepc
,
a0
#endif
spurious_interrupt
:
LOAD
x1
,
1
*
REGBYTES
(
sp
)
/
*
Remain
in
M
-
mode
after
mret
*/
li
t0
,
0x00001800
csrs
mstatus
,
t0
LOAD
t0
,
2
*
REGBYTES
(
sp
)
csrs
mstatus
,
t0
LOAD
x4
,
4
*
REGBYTES
(
sp
)
LOAD
x5
,
5
*
REGBYTES
(
sp
)
LOAD
x6
,
6
*
REGBYTES
(
sp
)
LOAD
x7
,
7
*
REGBYTES
(
sp
)
LOAD
x8
,
8
*
REGBYTES
(
sp
)
LOAD
x9
,
9
*
REGBYTES
(
sp
)
LOAD
x10
,
10
*
REGBYTES
(
sp
)
LOAD
x11
,
11
*
REGBYTES
(
sp
)
LOAD
x12
,
12
*
REGBYTES
(
sp
)
LOAD
x13
,
13
*
REGBYTES
(
sp
)
LOAD
x14
,
14
*
REGBYTES
(
sp
)
LOAD
x15
,
15
*
REGBYTES
(
sp
)
LOAD
x16
,
16
*
REGBYTES
(
sp
)
LOAD
x17
,
17
*
REGBYTES
(
sp
)
LOAD
x18
,
18
*
REGBYTES
(
sp
)
LOAD
x19
,
19
*
REGBYTES
(
sp
)
LOAD
x20
,
20
*
REGBYTES
(
sp
)
LOAD
x21
,
21
*
REGBYTES
(
sp
)
LOAD
x22
,
22
*
REGBYTES
(
sp
)
LOAD
x23
,
23
*
REGBYTES
(
sp
)
LOAD
x24
,
24
*
REGBYTES
(
sp
)
LOAD
x25
,
25
*
REGBYTES
(
sp
)
LOAD
x26
,
26
*
REGBYTES
(
sp
)
LOAD
x27
,
27
*
REGBYTES
(
sp
)
LOAD
x28
,
28
*
REGBYTES
(
sp
)
LOAD
x29
,
29
*
REGBYTES
(
sp
)
LOAD
x30
,
30
*
REGBYTES
(
sp
)
LOAD
x31
,
31
*
REGBYTES
(
sp
)
addi
sp
,
sp
,
32
*
REGBYTES
mret
j
rt_hw_context_switch_exit
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录