Skip to content

Commit 6ad8440

Browse files
committed
bsp:k230:add pdma support for uart driver
Added pdma support for uart driver and a test file test_uart.c. The test uses pdma to improve uart send speed, to check if the driver works correctly. Signed-off-by: XU HU [email protected]
1 parent 3b93a78 commit 6ad8440

File tree

8 files changed

+603
-366
lines changed

8 files changed

+603
-366
lines changed

bsp/k230/.config

Lines changed: 51 additions & 176 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,10 @@ CONFIG_RT_KLIBC_USING_VSNPRINTF_LOG10_TAYLOR_TERMS=4
118118
# CONFIG_RT_UTEST_TC_USING_KLIBC is not set
119119
# end of klibc options
120120

121-
CONFIG_RT_NAME_MAX=16
121+
CONFIG_RT_NAME_MAX=8
122122
# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
123123
# CONFIG_RT_USING_NANO is not set
124-
CONFIG_RT_USING_SMART=y
124+
# CONFIG_RT_USING_SMART is not set
125125
# CONFIG_RT_USING_AMP is not set
126126
# CONFIG_RT_USING_SMP is not set
127127
CONFIG_RT_CPUS_NR=1
@@ -134,15 +134,15 @@ CONFIG_RT_TICK_PER_SECOND=1000
134134
CONFIG_RT_USING_OVERFLOW_CHECK=y
135135
CONFIG_RT_USING_HOOK=y
136136
CONFIG_RT_HOOK_USING_FUNC_PTR=y
137-
CONFIG_RT_USING_HOOKLIST=y
137+
# CONFIG_RT_USING_HOOKLIST is not set
138138
CONFIG_RT_USING_IDLE_HOOK=y
139139
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
140-
CONFIG_IDLE_THREAD_STACK_SIZE=8192
140+
CONFIG_IDLE_THREAD_STACK_SIZE=1024
141141
CONFIG_RT_USING_TIMER_SOFT=y
142142
CONFIG_RT_TIMER_THREAD_PRIO=4
143-
CONFIG_RT_TIMER_THREAD_STACK_SIZE=8192
143+
CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048
144144
# CONFIG_RT_USING_TIMER_ALL_SOFT is not set
145-
CONFIG_RT_USING_CPU_USAGE_TRACER=y
145+
# CONFIG_RT_USING_CPU_USAGE_TRACER is not set
146146

147147
#
148148
# kservice options
@@ -173,12 +173,12 @@ CONFIG_RT_USING_MESSAGEQUEUE=y
173173
# Memory Management
174174
#
175175
CONFIG_RT_USING_MEMPOOL=y
176-
# CONFIG_RT_USING_SMALL_MEM is not set
177-
CONFIG_RT_USING_SLAB=y
176+
CONFIG_RT_USING_SMALL_MEM=y
177+
# CONFIG_RT_USING_SLAB is not set
178178
# CONFIG_RT_USING_MEMHEAP is not set
179-
# CONFIG_RT_USING_SMALL_MEM_AS_HEAP is not set
179+
CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
180180
# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
181-
CONFIG_RT_USING_SLAB_AS_HEAP=y
181+
# CONFIG_RT_USING_SLAB_AS_HEAP is not set
182182
# CONFIG_RT_USING_USERHEAP is not set
183183
# CONFIG_RT_USING_NOHEAP is not set
184184
# CONFIG_RT_USING_MEMTRACE is not set
@@ -187,21 +187,20 @@ CONFIG_RT_USING_HEAP=y
187187
# end of Memory Management
188188

