Yaochenger
b9e4fcfc68
[libcpu][riscv]整合libcpu/riscv中的移植文件 提供一份公共代码于common ( #6941 )
...
整合libcpu/riscv中的移植文件 提供一份公共代码于common
在提交本pr时,除hpmicro的内核,rv32内核bsp已完成去除大部分的冗余,大部分代码采用common中的实现。本pr的作用是进一步统一common中的文件,从而提供一份公用代码,新移植的RV32内核的BSP可以全部使用common代码。
- 在common中提供一份公用文件:interrupt_gcc.S
- 修改原有的文件,将原有的中断中上下文切换代码替换为interrupt_gcc.S
- 基于上述修改,修改仓库中risc-v内核的BSP与移植相关的部分 (主要包含中断入口函数 中断栈等)
- 在common中提供一份公用文件:trap_common.c;提供统一中断入口函数,中断入口函数初始化,中断入口注册等函数,并完善异常时的信息输出
- 在common中提供一份公用文件:rt_hw_stack_frame.h;将栈帧结构体剥离,供用户使用
- 在上述工作完成后,在上述工作的基础上测试仓库中risc-v内核的BSP
- 完善函数中的命名,完善中断栈的获取
- 提供一份详细的基于现有common文件的移植指南
#### 在什么测试环境下测试通过
- 1.CH32V307V-R1-R0
- 2.CH32V208W-R0-1V4
- 3.HPM6750EVKMINI
- 4.GD32VF103V-EVAL
- 5.qemu(CORE-V-MCU )
> 与上述开发板使用同样芯片的BSP均测试通过
在CH32V307V-R1-R0与HPM6750EVKMINI上基于现有移植文件进行多线程复杂场景下的长时间测试,测试过程系统运行正常。
2023-03-01 01:32:43 -05:00
Meco Man
563e49890c
[asm] 解决tab和空格混用的问题
2022-01-20 20:57:35 +08:00
yangjie
ef62febf1f
[SConscript]update group name
2020-12-19 16:49:11 +08:00
yangjie11
ba83ddc3c4
[SConscript] change libcpu to LIBARCH,and correcte letter case
2020-11-30 15:52:43 +08:00
yangjie11
91261e25b9
[SConscript]rename group name
2020-11-20 13:38:11 +08:00
Bernard Xiong
bde47018b8
[libcpu] Add SConscript in libcpu.
2019-01-07 06:09:45 +08:00
Bernard Xiong
fd347fdb90
[libcpu][risc-v] fix the rt_thread_switch_interrupt_flag issue
2018-12-15 11:47:10 +08:00
Bernard Xiong
08521ceaa5
[libcpu] Fix the E310 compiling issue.
2018-12-08 17:08:52 +08:00
Bernard Xiong
36b194aeb6
[BSP] Update Hifive1 BSP with unified RV porting.
2018-12-08 10:42:40 +08:00
liang yongxiang
32c5b2515f
[libcpu] add risc-v e310 porting
2018-05-31 14:53:26 +08:00
liang yongxiang
5faae3350c
[libcpu] remove libcpu/risc-v
2018-05-29 12:59:13 +08:00
Bernard Xiong
2ac493698b
[BSP] cleanup for hifive1 bsp.
2017-08-26 11:02:39 +08:00
zhangjun
72cfe9dd68
modify: drivers/cpuusage.c
...
modify: ../../libcpu/risc-v/e310/stack.c
rmove unused macro definition
modify: ../../src/idle.c
Return to the original version
2017-07-31 12:05:45 +08:00
zhangjun
e9f1bdf2da
new file: ../../libcpu/risc-v/e310/trap.c
...
add file that forget to submit before
auto change timer mtimercmp register on the base of RT_TICK_PER_SECOND in rtconfig.h
no flashing led
new file: ../../src/idle.c
recover old file
2017-07-31 11:12:28 +08:00
zhangjun
a5305c05df
fix bug in context_gcc.s and start_gcc.s:
...
save mie into stack
msh running normaly
2017-07-31 10:59:59 +08:00
zhangjun
b032dff161
fix bug in rt_hw_context_switch_interrupt_do
...
save sp to old thread
clear rt_thread_switch_interrupt_flag
always enable interrupt after rt_hw_context_switch
judeg the type of interrupt in trap_entry, then call handler(Machine timer interrupt of Machine external interrupt)
2017-07-30 19:46:28 +08:00
zhangjun
2d56a27c20
修改: ../../libcpu/risc-v/e310/context_gcc.S
...
enable interrupt after return form rt_hw_context_switch
2017-07-30 15:34:32 +08:00
zhangjun
3c51848d33
fix trap_entry
2017-07-29 15:37:20 +08:00
zhangjun
b80f83f360
modified: ../../libcpu/risc-v/e310/context_gcc.S
...
fix open timer intrrupt
2017-07-26 16:27:54 +08:00
zhangjun
98a6896cfa
remove "csrrc a5, mstatus, MSTATUS_MIE" in rt_hw_interrupt_enable();
...
it will lead to interrupt again in interrupt
2017-07-26 16:07:01 +08:00
zhangjun
b334347a24
deleted: rtthread.s /*just for debug*/
...
modified: ../../libcpu/risc-v/e310/context_gcc.S
change ret to mret and switch to new task with mepc
2017-07-17 16:55:33 +08:00
zhangjun
e01455155a
add context_gcc.s
2017-07-17 15:44:00 +08:00