22 Commits

Author SHA1 Message Date
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