189189
CONFIG_RT_USING_DEVICE=y
190-
CONFIG_RT_USING_DEVICE_OPS=y
190+
# CONFIG_RT_USING_DEVICE_OPS is not set
191191
# CONFIG_RT_USING_INTERRUPT_INFO is not set
192192
# CONFIG_RT_USING_THREADSAFE_PRINTF is not set
193193
CONFIG_RT_USING_CONSOLE=y
194-
CONFIG_RT_CONSOLEBUF_SIZE=256
195-
CONFIG_RT_CONSOLE_DEVICE_NAME="uart"
194+
CONFIG_RT_CONSOLEBUF_SIZE=128
195+
CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
196196
CONFIG_RT_VER_NUM=0x50201
197-
CONFIG_RT_USING_STDC_ATOMIC=y
197+
# CONFIG_RT_USING_STDC_ATOMIC is not set
198198
CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
199199
# end of RT-Thread Kernel
200200

201201
CONFIG_ARCH_CPU_64BIT=y
202202
CONFIG_RT_USING_CACHE=y
203203
CONFIG_ARCH_MM_MMU=y
204-
CONFIG_KERNEL_VADDR_START=0xffffffc000000000
205204
CONFIG_ARCH_RISCV=y
206205
CONFIG_ARCH_RISCV_FPU=y
207206
CONFIG_ARCH_RISCV_VECTOR=y
@@ -210,22 +209,21 @@ CONFIG_ARCH_VECTOR_VLEN_128=y
210209
CONFIG_ARCH_RISCV_FPU_D=y
211210
CONFIG_ARCH_RISCV64=y
212211
CONFIG_ARCH_USING_NEW_CTX_SWITCH=y
213-
CONFIG_ARCH_REMAP_KERNEL=y
214212

215213
#
216214
# RT-Thread Components
217215
#
218216
CONFIG_RT_USING_COMPONENTS_INIT=y
219217
CONFIG_RT_USING_USER_MAIN=y
220-
CONFIG_RT_MAIN_THREAD_STACK_SIZE=8192
218+
CONFIG_RT_MAIN_THREAD_STACK_SIZE=6144
221219
CONFIG_RT_MAIN_THREAD_PRIORITY=10
222220
# CONFIG_RT_USING_LEGACY is not set
223221
CONFIG_RT_USING_MSH=y
224222
CONFIG_RT_USING_FINSH=y
225223
CONFIG_FINSH_USING_MSH=y
226224
CONFIG_FINSH_THREAD_NAME="tshell"
227225
CONFIG_FINSH_THREAD_PRIORITY=20
228-
CONFIG_FINSH_THREAD_STACK_SIZE=8192
226+
CONFIG_FINSH_THREAD_STACK_SIZE=4096
229227
CONFIG_FINSH_USING_HISTORY=y
230228
CONFIG_FINSH_HISTORY_LINES=5
231229
# CONFIG_FINSH_USING_WORD_OPERATION is not set
@@ -244,8 +242,12 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
244242
CONFIG_RT_USING_DFS=y
245243
CONFIG_DFS_USING_POSIX=y
246244
CONFIG_DFS_USING_WORKDIR=y
245+
# CONFIG_RT_USING_DFS_MNTTABLE is not set
247246
CONFIG_DFS_FD_MAX=16
248-
CONFIG_RT_USING_DFS_V2=y
247+
CONFIG_RT_USING_DFS_V1=y
248+
# CONFIG_RT_USING_DFS_V2 is not set
249+
CONFIG_DFS_FILESYSTEMS_MAX=4
250+
CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
249251
CONFIG_RT_USING_DFS_ELMFAT=y
250252

251253
#
@@ -274,23 +276,10 @@ CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
274276

