summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaochenger <[email protected]>2023-03-02 22:17:43 +0800
committerGitHub <[email protected]>2023-03-02 09:17:43 -0500
commit95540854a669bffd29ed7bde05d4a12addd43319 (patch)
tree6166cd9a44cc733fbfc5c5621a73d6264b27d4d5
parentfc2e122ee291ee4240305e9f795e4eb274c80705 (diff)
[libcpu/riscv]迁移libcpu/riscv/ch32中文件至bsp (#7004)
-rw-r--r--bsp/wch/risc-v/ch32v103r-evt/board/SConscript1
-rw-r--r--bsp/wch/risc-v/ch32v103r-evt/board/software_irq.c (renamed from libcpu/risc-v/ch32/software_irq.c)0
-rw-r--r--bsp/wch/risc-v/ch32v208w-r0/board/SConscript1
-rw-r--r--bsp/wch/risc-v/ch32v208w-r0/board/software_irq.c41
-rw-r--r--bsp/wch/risc-v/ch32v307v-r1/board/SConscript1
-rw-r--r--bsp/wch/risc-v/ch32v307v-r1/board/software_irq.c41
-rw-r--r--libcpu/risc-v/ch32/SConscript12
7 files changed, 85 insertions, 12 deletions
diff --git a/bsp/wch/risc-v/ch32v103r-evt/board/SConscript b/bsp/wch/risc-v/ch32v103r-evt/board/SConscript
index d245fbe011..127d3c77f4 100644
--- a/bsp/wch/risc-v/ch32v103r-evt/board/SConscript
+++ b/bsp/wch/risc-v/ch32v103r-evt/board/SConscript
@@ -11,6 +11,7 @@ src = Split('''
board.c
debug.c
ch32v10x_it.c
+software_irq.c
''')
path = [cwd]
diff --git a/libcpu/risc-v/ch32/software_irq.c b/bsp/wch/risc-v/ch32v103r-evt/board/software_irq.c
index e91a588312..e91a588312 100644
--- a/libcpu/risc-v/ch32/software_irq.c
+++ b/bsp/wch/risc-v/ch32v103r-evt/board/software_irq.c
diff --git a/bsp/wch/risc-v/ch32v208w-r0/board/SConscript b/bsp/wch/risc-v/ch32v208w-r0/board/SConscript
index bc8e7636f1..ea54a3a737 100644
--- a/bsp/wch/risc-v/ch32v208w-r0/board/SConscript
+++ b/bsp/wch/risc-v/ch32v208w-r0/board/SConscript
@@ -9,6 +9,7 @@ cwd = GetCurrentDir()
# add general drivers
src = Split('''
board.c
+software_irq.c
''')
path = [cwd]
diff --git a/bsp/wch/risc-v/ch32v208w-r0/board/software_irq.c b/bsp/wch/risc-v/ch32v208w-r0/board/software_irq.c
new file mode 100644
index 0000000000..e91a588312
--- /dev/null
+++ b/bsp/wch/risc-v/ch32v208w-r0/board/software_irq.c
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-09-09 WCH the first version
+ * 2023-01-04 WangShun Remove redundant files
+ */
+#include "rtconfig.h"
+#if defined (SOC_RISCV_SERIES_CH32V1)
+#include "ch32v10x.h"
+#elif defined (SOC_RISCV_SERIES_CH32V2)
+#include "ch32v20x.h"
+#elif defined (SOC_RISCV_SERIES_CH32V3)
+#include "ch32v30x.h"
+#else
+#error "CH32 architecture doesn't support!"
+#endif
+void rt_trigger_software_interrupt(void)
+{
+ /*CH32V103 does not support systick software interrupt*/
+#if defined(SOC_RISCV_SERIES_CH32V1)
+ NVIC_SetPendingIRQ(Software_IRQn);
+#else
+ SysTick->CTLR |= (1 << 31);
+#endif
+}
+
+void rt_hw_do_after_save_above(void)
+{
+ __asm volatile ("li t0,0x20" );
+ __asm volatile ("csrs 0x804, t0");
+ /*CH32V103 does not support systick software interrupt*/
+#if defined(SOC_RISCV_SERIES_CH32V1)
+ NVIC_ClearPendingIRQ(Software_IRQn);
+#else
+ SysTick->CTLR &= ~(1 << 31);
+#endif
+} \ No newline at end of file
diff --git a/bsp/wch/risc-v/ch32v307v-r1/board/SConscript b/bsp/wch/risc-v/ch32v307v-r1/board/SConscript
index bc8e7636f1..ea54a3a737 100644
--- a/bsp/wch/risc-v/ch32v307v-r1/board/SConscript
+++ b/bsp/wch/risc-v/ch32v307v-r1/board/SConscript
@@ -9,6 +9,7 @@ cwd = GetCurrentDir()
# add general drivers
src = Split('''
board.c
+software_irq.c
''')
path = [cwd]
diff --git a/bsp/wch/risc-v/ch32v307v-r1/board/software_irq.c b/bsp/wch/risc-v/ch32v307v-r1/board/software_irq.c
new file mode 100644
index 0000000000..e91a588312
--- /dev/null
+++ b/bsp/wch/risc-v/ch32v307v-r1/board/software_irq.c
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-09-09 WCH the first version
+ * 2023-01-04 WangShun Remove redundant files
+ */
+#include "rtconfig.h"
+#if defined (SOC_RISCV_SERIES_CH32V1)
+#include "ch32v10x.h"
+#elif defined (SOC_RISCV_SERIES_CH32V2)
+#include "ch32v20x.h"
+#elif defined (SOC_RISCV_SERIES_CH32V3)
+#include "ch32v30x.h"
+#else
+#error "CH32 architecture doesn't support!"
+#endif
+void rt_trigger_software_interrupt(void)
+{
+ /*CH32V103 does not support systick software interrupt*/
+#if defined(SOC_RISCV_SERIES_CH32V1)
+ NVIC_SetPendingIRQ(Software_IRQn);
+#else
+ SysTick->CTLR |= (1 << 31);
+#endif
+}
+
+void rt_hw_do_after_save_above(void)
+{
+ __asm volatile ("li t0,0x20" );
+ __asm volatile ("csrs 0x804, t0");
+ /*CH32V103 does not support systick software interrupt*/
+#if defined(SOC_RISCV_SERIES_CH32V1)
+ NVIC_ClearPendingIRQ(Software_IRQn);
+#else
+ SysTick->CTLR &= ~(1 << 31);
+#endif
+} \ No newline at end of file
diff --git a/libcpu/risc-v/ch32/SConscript b/libcpu/risc-v/ch32/SConscript
deleted file mode 100644
index ccd26ae518..0000000000
--- a/libcpu/risc-v/ch32/SConscript
+++ /dev/null
@@ -1,12 +0,0 @@
-# RT-Thread building script for component
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Glob('*.c') + Glob('*.cpp') + Glob('*_gcc.S')
-CPPPATH = [cwd]
-ASFLAGS = ' -I ' + cwd
-
-group = DefineGroup('CPU', src, depend = [''], CPPPATH = CPPPATH, ASFLAGS = ASFLAGS)
-
-Return('group')