Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions bsp/gd32/arm/gd32527I-eval/.ci/attachconfig/ci.attachconfig.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
utest.spi:
kconfig:
- CONFIG_BSP_USING_SPI=y
- CONFIG_BSP_USING_SPI5=y
- CONFIG_RT_USING_UTESTCASES=y
- CONFIG_RT_CONSOLEBUF_SIZE=256
- CONFIG_RT_UTEST_SPI_LOOPBACK=y
- CONFIG_RT_UTEST_SPI_LOOPBACK_BUS_NAME="spi5"
- CONFIG_RT_UTEST_SPI_LOOPBACK_DEV_NAME="spi_loop"
- CONFIG_RT_UTEST_SPI_LOOPBACK_DATA_SIZE=512
- CONFIG_RT_UTEST_SPI_LOOPBACK_MAX_HZ=10000000
- CONFIG_RT_UTEST_SPI_LOOPBACK_API_SMOKE=y
- CONFIG_RT_UTEST_SPI_FLASH=y
- CONFIG_RT_UTEST_SPI_FLASH_SPI_DEV_NAME="spi50"
- CONFIG_RT_UTEST_SPI_FLASH_BUS_NAME="spi5"
- CONFIG_RT_UTEST_SPI_FLASH_CS_PIN=136
- CONFIG_RT_UTEST_SPI_FLASH_DEV_NAME="GD25Q16B"
- CONFIG_RT_UTEST_SPI_FLASH_MAX_HZ=10000000
7 changes: 7 additions & 0 deletions bsp/gd32/arm/gd32527I-eval/board/linker_scripts/link.ld
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,13 @@ SECTIONS
__vsymtab_end = .;
. = ALIGN(4);

/* section information for utest */
. = ALIGN(4);
__rt_utest_tc_tab_start = .;
KEEP(*(UtestTcTab))
__rt_utest_tc_tab_end = .;
. = ALIGN(4);

/* section information for initial. */
. = ALIGN(4);
__rt_init_start = .;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,26 @@ utest.pin:
- CONFIG_RT_USING_UTESTCASES=y
- CONFIG_RT_CONSOLEBUF_SIZE=256
- CONFIG_RT_UTEST_PIN=y
utest.spi:
<<: *scons
kconfig:
- CONFIG_BSP_USING_SPI=y
- CONFIG_BSP_USING_SPI1=y
- CONFIG_BSP_USING_SPI2=y
- CONFIG_RT_USING_UTESTCASES=y
- CONFIG_RT_CONSOLEBUF_SIZE=256
- CONFIG_RT_UTEST_SPI_LOOPBACK=y
- CONFIG_RT_UTEST_SPI_LOOPBACK_BUS_NAME="spi1"
- CONFIG_RT_UTEST_SPI_LOOPBACK_DEV_NAME="spi_loop"
- CONFIG_RT_UTEST_SPI_LOOPBACK_DATA_SIZE=512
- CONFIG_RT_UTEST_SPI_LOOPBACK_MAX_HZ=10000000
- CONFIG_RT_UTEST_SPI_LOOPBACK_API_SMOKE=y
- CONFIG_RT_UTEST_SPI_FLASH=y
- CONFIG_RT_UTEST_SPI_FLASH_SPI_DEV_NAME="spi20"
- CONFIG_RT_UTEST_SPI_FLASH_BUS_NAME="spi2"
- CONFIG_RT_UTEST_SPI_FLASH_CS_PIN=28
- CONFIG_RT_UTEST_SPI_FLASH_DEV_NAME="W25Q64"
- CONFIG_RT_UTEST_SPI_FLASH_MAX_HZ=10000000
# ------ component CI ------
component.cherryusb_cdc:
kconfig:
Expand Down
6 changes: 6 additions & 0 deletions components/drivers/spi/SConscript
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from building import *
from gcc import *
import os
import rtconfig

cwd = GetCurrentDir()
Expand Down Expand Up @@ -46,4 +47,9 @@ src += src_device

group = DefineGroup('DeviceDrivers', src, depend = ['RT_USING_SPI'], CPPPATH = CPPPATH, LOCAL_CFLAGS = LOCAL_CFLAGS)

list = os.listdir(cwd)
for item in list:
if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
group = group + SConscript(os.path.join(item, 'SConscript'))