275277
CONFIG_RT_USING_DFS_DEVFS=y
276278
# CONFIG_RT_USING_DFS_ROMFS is not set
277-
CONFIG_RT_USING_DFS_PTYFS=y
278-
# CONFIG_RT_USING_DFS_PROCFS is not set
279-
CONFIG_RT_USING_DFS_CROMFS=y
280-
CONFIG_RT_USING_DFS_TMPFS=y
279+
# CONFIG_RT_USING_DFS_CROMFS is not set
280+
# CONFIG_RT_USING_DFS_RAMFS is not set
281+
# CONFIG_RT_USING_DFS_TMPFS is not set
281282
# CONFIG_RT_USING_DFS_MQUEUE is not set
282-
CONFIG_RT_USING_PAGECACHE=y
283-
284-
#
285-
# page cache config
286-
#
287-
CONFIG_RT_PAGECACHE_COUNT=4096
288-
CONFIG_RT_PAGECACHE_ASPACE_COUNT=1024
289-
CONFIG_RT_PAGECACHE_PRELOAD=4
290-
CONFIG_RT_PAGECACHE_HASH_NR=1024
291-
CONFIG_RT_PAGECACHE_GC_WORK_LEVEL=90
292-
CONFIG_RT_PAGECACHE_GC_STOP_LEVEL=70
293-
# end of page cache config
294283
# end of DFS: device virtual file system
295284

296285
# CONFIG_RT_USING_FAL is not set
@@ -302,40 +291,34 @@ CONFIG_RT_PAGECACHE_GC_STOP_LEVEL=70
302291
# CONFIG_RT_USING_DEV_BUS is not set
303292
CONFIG_RT_USING_DEVICE_IPC=y
304293
CONFIG_RT_UNAMED_PIPE_NUMBER=64
305-
CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
306-
CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=8192
307-
CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
294+
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
308295
CONFIG_RT_USING_SERIAL=y
309296
CONFIG_RT_USING_SERIAL_V1=y
310297
# CONFIG_RT_USING_SERIAL_V2 is not set
311298
CONFIG_RT_SERIAL_USING_DMA=y
312299
CONFIG_RT_SERIAL_RB_BUFSZ=64
313-
CONFIG_RT_USING_SERIAL_BYPASS=y
300+
# CONFIG_RT_USING_SERIAL_BYPASS is not set
314301
# CONFIG_RT_USING_CAN is not set
315-
CONFIG_RT_USING_CPUTIME=y
316-
CONFIG_RT_USING_CPUTIME_RISCV=y
317-
CONFIG_CPUTIME_TIMER_FREQ=25000000
302+
# CONFIG_RT_USING_CPUTIME is not set
318303
# CONFIG_RT_USING_I2C is not set
319304
# CONFIG_RT_USING_PHY is not set
320305
# CONFIG_RT_USING_PHY_V2 is not set
321306
# CONFIG_RT_USING_ADC is not set
322307
# CONFIG_RT_USING_DAC is not set
323-
CONFIG_RT_USING_NULL=y
324-
CONFIG_RT_USING_ZERO=y
325-
CONFIG_RT_USING_RANDOM=y
308+
# CONFIG_RT_USING_NULL is not set
309+
# CONFIG_RT_USING_ZERO is not set
310+
# CONFIG_RT_USING_RANDOM is not set
326311
# CONFIG_RT_USING_PWM is not set
327312
# CONFIG_RT_USING_PULSE_ENCODER is not set
328313
# CONFIG_RT_USING_INPUT_CAPTURE is not set
329314
# CONFIG_RT_USING_MTD_NOR is not set
330315
# CONFIG_RT_USING_MTD_NAND is not set
331316
# CONFIG_RT_USING_PM is not set
332-
CONFIG_RT_USING_RTC=y
333-
# CONFIG_RT_USING_ALARM is not set
334-
# CONFIG_RT_USING_SOFT_RTC is not set
317+
# CONFIG_RT_USING_RTC is not set
335318
CONFIG_RT_USING_SDIO=y
336-
CONFIG_RT_SDIO_STACK_SIZE=8192
319+
CONFIG_RT_SDIO_STACK_SIZE=512
337320
CONFIG_RT_SDIO_THREAD_PRIORITY=15
338-
CONFIG_RT_MMCSD_STACK_SIZE=8192
321+
CONFIG_RT_MMCSD_STACK_SIZE=1024
339322
CONFIG_RT_MMCSD_THREAD_PRIORITY=22
340323
CONFIG_RT_MMCSD_MAX_PARTITION=16
341324
# CONFIG_RT_SDIO_DEBUG is not set
@@ -359,7 +342,7 @@ CONFIG_RT_BLK_PARTITION_EFI=y
359342

