diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index 91a3f88a1aed5704bae37099bc864829891c2fd4..5f577d0c4af8b1f134596f8fbaf305b3e058d084 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -144,6 +144,8 @@ jobs: - {RTT_BSP: "stm32/stm32mp157a-st-ev1", RTT_TOOL_CHAIN: "sourcery-arm"} - {RTT_BSP: "stm32/stm32u575-st-nucleo", RTT_TOOL_CHAIN: "sourcery-arm"} - {RTT_BSP: "stm32/stm32wb55-st-nucleo", RTT_TOOL_CHAIN: "sourcery-arm"} + - {RTT_BSP: "wch/arm/ch32f103c8-core", RTT_TOOL_CHAIN: "sourcery-arm"} + - {RTT_BSP: "wch/arm/ch32f203r-evt", RTT_TOOL_CHAIN: "sourcery-arm"} - {RTT_BSP: "swm320", RTT_TOOL_CHAIN: "sourcery-arm"} - {RTT_BSP: "swm320-lq100", RTT_TOOL_CHAIN: "sourcery-arm"} - {RTT_BSP: "beaglebone", RTT_TOOL_CHAIN: "sourcery-arm"} diff --git a/bsp/wch/arm/Libraries/CH32F20x_StdPeriph_Driver/CMSIS/WCH/CH32F20x/Source/GCC/startup_ch32f10x.S b/bsp/wch/arm/Libraries/CH32F20x_StdPeriph_Driver/CMSIS/WCH/CH32F20x/Source/GCC/startup_ch32f20x.S similarity index 62% rename from bsp/wch/arm/Libraries/CH32F20x_StdPeriph_Driver/CMSIS/WCH/CH32F20x/Source/GCC/startup_ch32f10x.S rename to bsp/wch/arm/Libraries/CH32F20x_StdPeriph_Driver/CMSIS/WCH/CH32F20x/Source/GCC/startup_ch32f20x.S index 07a651fa19382bf21ef7114d1b0b08cdcf320e05..ee113ca635430c9c55c53fba66a2790e0476e9fd 100644 --- a/bsp/wch/arm/Libraries/CH32F20x_StdPeriph_Driver/CMSIS/WCH/CH32F20x/Source/GCC/startup_ch32f10x.S +++ b/bsp/wch/arm/Libraries/CH32F20x_StdPeriph_Driver/CMSIS/WCH/CH32F20x/Source/GCC/startup_ch32f20x.S @@ -1,9 +1,9 @@ /********************************** (C) COPYRIGHT ******************************* -* File Name : startup_ch32f10x.s +* File Name : startup_ch32f20x.s * Author : WCH * Version : V1.0.0 * Date : 2020/11/01 -* Description : CH32F10x vector table for GCC toolchain. +* Description : CH32F20x vector table for GCC toolchain. *******************************************************************************/ .syntax unified @@ -148,7 +148,51 @@ g_pfnVectors: .word EXTI15_10_IRQHandler .word RTCAlarm_IRQHandler .word USBWakeUp_IRQHandler - .word USBHD_IRQHandler + .word TIM8_BRK_IRQHandler + .word TIM8_UP_IRQHandler + .word TIM8_TRG_COM_IRQHandler + .word TIM8_CC_IRQHandler + .word RNG_IRQHandler + .word FSMC_IRQHandler + .word SDIO_IRQHandler + .word TIM5_IRQHandler + .word SPI3_IRQHandler + .word UART4_IRQHandler + .word UART5_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_IRQHandler + .word DMA2_Channel5_IRQHandler + .word ETH_IRQHandler + .word ETH_WKUP_IRQHandler + .word CAN2_TX_IRQHandler + .word CAN2_RX0_IRQHandler + .word CAN2_RX1_IRQHandler + .word CAN2_SCE_IRQHandler + .word OTG_FS_IRQHandler + .word USBHSWakeup_IRQHandler + .word USBHS_IRQHandler + .word DVP_IRQHandler + .word UART6_IRQHandler + .word UART7_IRQHandler + .word UART8_IRQHandler + .word TIM9_BRK_IRQHandler + .word TIM9_UP_IRQHandler + .word TIM9_TRG_COM_IRQHandler + .word TIM9_CC_IRQHandler + .word TIM10_BRK_IRQHandler + .word TIM10_UP_IRQHandler + .word TIM10_TRG_COM_IRQHandler + .word TIM10_CC_IRQHandler + .word DMA2_Channel6_IRQHandler + .word DMA2_Channel7_IRQHandler + .word DMA2_Channel8_IRQHandler + .word DMA2_Channel9_IRQHandler + .word DMA2_Channel10_IRQHandler + .word DMA2_Channel11_IRQHandler /******************************************************************************* Dummy Exception Handlers (infinite loops which can be modified) @@ -309,5 +353,137 @@ g_pfnVectors: .weak USBWakeUp_IRQHandler .thumb_set USBWakeUp_IRQHandler,Default_Handler - .weak USBHD_IRQHandler - .thumb_set USBHD_IRQHandler,Default_Handler + .weak TIM8_BRK_IRQHandler + .thumb_set TIM8_BRK_IRQHandler,Default_Handler + + .weak TIM8_UP_IRQHandler + .thumb_set TIM8_UP_IRQHandler,Default_Handler + + .weak TIM8_TRG_COM_IRQHandler + .thumb_set TIM8_TRG_COM_IRQHandler,Default_Handler + + .weak TIM8_CC_IRQHandler + .thumb_set TIM8_CC_IRQHandler,Default_Handler + + .weak RNG_IRQHandler + .thumb_set RNG_IRQHandler,Default_Handler + + .weak FSMC_IRQHandler + .thumb_set FSMC_IRQHandler,Default_Handler + + .weak SDIO_IRQHandler + .thumb_set SDIO_IRQHandler,Default_Handler + + .weak TIM5_IRQHandler + .thumb_set TIM5_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak UART4_IRQHandler + .thumb_set UART4_IRQHandler,Default_Handler + + .weak UART5_IRQHandler + .thumb_set UART5_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_IRQHandler + .thumb_set DMA2_Channel4_IRQHandler,Default_Handler + + .weak DMA2_Channel5_IRQHandler + .thumb_set DMA2_Channel5_IRQHandler,Default_Handler + + .weak ETH_IRQHandler + .thumb_set ETH_IRQHandler,Default_Handler + + .weak ETH_WKUP_IRQHandler + .thumb_set ETH_WKUP_IRQHandler,Default_Handler + + .weak CAN2_TX_IRQHandler + .thumb_set CAN2_TX_IRQHandler,Default_Handler + + .weak CAN2_RX0_IRQHandler + .thumb_set CAN2_RX0_IRQHandler,Default_Handler + + .weak CAN2_RX1_IRQHandler + .thumb_set CAN2_RX1_IRQHandler,Default_Handler + + .weak CAN2_SCE_IRQHandler + .thumb_set CAN2_SCE_IRQHandler,Default_Handler + + .weak OTG_FS_IRQHandler + .thumb_set OTG_FS_IRQHandler,Default_Handler + + .weak USBHSWakeup_IRQHandler + .thumb_set USBHSWakeup_IRQHandler,Default_Handler + + .weak USBHS_IRQHandler + .thumb_set USBHS_IRQHandler,Default_Handler + + .weak DVP_IRQHandler + .thumb_set DVP_IRQHandler,Default_Handler + + .weak UART6_IRQHandler + .thumb_set UART6_IRQHandler,Default_Handler + + .weak UART7_IRQHandler + .thumb_set UART7_IRQHandler,Default_Handler + + .weak UART8_IRQHandler + .thumb_set UART8_IRQHandler,Default_Handler + + .weak TIM9_BRK_IRQHandler + .thumb_set TIM9_BRK_IRQHandler,Default_Handler + + .weak TIM9_UP_IRQHandler + .thumb_set TIM9_UP_IRQHandler,Default_Handler + + .weak TIM9_TRG_COM_IRQHandler + .thumb_set TIM9_TRG_COM_IRQHandler,Default_Handler + + .weak TIM9_CC_IRQHandler + .thumb_set TIM9_CC_IRQHandler,Default_Handler + + .weak TIM10_BRK_IRQHandler + .thumb_set TIM10_BRK_IRQHandler,Default_Handler + + .weak TIM10_UP_IRQHandler + .thumb_set TIM10_UP_IRQHandler,Default_Handler + + .weak TIM10_TRG_COM_IRQHandler + .thumb_set TIM10_TRG_COM_IRQHandler,Default_Handler + + .weak TIM10_CC_IRQHandler + .thumb_set TIM10_CC_IRQHandler,Default_Handler + + .weak DMA2_Channel6_IRQHandler + .thumb_set DMA2_Channel6_IRQHandler,Default_Handler + + .weak DMA2_Channel7_IRQHandler + .thumb_set DMA2_Channel7_IRQHandler,Default_Handler + + .weak DMA2_Channel8_IRQHandler + .thumb_set DMA2_Channel8_IRQHandler,Default_Handler + + .weak DMA2_Channel9_IRQHandler + .thumb_set DMA2_Channel9_IRQHandler,Default_Handler + + .weak DMA2_Channel10_IRQHandler + .thumb_set DMA2_Channel10_IRQHandler,Default_Handler + + .weak DMA2_Channel11_IRQHandler + .thumb_set DMA2_Channel11_IRQHandler,Default_Handler diff --git a/bsp/wch/arm/ch32f103c8-core/.config b/bsp/wch/arm/ch32f103c8-core/.config index 327fe0db7cc1a213dae1751ab7093775044fcc29..8d19eb11089997e68f7d6c5f4ef981f806b89eab 100644 --- a/bsp/wch/arm/ch32f103c8-core/.config +++ b/bsp/wch/arm/ch32f103c8-core/.config @@ -673,18 +673,13 @@ CONFIG_SOC_CH32F103C8=y # On-chip Peripheral Drivers # CONFIG_BSP_USING_UART=y -CONFIG_BSP_USING_UART1=y +# CONFIG_BSP_USING_UART1 is not set CONFIG_BSP_USING_UART2=y -CONFIG_BSP_USING_UART3=y -CONFIG_BSP_USING_SPI=y -CONFIG_BSP_USING_SPI1=y -CONFIG_BSP_USING_SPI2=y -CONFIG_BSP_USING_HWI2C=y -CONFIG_BSP_USING_HWI2C1=y -CONFIG_BSP_USING_HWI2C2=y -CONFIG_BSP_USING_IWDT=y -CONFIG_BSP_USING_RTC=y -CONFIG_BSP_USING_RTC_LSI=y +# CONFIG_BSP_USING_UART3 is not set +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_HWI2C is not set +# CONFIG_BSP_USING_IWDT is not set +# CONFIG_BSP_USING_RTC is not set CONFIG_LSI_VALUE=40000 # CONFIG_BSP_USING_TIM is not set diff --git a/bsp/wch/arm/ch32f103c8-core/board/board.c b/bsp/wch/arm/ch32f103c8-core/board/board.c index 10104959e58b33aa6246d52049d36b855c4f9160..f1d3773fa6d015a533ea5680fb50d0df01da1047 100644 --- a/bsp/wch/arm/ch32f103c8-core/board/board.c +++ b/bsp/wch/arm/ch32f103c8-core/board/board.c @@ -200,6 +200,7 @@ void ch32f1_i2c_config(I2C_TypeDef *i2cx) } } +#ifdef BSP_USING_TIM void ch32f1_tim_clock_init(TIM_TypeDef *timx) { if (timx == TIM1) @@ -434,3 +435,4 @@ void ch32f1_pwm_io_init(TIM_TypeDef *timx, rt_uint8_t channel) } } } +#endif diff --git a/bsp/wch/arm/ch32f103c8-core/project.uvprojx b/bsp/wch/arm/ch32f103c8-core/project.uvprojx index b00c028f60616cf01636d4196360f3d1c0d97e7a..9153f0f1651d1283a12efe681f522ca0a4560793 100644 --- a/bsp/wch/arm/ch32f103c8-core/project.uvprojx +++ b/bsp/wch/arm/ch32f103c8-core/project.uvprojx @@ -533,16 +533,16 @@ Compiler - syscall_mem.c + syscalls.c 1 - ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c + ..\..\..\..\components\libc\compilers\armlibc\syscalls.c - syscalls.c + syscall_mem.c 1 - ..\..\..\..\components\libc\compilers\armlibc\syscalls.c + ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c @@ -562,6 +562,13 @@ CPU + + + showmem.c + 1 + ..\..\..\..\libcpu\arm\common\showmem.c + + div0.c @@ -578,9 +585,9 @@ - showmem.c - 1 - ..\..\..\..\libcpu\arm\common\showmem.c + context_rvds.S + 2 + ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S @@ -590,13 +597,6 @@ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c - - - context_rvds.S - 2 - ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S - - DeviceDrivers @@ -616,51 +616,51 @@ - ringblk_buf.c + waitqueue.c 1 - ..\..\..\..\components\drivers\ipc\ringblk_buf.c + ..\..\..\..\components\drivers\ipc\waitqueue.c - workqueue.c + ringblk_buf.c 1 - ..\..\..\..\components\drivers\ipc\workqueue.c + ..\..\..\..\components\drivers\ipc\ringblk_buf.c - completion.c + pipe.c 1 - ..\..\..\..\components\drivers\ipc\completion.c + ..\..\..\..\components\drivers\ipc\pipe.c - dataqueue.c + completion.c 1 - ..\..\..\..\components\drivers\ipc\dataqueue.c + ..\..\..\..\components\drivers\ipc\completion.c - pipe.c + ringbuffer.c 1 - ..\..\..\..\components\drivers\ipc\pipe.c + ..\..\..\..\components\drivers\ipc\ringbuffer.c - waitqueue.c + dataqueue.c 1 - ..\..\..\..\components\drivers\ipc\waitqueue.c + ..\..\..\..\components\drivers\ipc\dataqueue.c - ringbuffer.c + workqueue.c 1 - ..\..\..\..\components\drivers\ipc\ringbuffer.c + ..\..\..\..\components\drivers\ipc\workqueue.c @@ -720,13 +720,6 @@ Drivers - - - startup_ch32f10x.s - 2 - ..\Libraries\CH32F10x_StdPeriph_Driver\CMSIS\WCH\CH32F10x\Source\ARM\startup_ch32f10x.s - - system_ch32f10x.c @@ -736,37 +729,16 @@ - board.c - 1 - board\board.c - - - - - drv_rtc_ch32f10x.c - 1 - ..\Libraries\ch32_drivers\drv_rtc_ch32f10x.c - - - - - drv_hwi2c_ch32f10x.c - 1 - ..\Libraries\ch32_drivers\drv_hwi2c_ch32f10x.c - - - - - drv_gpio_ch32f10x.c - 1 - ..\Libraries\ch32_drivers\drv_gpio_ch32f10x.c + startup_ch32f10x.s + 2 + ..\Libraries\CH32F10x_StdPeriph_Driver\CMSIS\WCH\CH32F10x\Source\ARM\startup_ch32f10x.s - drv_spi_ch32f10x.c + board.c 1 - ..\Libraries\ch32_drivers\drv_spi_ch32f10x.c + board\board.c @@ -778,16 +750,16 @@ - drv_iwdt_ch32f10x.c + drv_common.c 1 - ..\Libraries\ch32_drivers\drv_iwdt_ch32f10x.c + ..\Libraries\ch32_drivers\drv_common.c - drv_common.c + drv_gpio_ch32f10x.c 1 - ..\Libraries\ch32_drivers\drv_common.c + ..\Libraries\ch32_drivers\drv_gpio_ch32f10x.c @@ -819,93 +791,93 @@ Kernel - thread.c + irq.c 1 - ..\..\..\..\src\thread.c + ..\..\..\..\src\irq.c - mem.c + scheduler.c 1 - ..\..\..\..\src\mem.c + ..\..\..\..\src\scheduler.c - idle.c + device.c 1 - ..\..\..\..\src\idle.c + ..\..\..\..\src\device.c - timer.c + components.c 1 - ..\..\..\..\src\timer.c + ..\..\..\..\src\components.c - clock.c + kservice.c 1 - ..\..\..\..\src\clock.c + ..\..\..\..\src\kservice.c - irq.c + clock.c 1 - ..\..\..\..\src\irq.c + ..\..\..\..\src\clock.c - components.c + mempool.c 1 - ..\..\..\..\src\components.c + ..\..\..\..\src\mempool.c - object.c + ipc.c 1 - ..\..\..\..\src\object.c + ..\..\..\..\src\ipc.c - mempool.c + object.c 1 - ..\..\..\..\src\mempool.c + ..\..\..\..\src\object.c - kservice.c + idle.c 1 - ..\..\..\..\src\kservice.c + ..\..\..\..\src\idle.c - device.c + mem.c 1 - ..\..\..\..\src\device.c + ..\..\..\..\src\mem.c - ipc.c + timer.c 1 - ..\..\..\..\src\ipc.c + ..\..\..\..\src\timer.c - scheduler.c + thread.c 1 - ..\..\..\..\src\scheduler.c + ..\..\..\..\src\thread.c diff --git a/bsp/wch/arm/ch32f103c8-core/rtconfig.h b/bsp/wch/arm/ch32f103c8-core/rtconfig.h index cc5ddae209d612fe0330be5dad99e0a5b66f379d..828514602400348dbb7dbac31c7024fb221198c1 100644 --- a/bsp/wch/arm/ch32f103c8-core/rtconfig.h +++ b/bsp/wch/arm/ch32f103c8-core/rtconfig.h @@ -209,18 +209,7 @@ /* On-chip Peripheral Drivers */ #define BSP_USING_UART -#define BSP_USING_UART1 #define BSP_USING_UART2 -#define BSP_USING_UART3 -#define BSP_USING_SPI -#define BSP_USING_SPI1 -#define BSP_USING_SPI2 -#define BSP_USING_HWI2C -#define BSP_USING_HWI2C1 -#define BSP_USING_HWI2C2 -#define BSP_USING_IWDT -#define BSP_USING_RTC -#define BSP_USING_RTC_LSI #define LSI_VALUE 40000 /* Onboard Peripheral Drivers */