Return('group')
112 changes: 112 additions & 0 deletions components/drivers/spi/utest/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
menu "SPI Test"

config RT_UTEST_SPI_LOOPBACK
bool "SPI MOSI/MISO Loopback Test"
select RT_USING_SPI
default n
help
This test validates full-duplex loopback data with sendrecv8,
transfer and transfer_message over length and clock matrices.
The hardware transfer mode, such as polling, interrupt or DMA, is
selected by the BSP SPI driver configuration.

if RT_UTEST_SPI_LOOPBACK

config RT_UTEST_SPI_LOOPBACK_BUS_NAME
string "SPI bus name for loopback test"
default "spi2"

config RT_UTEST_SPI_LOOPBACK_DEV_NAME
string "Temporary SPI device name for loopback test"
default "spi_loop"

config RT_UTEST_SPI_LOOPBACK_DATA_SIZE
int "SPI loopback maximum test data size"
range 1 65535
default 512

config RT_UTEST_SPI_LOOPBACK_MAX_HZ
int "SPI loopback maximum clock frequency (Hz)"
range 1 100000000
default 10000000
help
The test automatically builds the clock matrix from standard SPI
frequencies up to this value, and always includes this maximum value.

config RT_UTEST_SPI_LOOPBACK_API_SMOKE
bool "Enable SPI TX-only/RX-only API smoke test"
default n
help
Enable this to smoke-test TX-only and RX-only transfer APIs by return
length. These transfers do not validate MOSI/MISO loopback data and
may be unsupported or unstable on some BSP SPI controllers.

config RT_UTEST_SPI_LOOPBACK_TIMEOUT
int "SPI loopback test timeout (s)"
range 1 3600
default 60

endif

config RT_UTEST_SPI_FLASH
bool "SPI Flash SFUD Read/Write Test"
select RT_USING_SPI
select RT_USING_SFUD
select RT_SFUD_USING_SFDP
select RT_SFUD_USING_FLASH_INFO_TABLE
select RT_USING_HEAP
default n

if RT_UTEST_SPI_FLASH

config RT_UTEST_SPI_FLASH_SPI_DEV_NAME
string "SPI device name for SFUD flash"
default "spi20"
help
The SPI device that connects to the flash, such as spi20. If it does
not exist yet, the test attaches it to the configured SPI bus and CS pin.

config RT_UTEST_SPI_FLASH_BUS_NAME
string "SPI bus name for flash device attach"
default "spi2"
help
The SPI bus used when the test needs to attach the SPI flash device.

config RT_UTEST_SPI_FLASH_CS_PIN
int "SPI flash CS pin index"
range -1 32767
default -1
help
Use the RT-Thread pin index used by the BSP, such as a GET_PIN() value
on STM32. -1 means PIN_NONE.

config RT_UTEST_SPI_FLASH_DEV_NAME
string "SFUD flash model/device name"
default "W25Q64"
help
This is the SFUD flash device name used to find or register the flash,
and is usually set to the board flash model name, such as W25Q64 or
W25Q128. SFUD still verifies the actual chip by JEDEC ID and SFDP or
its flash information table when probing.

config RT_UTEST_SPI_FLASH_MAX_HZ
int "SPI flash test maximum clock frequency (Hz)"
range 1 50000000
default 10000000
help
The SPI clock used while probing and testing the flash. Keep this
conservative for board-level utests because wiring, pinmux and flash
parts may vary.

config RT_UTEST_SPI_FLASH_TEST_OFFSET
hex "SPI flash test offset"
default 0x0

config RT_UTEST_SPI_FLASH_TEST_SIZE
int "SPI flash test data size"
range 1 4096
default 256

endif

endmenu
16 changes: 16 additions & 0 deletions components/drivers/spi/utest/SConscript
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Import('rtconfig')
from building import *

cwd = GetCurrentDir()
src = []
CPPPATH = [cwd, cwd + '/..', cwd + '/../sfud/inc']

if GetDepend(['RT_UTEST_SPI_LOOPBACK']):
src += ['spi_loopback_tc.c']

if GetDepend(['RT_UTEST_SPI_FLASH']):
src += ['spi_flash_tc.c']

group = DefineGroup('utestcases', src, depend = ['RT_USING_UTESTCASES', 'RT_USING_SPI'], CPPPATH = CPPPATH)

Return('group')
Loading
Loading