360343
# CONFIG_RT_USING_VIRTIO is not set
361344
CONFIG_RT_USING_PIN=y
362-
CONFIG_RT_USING_KTIME=y
345+
# CONFIG_RT_USING_KTIME is not set
363346
# CONFIG_RT_USING_HWTIMER is not set
364347
# CONFIG_RT_USING_CHERRYUSB is not set
365348
# end of Device Drivers
@@ -386,23 +369,10 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
386369
#
387370
# POSIX (Portable Operating System Interface) layer
388371
#
389-
CONFIG_RT_USING_POSIX_FS=y
390-
CONFIG_RT_USING_POSIX_DEVIO=y
391-
CONFIG_RT_USING_POSIX_STDIO=y
392-
CONFIG_RT_USING_POSIX_POLL=y
393-
CONFIG_RT_USING_POSIX_SELECT=y
394-
# CONFIG_RT_USING_POSIX_EVENTFD is not set
395-
CONFIG_RT_USING_POSIX_EPOLL=y
396-
CONFIG_RT_USING_POSIX_SIGNALFD=y
397-
CONFIG_RT_SIGNALFD_MAX_NUM=10
398-
# CONFIG_RT_USING_POSIX_TIMERFD is not set
399-
CONFIG_RT_USING_POSIX_SOCKET=y
400-
CONFIG_RT_USING_POSIX_TERMIOS=y
401-
# CONFIG_RT_USING_POSIX_AIO is not set
402-
# CONFIG_RT_USING_POSIX_MMAN is not set
403-
CONFIG_RT_USING_POSIX_DELAY=y
404-
CONFIG_RT_USING_POSIX_CLOCK=y
405-
CONFIG_RT_USING_POSIX_TIMER=y
372+
# CONFIG_RT_USING_POSIX_FS is not set
373+
# CONFIG_RT_USING_POSIX_DELAY is not set
374+
# CONFIG_RT_USING_POSIX_CLOCK is not set
375+
# CONFIG_RT_USING_POSIX_TIMER is not set
406376
# CONFIG_RT_USING_PTHREADS is not set
407377
# CONFIG_RT_USING_MODULE is not set
408378

