mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-10-07 00:59:00 +08:00
bsp: k230: add pdma driver support
This commit introduces the PDMA (Peripheral DMA) driver for K230 SoC, providing essential DMA capabilities for peripheral data transfers. Key features implemented: 1. PDMA channel request/release management 2. Channel start/stop control 3. Interrupt callback registration 4. Data transfer between device ports and DDR memory The driver includes: - Core driver implementation (drv_pdma.c/h) - Build system support (SConscript) - Basic test cases (test_pdma.c) Tested with: - PDMA channel request/release - DDR to UART TX FIFO transfers - UART RX FIFO to DDR transfers Signed-off-by: eatvector <2302147681@qq.com>
This commit is contained in:
@@ -228,6 +228,7 @@ CONFIG_FINSH_THREAD_PRIORITY=20
|
||||
CONFIG_FINSH_THREAD_STACK_SIZE=8192
|
||||
CONFIG_FINSH_USING_HISTORY=y
|
||||
CONFIG_FINSH_HISTORY_LINES=5
|
||||
# CONFIG_FINSH_USING_WORD_OPERATION is not set
|
||||
CONFIG_FINSH_USING_SYMTAB=y
|
||||
CONFIG_FINSH_CMD_SIZE=80
|
||||
CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
|
||||
@@ -710,6 +711,7 @@ CONFIG_RT_USING_VDSO=y
|
||||
# CONFIG_PKG_USING_QMODBUS is not set
|
||||
# CONFIG_PKG_USING_PNET is not set
|
||||
# CONFIG_PKG_USING_OPENER is not set
|
||||
# CONFIG_PKG_USING_FREEMQTT is not set
|
||||
# end of IoT - internet of things
|
||||
|
||||
#
|
||||
@@ -937,6 +939,7 @@ CONFIG_RT_USING_VDSO=y
|
||||
# CONFIG_PKG_USING_RMP is not set
|
||||
# CONFIG_PKG_USING_R_RHEALSTONE is not set
|
||||
# CONFIG_PKG_USING_HEARTBEAT is not set
|
||||
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
|
||||
# end of system packages
|
||||
|
||||
#
|
||||
@@ -1061,6 +1064,8 @@ CONFIG_RT_USING_VDSO=y
|
||||
#
|
||||
# HC32 DDL Drivers
|
||||
#
|
||||
# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set
|
||||
# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set
|
||||
# end of HC32 DDL Drivers
|
||||
|
||||
#
|
||||
@@ -1074,6 +1079,21 @@ CONFIG_RT_USING_VDSO=y
|
||||
# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set
|
||||
# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set
|
||||
# end of NXP HAL & SDK Drivers
|
||||
|
||||
#
|
||||
# NUVOTON Drivers
|
||||
#
|
||||
# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set
|
||||
# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set
|
||||
# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set
|
||||
# end of NUVOTON Drivers
|
||||
|
||||
#
|
||||
# GD32 Drivers
|
||||
#
|
||||
# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set
|
||||
# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set
|
||||
# end of GD32 Drivers
|
||||
# end of HAL & SDK Drivers
|
||||
|
||||
#
|
||||
@@ -1149,6 +1169,7 @@ CONFIG_RT_USING_VDSO=y
|
||||
# CONFIG_PKG_USING_STHS34PF80 is not set
|
||||
# CONFIG_PKG_USING_P3T1755 is not set
|
||||
# CONFIG_PKG_USING_QMI8658 is not set
|
||||
# CONFIG_PKG_USING_ICM20948 is not set
|
||||
# end of sensors drivers
|
||||
|
||||
#
|
||||
@@ -1243,6 +1264,7 @@ CONFIG_RT_USING_VDSO=y
|
||||
# CONFIG_PKG_USING_SERVO is not set
|
||||
# CONFIG_PKG_USING_SEAN_WS2812B is not set
|
||||
# CONFIG_PKG_USING_IC74HC165 is not set
|
||||
# CONFIG_PKG_USING_IST8310 is not set
|
||||
# CONFIG_PKG_USING_SPI_TOOLS is not set
|
||||
# end of peripheral libraries and drivers
|
||||
|
||||
@@ -1601,6 +1623,7 @@ CONFIG_BSP_USING_SDIO0=y
|
||||
CONFIG_BSP_SD_MNT_DEVNAME="sd0p1"
|
||||
# CONFIG_BSP_USING_TIMERS is not set
|
||||
# CONFIG_BSP_USING_WDT is not set
|
||||
# CONFIG_BSP_USING_PDMA is not set
|
||||
# CONFIG_BSP_UTEST_DRIVERS is not set
|
||||
# end of Drivers Configuration
|
||||
|
||||
|
||||
@@ -107,6 +107,45 @@ menu "Drivers Configuration"
|
||||
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_PDMA
|
||||
bool "Enable PDMA"
|
||||
select RT_USING_PDMA
|
||||
default n
|
||||
|
||||
if BSP_USING_PDMA
|
||||
config BSP_USING_PDMA_CHANNEL0
|
||||
bool "Enable PDMA Channel 0"
|
||||
default n
|
||||
|
||||
config BSP_USING_PDMA_CHANNEL1
|
||||
bool "Enable PDMA Channel 1"
|
||||
default n
|
||||
|
||||
config BSP_USING_PDMA_CHANNEL2
|
||||
bool "Enable PDMA Channel 2"
|
||||
default n
|
||||
|
||||
config BSP_USING_PDMA_CHANNEL3
|
||||
bool "Enable PDMA Channel 3"
|
||||
default n
|
||||
|
||||
config BSP_USING_PDMA_CHANNEL4
|
||||
bool "Enable PDMA Channel 4"
|
||||
default n
|
||||
|
||||
config BSP_USING_PDMA_CHANNEL5
|
||||
bool "Enable PDMA Channel 5"
|
||||
default n
|
||||
|
||||
config BSP_USING_PDMA_CHANNEL6
|
||||
bool "Enable PDMA Channel 6"
|
||||
default n
|
||||
|
||||
config BSP_USING_PDMA_CHANNEL7
|
||||
bool "Enable PDMA Channel 7"
|
||||
default n
|
||||
endif
|
||||
|
||||
config BSP_UTEST_DRIVERS
|
||||
bool "Enable drivers utest"
|
||||
select RT_USING_UTEST
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# RT-Thread building script for component
|
||||
|
||||
from building import *
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
src = Glob('*.c')
|
||||
CPPPATH = [cwd]
|
||||
|
||||
group = DefineGroup('PDMA', src, depend = [''], CPPPATH = CPPPATH)
|
||||
|
||||
Return('group')
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -17,7 +17,10 @@ if GetDepend('RT_UTEST_USING_ALL_CASES') or GetDepend('BSP_UTEST_DRIVERS'):
|
||||
|
||||
if GetDepend('BSP_USING_PWM'):
|
||||
src += ['test_pwm.c']
|
||||
|
||||
|
||||
if GetDepend('BSP_USING_PDMA'):
|
||||
src += ['test_pdma.c']
|
||||
|
||||
group = DefineGroup('utestcases', src, depend = [''])
|
||||
|
||||
Return('group')
|
||||
File diff suppressed because it is too large
Load Diff
@@ -494,6 +494,14 @@
|
||||
/* NXP HAL & SDK Drivers */
|
||||
|
||||
/* end of NXP HAL & SDK Drivers */
|
||||
|
||||
/* NUVOTON Drivers */
|
||||
|
||||
/* end of NUVOTON Drivers */
|
||||
|
||||
/* GD32 Drivers */
|
||||
|
||||
/* end of GD32 Drivers */
|
||||
/* end of HAL & SDK Drivers */
|
||||
|
||||
/* sensors drivers */
|
||||
|
||||
Reference in New Issue
Block a user