diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index 91a3f88a1a..5f577d0c4a 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 07a651fa19..ee113ca635 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 327fe0db7c..8d19eb1108 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 10104959e5..f1d3773fa6 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 b00c028f60..9153f0f165 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 @@ -614,6 +614,13 @@ ..\..\..\..\components\drivers\i2c\i2c_dev.c + + + waitqueue.c + 1 + ..\..\..\..\components\drivers\ipc\waitqueue.c + + ringblk_buf.c @@ -621,27 +628,6 @@ ..\..\..\..\components\drivers\ipc\ringblk_buf.c - - - workqueue.c - 1 - ..\..\..\..\components\drivers\ipc\workqueue.c - - - - - completion.c - 1 - ..\..\..\..\components\drivers\ipc\completion.c - - - - - dataqueue.c - 1 - ..\..\..\..\components\drivers\ipc\dataqueue.c - - pipe.c @@ -651,9 +637,9 @@ - waitqueue.c + completion.c 1 - ..\..\..\..\components\drivers\ipc\waitqueue.c + ..\..\..\..\components\drivers\ipc\completion.c @@ -663,6 +649,20 @@ ..\..\..\..\components\drivers\ipc\ringbuffer.c + + + dataqueue.c + 1 + ..\..\..\..\components\drivers\ipc\dataqueue.c + + + + + workqueue.c + 1 + ..\..\..\..\components\drivers\ipc\workqueue.c + + pin.c @@ -722,16 +722,16 @@ Drivers - startup_ch32f10x.s - 2 - ..\Libraries\CH32F10x_StdPeriph_Driver\CMSIS\WCH\CH32F10x\Source\ARM\startup_ch32f10x.s + system_ch32f10x.c + 1 + board\system_ch32f10x.c - system_ch32f10x.c - 1 - board\system_ch32f10x.c + startup_ch32f10x.s + 2 + ..\Libraries\CH32F10x_StdPeriph_Driver\CMSIS\WCH\CH32F10x\Source\ARM\startup_ch32f10x.s @@ -741,34 +741,6 @@ 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 - - - - - drv_spi_ch32f10x.c - 1 - ..\Libraries\ch32_drivers\drv_spi_ch32f10x.c - - drv_uart_ch32f10x.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 @@ -817,41 +789,6 @@ Kernel - - - thread.c - 1 - ..\..\..\..\src\thread.c - - - - - mem.c - 1 - ..\..\..\..\src\mem.c - - - - - idle.c - 1 - ..\..\..\..\src\idle.c - - - - - timer.c - 1 - ..\..\..\..\src\timer.c - - - - - clock.c - 1 - ..\..\..\..\src\clock.c - - irq.c @@ -861,30 +798,9 @@ - components.c + scheduler.c 1 - ..\..\..\..\src\components.c - - - - - object.c - 1 - ..\..\..\..\src\object.c - - - - - mempool.c - 1 - ..\..\..\..\src\mempool.c - - - - - kservice.c - 1 - ..\..\..\..\src\kservice.c + ..\..\..\..\src\scheduler.c @@ -894,6 +810,34 @@ ..\..\..\..\src\device.c + + + components.c + 1 + ..\..\..\..\src\components.c + + + + + kservice.c + 1 + ..\..\..\..\src\kservice.c + + + + + clock.c + 1 + ..\..\..\..\src\clock.c + + + + + mempool.c + 1 + ..\..\..\..\src\mempool.c + + ipc.c @@ -903,9 +847,37 @@ - scheduler.c + object.c 1 - ..\..\..\..\src\scheduler.c + ..\..\..\..\src\object.c + + + + + idle.c + 1 + ..\..\..\..\src\idle.c + + + + + mem.c + 1 + ..\..\..\..\src\mem.c + + + + + timer.c + 1 + ..\..\..\..\src\timer.c + + + + + thread.c + 1 + ..\..\..\..\src\thread.c diff --git a/bsp/wch/arm/ch32f103c8-core/rtconfig.h b/bsp/wch/arm/ch32f103c8-core/rtconfig.h index cc5ddae209..8285146024 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 */