@@ -425,89 +395,9 @@ CONFIG_RT_USING_POSIX_TIMER=y
425395
#
426396
# Network
427397
#
428-
CONFIG_RT_USING_SAL=y
429-
CONFIG_SAL_INTERNET_CHECK=y
430-
431-
#
432-
# Docking with protocol stacks
433-
#
434-
CONFIG_SAL_USING_LWIP=y
435-
# CONFIG_SAL_USING_AT is not set
436-
# CONFIG_SAL_USING_TLS is not set
437-
# end of Docking with protocol stacks
438-
439-
CONFIG_SAL_USING_POSIX=y
440-
CONFIG_RT_USING_NETDEV=y
441-
CONFIG_NETDEV_USING_IFCONFIG=y
442-
CONFIG_NETDEV_USING_PING=y
443-
CONFIG_NETDEV_USING_NETSTAT=y
444-
CONFIG_NETDEV_USING_AUTO_DEFAULT=y
445-
# CONFIG_NETDEV_USING_LINK_STATUS_CALLBACK is not set
446-
# CONFIG_NETDEV_USING_IPV6 is not set
447-
CONFIG_NETDEV_IPV4=1
448-
CONFIG_NETDEV_IPV6=0
449-
CONFIG_RT_USING_LWIP=y
450-
# CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
451-
# CONFIG_RT_USING_LWIP141 is not set
452-
# CONFIG_RT_USING_LWIP203 is not set
453-
CONFIG_RT_USING_LWIP212=y
454-
# CONFIG_RT_USING_LWIP_LATEST is not set
455-
CONFIG_RT_USING_LWIP_VER_NUM=0x20102
456-
# CONFIG_RT_USING_LWIP_IPV6 is not set
457-
CONFIG_RT_LWIP_MEM_ALIGNMENT=8
458-
CONFIG_RT_LWIP_IGMP=y
459-
CONFIG_RT_LWIP_ICMP=y
460-
# CONFIG_RT_LWIP_SNMP is not set
461-
CONFIG_RT_LWIP_DNS=y
462-
CONFIG_RT_LWIP_DHCP=y
463-
CONFIG_IP_SOF_BROADCAST=1
464-
CONFIG_IP_SOF_BROADCAST_RECV=1
465-
466-
#
467-
# Static IPv4 Address
468-
#
469-
CONFIG_RT_LWIP_IPADDR="192.168.1.30"
470-
CONFIG_RT_LWIP_GWADDR="192.168.1.1"
471-
CONFIG_RT_LWIP_MSKADDR="255.255.255.0"
472-
# end of Static IPv4 Address
473-
474-
CONFIG_RT_LWIP_UDP=y
475-
CONFIG_RT_LWIP_TCP=y
476-
CONFIG_RT_LWIP_RAW=y
477-
# CONFIG_RT_LWIP_PPP is not set
478-
CONFIG_RT_MEMP_NUM_NETCONN=8
479-
CONFIG_RT_LWIP_PBUF_NUM=16
480-
CONFIG_RT_LWIP_RAW_PCB_NUM=4
481-
CONFIG_RT_LWIP_UDP_PCB_NUM=4
482-
CONFIG_RT_LWIP_TCP_PCB_NUM=4
483-
CONFIG_RT_LWIP_TCP_SEG_NUM=40
484-
CONFIG_RT_LWIP_TCP_SND_BUF=8196
485-
CONFIG_RT_LWIP_TCP_WND=8196
486-
CONFIG_RT_LWIP_TCPTHREAD_PRIORITY=10
487-
CONFIG_RT_LWIP_TCPTHREAD_MBOX_SIZE=8
488-
CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=8192
489-
# CONFIG_LWIP_NO_RX_THREAD is not set
490-
# CONFIG_LWIP_NO_TX_THREAD is not set
491-
CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
492-
CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=8192
493-
CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
494-
# CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
495-
CONFIG_LWIP_NETIF_STATUS_CALLBACK=1
496-
CONFIG_LWIP_NETIF_LINK_CALLBACK=1
497-
CONFIG_RT_LWIP_NETIF_NAMESIZE=6
498-
CONFIG_SO_REUSE=1
499-
CONFIG_LWIP_SO_RCVTIMEO=1
500-
CONFIG_LWIP_SO_SNDTIMEO=1
501-
CONFIG_LWIP_SO_RCVBUF=1
502-
CONFIG_LWIP_SO_LINGER=0
503-
# CONFIG_RT_LWIP_NETIF_LOOPBACK is not set
504-
CONFIG_LWIP_NETIF_LOOPBACK=0
505-
# CONFIG_RT_LWIP_STATS is not set
506-
# CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
507-
CONFIG_RT_LWIP_USING_PING=y
508-
# CONFIG_LWIP_USING_DHCPD is not set
509-
# CONFIG_RT_LWIP_ENABLE_USER_HOOKS is not set
510-
# CONFIG_RT_LWIP_DEBUG is not set
398+
# CONFIG_RT_USING_SAL is not set
399+
# CONFIG_RT_USING_NETDEV is not set
400+
# CONFIG_RT_USING_LWIP is not set
511401
# CONFIG_RT_USING_AT is not set
512402
# end of Network
513403

@@ -525,7 +415,7 @@ CONFIG_RT_LWIP_USING_PING=y
525415
# CONFIG_RT_USING_ULOG is not set
526416
# CONFIG_RT_USING_UTEST is not set
527417
# CONFIG_RT_USING_VAR_EXPORT is not set
528-
CONFIG_RT_USING_RESOURCE_ID=y
418+
# CONFIG_RT_USING_RESOURCE_ID is not set
529419
CONFIG_RT_USING_ADT=y
530420
CONFIG_RT_USING_ADT_AVL=y
531421
CONFIG_RT_USING_ADT_BITMAP=y
@@ -552,22 +442,6 @@ CONFIG_RT_PAGE_MAX_ORDER=11
552442
# end of Debugging
553443
# end of Memory management
554444

