summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbernard <[email protected]>2017-01-31 11:54:12 +0800
committerbernard <[email protected]>2017-01-31 11:54:12 +0800
commitd692001fd576c68942a1eb7cad18974d07c8dc7a (patch)
tree199c9826e5be5dc7ecea21f4ff894eced2b145b4
parentcb61d1ffbc9d1d27328c52de49ded58388750ba4 (diff)
[tools] Add KConfig files.
-rw-r--r--Kconfig2
-rw-r--r--components/KConfig13
-rw-r--r--components/dfs/KConfig77
-rw-r--r--components/drivers/KConfig90
-rw-r--r--components/finsh/KConfig43
-rw-r--r--components/libc/KConfig11
-rw-r--r--src/Kconfig156
-rw-r--r--tools/mkrtconfig.py50
8 files changed, 442 insertions, 0 deletions
diff --git a/Kconfig b/Kconfig
new file mode 100644
index 0000000000..ac17c10708
--- /dev/null
+++ b/Kconfig
@@ -0,0 +1,2 @@
+source "$RTT_DIR/src/KConfig"
+source "$RTT_DIR/components/KConfig"
diff --git a/components/KConfig b/components/KConfig
new file mode 100644
index 0000000000..5747befe3a
--- /dev/null
+++ b/components/KConfig
@@ -0,0 +1,13 @@
+menu "RT-Thread Components"
+
+source "$RTT_DIR/components/finsh/KConfig"
+
+source "$RTT_DIR/components/dfs/KConfig"
+
+source "$RTT_DIR/components/drivers/KConfig"
+
+source "$RTT_DIR/components/libc/KConfig"
+
+source "$RTT_DIR/components/net/KConfig"
+
+endmenu
diff --git a/components/dfs/KConfig b/components/dfs/KConfig
new file mode 100644
index 0000000000..6de6d05ea8
--- /dev/null
+++ b/components/dfs/KConfig
@@ -0,0 +1,77 @@
+menu "Device virtual file system"
+
+config RT_USING_DFS
+ bool "Using device virtual file system"
+ default y
+ help
+ The device file system is a light weight virtual file system.
+
+if RT_USING_DFS
+ config DFS_USING_WORKDIR
+ bool "Using working directory"
+ default y
+
+ config DFS_FILESYSTEMS_MAX
+ int "The maximal number of mounted file system"
+ default 2
+
+ config DFS_FD_MAX
+ int "The maximal number of opened files"
+ default 4
+
+ config RT_USING_DFS_ELMFAT
+ bool "Enable elm-chan fatfs"
+ default y
+ help
+ FatFs is a generic FAT/exFAT file system module for small embedded systems.
+ if RT_USING_DFS_ELMFAT
+ config RT_DFS_ELM_CODE_PAGE
+ int "OEM code page"
+ default 437
+
+ config RT_DFS_ELM_MAX_LFN
+ int "Maximal size of file name length"
+ default 256
+
+ config RT_DFS_ELM_DRIVES
+ int "Number of volumes (logical drives) to be used."
+ default 2
+
+ config RT_DFS_ELM_MAX_SECTOR_SIZE
+ int "Maximum sector size to be handled."
+ default 512
+ help
+ if you use some spi nor flash for fatfs, please set this the erase sector size, for example 4096.
+
+ config RT_DFS_ELM_USE_ERASE
+ bool "Enable sector erase feature"
+ default n
+
+ config RT_DFS_ELM_REENTRANT
+ bool "Enable the reentrancy (thread safe) of the FatFs module"
+ default y
+ endif
+
+ config RT_USING_DFS_DEVFS
+ bool "Using devfs for device objects"
+ default y
+
+ config RT_USING_DFS_NET
+ bool "Enable BSD socket operated by file system API"
+ default n
+ help
+ Let BSD socket operated by file system API, such as read/write and involveed in select/poll POSIX APIs.
+
+ config RT_USING_DFS_NFS
+ bool "Using NFS v3 client file system"
+ default n
+
+ if RT_USING_DFS_NFS
+ config RT_NFS_HOST_EXPORT
+ string "NFSv3 host export"
+ default "192.168.1.5:/"
+ endif
+
+endif
+
+endmenu
diff --git a/components/drivers/KConfig b/components/drivers/KConfig
new file mode 100644
index 0000000000..b72d7d7162
--- /dev/null
+++ b/components/drivers/KConfig
@@ -0,0 +1,90 @@
+menu "Device Drivers"
+
+config RT_USING_SERIAL
+ bool "Using serial device drivers"
+ default y
+
+config RT_USING_CAN
+ bool "Using CAN device drivers"
+ default n
+
+config RT_USING_HWTIMER
+ bool "Using hardware timer device drivers"
+ default n
+
+config RT_USING_I2C
+ bool "Using I2C device drivers"
+ default n
+
+config RT_USING_PIN
+ bool "Using generic GPIO device drivers"
+ default y
+
+config RT_USING_MTD_NOR
+ bool "Using MTD Nor Flash device drivers"
+ default n
+
+config RT_USING_MTD_NAND
+ bool "Using MTD Nand Flash device drivers"
+ default n
+
+config RT_USING_RTC
+ bool "Using RTC device drivers"
+ default n
+
+config RT_USING_SDIO
+ bool "Using SD/MMC device drivers"
+ default n
+
+config RT_USING_SPI
+ bool "Using SPI Bus/Device device drivers"
+ default n
+
+ if RT_USING_SPI
+ config RT_USING_W25QXX
+ bool "Using W25QXX SPI NorFlash"
+ default n
+
+ config RT_USING_GD
+ bool "Using GD SPI NorFlash"
+ default n
+
+ config RT_USING_ENC28J60
+ bool "Using ENC28J60 SPI Ethernet network interface"
+ select RT_USING_LWIP
+ default n
+
+ config RT_USING_SPI_WIFI
+ bool "Using RW009/007 SPI Wi-Fi wireless interface"
+ select RT_USING_LWIP
+ default n
+ endif
+
+config RT_USING_WDT
+ bool "Using Watch Dog device drivers"
+ default n
+
+config RT_USING_USB_HOST
+ bool "Using USB host"
+ default n
+
+ if RT_USING_USB_HOST
+ config RT_USBH_ADK
+ bool "Enable connected with Android by ADK USB"
+ default n
+ endif
+
+config RT_USING_USB_DEVICE
+ bool "Using USB device"
+ default n
+
+ if RT_USING_USB_DEVICE
+ config RT_USB_DEVICE_CDC
+ bool "Enable to use device as CDC device"
+ default n
+
+ config RT_USB_DEVICE_MSTORAGE
+ bool "Enable to use device as Mass Storage device"
+ default n
+ endif
+endmenu
diff --git a/components/finsh/KConfig b/components/finsh/KConfig
new file mode 100644
index 0000000000..e735517f4b
--- /dev/null
+++ b/components/finsh/KConfig
@@ -0,0 +1,43 @@
+menu "Command shell"
+
+config RT_USING_FINSH
+ bool "finsh shell"
+ default y
+
+if RT_USING_FINSH
+
+config FINSH_USING_SYMTAB
+ bool "Using symbol table for commands"
+ default y
+
+config FINSH_USING_DESCRIPTION
+ bool "Keeping description in symbol table"
+ default y
+
+config FINSH_THREAD_STACK_SIZE
+ int "The stack size for finsh thread"
+ default 4096
+
+config FINSH_USING_AUTH
+ bool "shell support authentication"
+ default n
+
+config FINSH_DEFAULT_PASSWORD
+ string "The default password for shell authentication"
+ default "rtthread"
+
+config FINSH_USING_MSH
+ bool "Using module shell"
+ default y
+
+config FINSH_USING_MSH_DEFAULT
+ bool "Using module shell in default"
+ default y
+
+config FINSH_USING_MSH_ONLY
+ bool "Only using module shell"
+ default n
+
+endif
+
+endmenu
diff --git a/components/libc/KConfig b/components/libc/KConfig
new file mode 100644
index 0000000000..155cb0d700
--- /dev/null
+++ b/components/libc/KConfig
@@ -0,0 +1,11 @@
+menu "libc"
+
+config RT_USING_LIBC
+ bool "Enable libc APIs from toolchain"
+ default y
+
+config RT_USING_PTHREADS
+ bool "Enable pthreads APIs"
+ default y
+
+endmenu
diff --git a/src/Kconfig b/src/Kconfig
new file mode 100644
index 0000000000..04b154b7a0
--- /dev/null
+++ b/src/Kconfig
@@ -0,0 +1,156 @@
+menu "Real-time Kernel"
+
+config RT_NAME_MAX
+ int "The maximal size of kernel object name"
+ range 2 32
+ default 8
+ help
+ Each kernel object, such as thread, timer, semaphore etc, has a name, the RT_NAME_MAX is the maximal size of this object name.
+
+config RT_ALIGN_SIZE
+ int "Alignment size for CPU architecture data access"
+ default 4
+ help
+ Alignment size for CPU architecture data access
+
+config RT_THREAD_PRIORITY_MAX
+ int "The maximal level value of priority of thread"
+ range 8 256
+ default 32
+
+config RT_TICK_PER_SECOND
+ int "Tick frequency, Hz"
+ range 10 1000
+ default 100
+ help
+ System's tick frequency, Hz.
+
+config RT_DEBUG
+ bool "Enable debug features"
+ default y
+
+if RT_DEBUG
+
+config RT_USING_OVERFLOW_CHECK
+ bool "Using stack overflow checking"
+ default y
+ help
+ Enable thread stack overflow checking. The stack overflow is checking when each thread switch.
+
+config RT_DEBUG_INIT
+ bool "Enable system initialization informat print"
+ default n
+ help
+ print the procedure name of initialization
+
+config RT_DEBUG_THREAD
+ bool "Enable thread switch information dump"
+ default n
+ help
+ print the switch to/from thread name when each thread context switch
+
+endif
+
+config RT_USING_HOOK
+ bool "Enable system hook"
+ default y
+ help
+ Enable the hook function when system running, such as idle thread hook, thread context switch etc.
+
+config RT_USING_TIMER_SOFT
+ bool "Enable software timer with a timer thread"
+ default n
+ help
+ the timeout function context of soft-timer is under a high priority timer thread.
+
+if RT_USING_TIMER_SOFT
+config RT_TIMER_THREAD_PRIO
+ int "The priority level value of timer thread"
+ default 4
+
+config RT_TIMER_THREAD_STACK_SIZE
+ int "The stack size of timer thread"
+ default 512
+
+endif
+
+menu "Inter-Thread communication"
+
+config RT_USING_SEMAPHORE
+ bool "Enable semaphore"
+ default y
+
+config RT_USING_MUTEX
+ bool "Enable mutex"
+ default y
+
+config RT_USING_EVENT
+ bool "Enable event flag"
+ default y
+
+config RT_USING_MAILBOX
+ bool "Enable mailbox"
+ default y
+
+config RT_USING_MESSAGEQUEUE
+ bool "Enable message queue"
+ default y
+
+endmenu
+
+menu "Memory Management"
+
+ config RT_USING_MEMPOOL
+ bool "Using memory pool"
+ default y
+ help
+ Using static memory fixed partition
+
+ config RT_USING_MEMHEAP
+ bool "Using memory heap object"
+ default n
+ help
+ Using memory heap object to manage dynamic memory heap.
+
+ config RT_USING_HEAP
+ bool "Using dynamic memory management"
+ default y
+
+ if RT_USING_HEAP
+
+ choice USING_HEAP
+
+ config RT_USING_SMALL_MEM
+ bool "The memory management for small memory"
+
+ config RT_USING_SLAB
+ bool "Using SLAB memory management for large memory"
+ endchoice
+
+ endif
+
+endmenu
+
+menu "Kernel Device Object"
+
+ config RT_USING_DEVICE
+ bool "Using device object"
+ default y
+
+ config RT_USING_CONSOLE
+ bool "Using console for rt_kprintf"
+ default y
+
+ if RT_USING_CONSOLE
+ config RT_CONSOLEBUF_SIZE
+ int "the buffer size for console log printf"
+ default 128
+
+ config RT_CONSOLE_DEVICE_NAME
+ string "the device name for console"
+ default "uart"
+ endif
+
+endmenu
+
+endmenu
diff --git a/tools/mkrtconfig.py b/tools/mkrtconfig.py
new file mode 100644
index 0000000000..31d30ff265
--- /dev/null
+++ b/tools/mkrtconfig.py
@@ -0,0 +1,50 @@
+import os
+
+# make rtconfig.h from .config
+
+def mk_rtconfig(filename):
+ try:
+ config = file(filename)
+ except:
+ print 'open .config failed'
+ return
+
+ rtconfig = file('rtconfig.h', 'w')
+ rtconfig.write('#ifndef RT_CONFIG_H__\n')
+ rtconfig.write('#define RT_CONFIG_H__\n\n')
+
+ empty_line = 1
+
+ for line in config:
+ line = line.lstrip(' ').replace('\n', '').replace('\r', '')
+
+ if len(line) == 0: continue
+
+ if line[0] == '#':
+ if len(line) == 1:
+ if empty_line:
+ continue
+
+ rtconfig.write('\n')
+ empty_line = 1
+ continue
+
+ rtconfig.write('/*%s */\n' % line[1:])
+ empty_line = 0
+ else:
+ empty_line = 0
+ setting = line.split('=')
+ if len(setting) >= 2:
+ if setting[0].startswith('CONFIG_'):
+ setting[0] = setting[0][7:]
+
+ if setting[1] == 'y':
+ rtconfig.write('#define %s\n' % setting[0])
+ else:
+ rtconfig.write('#define %s %s\n' % (setting[0], setting[1]))
+
+ rtconfig.write('#endif\n')
+ rtconfig.close()
+
+if __name__ == "__main__":
+ mk_rtconfig('.config')