555-
CONFIG_RT_USING_LWP=y
556-
CONFIG_LWP_DEBUG=y
557-
CONFIG_LWP_DEBUG_INIT=y
558-
CONFIG_LWP_USING_RUNTIME=y
559-
CONFIG_RT_LWP_MAX_NR=30
560-
CONFIG_LWP_TASK_STACK_SIZE=16384
561-
CONFIG_RT_CH_MSG_MAX_NR=1024
562-
CONFIG_LWP_TID_MAX_NR=64
563-
CONFIG_RT_LWP_SHM_MAX_NR=64
564-
CONFIG_RT_USING_LDSO=y
565-
# CONFIG_ELF_DEBUG_ENABLE is not set
566-
# CONFIG_ELF_LOAD_RANDOMIZE is not set
567-
CONFIG_LWP_USING_TERMINAL=y
568-
CONFIG_LWP_PTY_MAX_PARIS_LIMIT=64
569-
CONFIG_RT_USING_VDSO=y
570-
571445
#
572446
# Using USB legacy version
573447
#
@@ -1318,13 +1192,7 @@ CONFIG_RT_USING_VDSO=y
13181192
# CONFIG_PKG_USING_MULTIBUTTON is not set
13191193
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
13201194
# CONFIG_PKG_USING_CANFESTIVAL is not set
1321-
CONFIG_PKG_USING_ZLIB=y
1322-
CONFIG_PKG_ZLIB_PATH="/packages/misc/zlib"
1323-
# CONFIG_ZLIB_USING_SAMPLE is not set
1324-
# CONFIG_PKG_USING_ZLIB_V100 is not set
1325-
# CONFIG_PKG_USING_ZLIB_V123 is not set
1326-
CONFIG_PKG_USING_ZLIB_LATEST_VERSION=y
1327-
CONFIG_PKG_ZLIB_VER="latest"
1195+
# CONFIG_PKG_USING_ZLIB is not set
13281196
# CONFIG_PKG_USING_MINIZIP is not set
13291197
# CONFIG_PKG_USING_HEATSHRINK is not set
13301198
# CONFIG_PKG_USING_DSTR is not set
@@ -1594,6 +1462,13 @@ CONFIG_PKG_ZLIB_VER="latest"
15941462
# CONFIG_BSP_USING_ADC is not set
15951463
# CONFIG_BSP_USING_TS is not set
15961464
# CONFIG_BSP_USING_PWM is not set
1465+
CONFIG_BSP_USING_UART=y
1466+
CONFIG_BSP_UART_USING_DMA=y
1467+
CONFIG_BSP_USING_UART0=y
1468+
# CONFIG_BSP_USING_UART1 is not set
1469+
# CONFIG_BSP_USING_UART2 is not set
1470+
# CONFIG_BSP_USING_UART3 is not set
1471+
# CONFIG_BSP_USING_UART4 is not set
15971472
CONFIG_BSP_USING_HARDLOCK=y
15981473
CONFIG_BSP_USING_SDIO=y
15991474
CONFIG_BSP_USING_SDIO0=y
@@ -1608,7 +1483,7 @@ CONFIG_BSP_SD_MNT_DEVNAME="sd0p1"
16081483
# end of Drivers Configuration
16091484

16101485
CONFIG_BOARD_C908=y
1611-
CONFIG___STACKSIZE__=65536
1486+
CONFIG___STACKSIZE__=4096
16121487
CONFIG_BSP_ROOTFS_TYPE_ELMFAT=y
16131488
# CONFIG_BSP_ROOTFS_TYPE_CROMFS is not set
16141489
# CONFIG_BSP_RISCV_FPU_SOFT is not set

0 commit comments

Comments
 (0)