Browse Source

[bsp][stm32] update kconfig

SummerGift 6 years ago
parent
commit
74395fd114

+ 43 - 10
bsp/stm32/stm32f091-st-nucleo/board/Kconfig

@@ -9,6 +9,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_USB_TO_USART
         bool "Enable USB TO USART (uart2)"
+	select BSP_USING_UART
         select BSP_USING_UART2
         default y
 
@@ -21,20 +22,52 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
+        default y
         select RT_USING_SERIAL
-        default n
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
 
-   config BSP_USING_UART2
-        bool "Enable UART2"
-        select RT_USING_SERIAL
-        default y
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                default n
 
-    config BSP_USING_SPI1
-        bool "Enable SPI1 BUS"
-        select RT_USING_SPI
+        endif
+
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
+        select RT_USING_SPI
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
+
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
+        endif
+
         
     menuconfig BSP_USING_I2C1
         bool "Enable I2C1 BUS (software simulation)"

+ 69 - 12
bsp/stm32/stm32f103-atk-nano/board/Kconfig

@@ -9,6 +9,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_USB_TO_USART
         bool "Enable USB TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
@@ -19,6 +20,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_SPI_FLASH
         bool "Enable SPI FLASH (w25q16 spi2)"
+	select BSP_USING_SPI
         select BSP_USING_SPI2
         select RT_USING_SFUD
         select RT_SFUD_USING_SFDP
@@ -39,6 +41,39 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
+    menuconfig BSP_USING_UART
+    bool "Enable UART"
+    default y
+    select RT_USING_SERIAL
+    if BSP_USING_UART
+        config BSP_USING_UART1
+            bool "Enable UART1"
+            default y
+
+        config BSP_UART1_RX_USING_DMA
+            bool "Enable UART1 RX DMA"
+            depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+            default n
+
+        config BSP_USING_UART2
+            bool "Enable UART2"
+            default n
+
+        config BSP_UART2_RX_USING_DMA
+            bool "Enable UART2 RX DMA"
+            depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+            default n
+            
+        config BSP_USING_UART3
+            bool "Enable UART3"
+            default n
+
+        config BSP_UART3_RX_USING_DMA
+            bool "Enable UART3 RX DMA"
+            depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
+            default n  
+    endif    
+        
     config BSP_USING_UART1
         bool "Enable UART1"
         select RT_USING_SERIAL
@@ -90,20 +125,42 @@ menu "On-chip Peripheral Drivers"
                     default n
             endif
         endif
+	
+    menuconfig BSP_USING_SPI
+    bool "Enable SPI BUS"
+    default n
+    select RT_USING_SPI
+    if BSP_USING_SPI
+        config BSP_USING_SPI1
+            bool "Enable SPI1 BUS"
+            default n
 
-    config BSP_USING_SPI1
-        bool "Enable SPI1 BUS"
-        select RT_USING_SPI
-        default n
-
-    config BSP_USING_SPI2
-        bool "Enable SPI2 BUS"
-        select RT_USING_SPI
-        default n
+        config BSP_SPI1_TX_USING_DMA
+            bool "Enable SPI1 TX DMA"
+            depends on BSP_USING_SPI1
+            default n
+                    
+        config BSP_SPI1_RX_USING_DMA
+            bool "Enable SPI1 RX DMA"
+            depends on BSP_USING_SPI1
+            select BSP_SPI1_TX_USING_DMA
+            default n
 
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
-        default n
+        config BSP_USING_SPI2
+            bool "Enable SPI2 BUS"
+            default n  
+                    
+        config BSP_SPI2_TX_USING_DMA
+            bool "Enable SPI2 TX DMA"
+            depends on BSP_USING_SPI2
+            default n
+                    
+        config BSP_SPI2_RX_USING_DMA
+            bool "Enable SPI2 RX DMA"
+            depends on BSP_USING_SPI2
+            select BSP_SPI2_TX_USING_DMA
+            default n
+    endif
 
     menuconfig BSP_USING_I2C1
         bool "Enable I2C1 BUS (software simulation)"

+ 145 - 50
bsp/stm32/stm32f103-atk-nano/project.uvprojx

@@ -1,10 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 <Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
-
   <SchemaVersion>2.1</SchemaVersion>
-
   <Header>### uVision Project, (C) Keil Software</Header>
-
   <Targets>
     <Target>
       <TargetName>rt-thread</TargetName>
@@ -19,28 +16,28 @@
           <PackID>Keil.STM32F1xx_DFP.2.2.0</PackID>
           <PackURL>http://www.keil.com/pack/</PackURL>
           <Cpu>IRAM(0x20000000,0x5000) IROM(0x08000000,0x20000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
-          <FlashUtilSpec></FlashUtilSpec>
-          <StartupFile></StartupFile>
+          <FlashUtilSpec />
+          <StartupFile />
           <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</FlashDriverDll>
           <DeviceId>0</DeviceId>
           <RegisterFile>$$Device:STM32F103RB$Device\Include\stm32f10x.h</RegisterFile>
-          <MemoryEnv></MemoryEnv>
-          <Cmp></Cmp>
-          <Asm></Asm>
-          <Linker></Linker>
-          <OHString></OHString>
-          <InfinionOptionDll></InfinionOptionDll>
-          <SLE66CMisc></SLE66CMisc>
-          <SLE66AMisc></SLE66AMisc>
-          <SLE66LinkerMisc></SLE66LinkerMisc>
+          <MemoryEnv />
+          <Cmp />
+          <Asm />
+          <Linker />
+          <OHString />
+          <InfinionOptionDll />
+          <SLE66CMisc />
+          <SLE66AMisc />
+          <SLE66LinkerMisc />
           <SFDFile>$$Device:STM32F103RB$SVD\STM32F103xx.svd</SFDFile>
           <bCustSvd>0</bCustSvd>
           <UseEnv>0</UseEnv>
-          <BinPath></BinPath>
-          <IncludePath></IncludePath>
-          <LibPath></LibPath>
-          <RegisterFilePath></RegisterFilePath>
-          <DBRegisterFilePath></DBRegisterFilePath>
+          <BinPath />
+          <IncludePath />
+          <LibPath />
+          <RegisterFilePath />
+          <DBRegisterFilePath />
           <TargetStatus>
             <Error>0</Error>
             <ExitCodeStop>0</ExitCodeStop>
@@ -62,8 +59,8 @@
           <BeforeCompile>
             <RunUserProg1>0</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
+            <UserProg1Name />
+            <UserProg2Name />
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <nStopU1X>0</nStopU1X>
@@ -72,8 +69,8 @@
           <BeforeMake>
             <RunUserProg1>0</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
+            <UserProg1Name />
+            <UserProg2Name />
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <nStopB1X>0</nStopB1X>
@@ -83,14 +80,14 @@
             <RunUserProg1>1</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
             <UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name>
-            <UserProg2Name></UserProg2Name>
+            <UserProg2Name />
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <nStopA1X>0</nStopA1X>
             <nStopA2X>0</nStopA2X>
           </AfterMake>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
-          <SVCSIdString></SVCSIdString>
+          <SVCSIdString />
         </TargetCommonOption>
         <CommonProperty>
           <UseCPPCompiler>0</UseCPPCompiler>
@@ -104,8 +101,8 @@
           <AssembleAssemblyFile>0</AssembleAssemblyFile>
           <PublicsOnly>0</PublicsOnly>
           <StopOnExitCode>3</StopOnExitCode>
-          <CustomArgument></CustomArgument>
-          <IncludeLibraryModules></IncludeLibraryModules>
+          <CustomArgument />
+          <IncludeLibraryModules />
           <ComprImg>1</ComprImg>
         </CommonProperty>
         <DllOption>
@@ -114,7 +111,7 @@
           <SimDlgDll>DCM.DLL</SimDlgDll>
           <SimDlgDllArguments>-pCM3</SimDlgDllArguments>
           <TargetDllName>SARMCM3.DLL</TargetDllName>
-          <TargetDllArguments></TargetDllArguments>
+          <TargetDllArguments />
           <TargetDlgDll>TCM.DLL</TargetDlgDll>
           <TargetDlgDllArguments>-pCM3</TargetDlgDllArguments>
         </DllOption>
@@ -139,10 +136,10 @@
           <bUseTDR>1</bUseTDR>
           <Flash2>BIN\UL2CM3.DLL</Flash2>
           <Flash3>"" ()</Flash3>
-          <Flash4></Flash4>
-          <pFcarmOut></pFcarmOut>
-          <pFcarmGrp></pFcarmGrp>
-          <pFcArmRoot></pFcArmRoot>
+          <Flash4 />
+          <pFcarmOut />
+          <pFcarmGrp />
+          <pFcArmRoot />
           <FcArmLst>0</FcArmLst>
         </Utilities>
         <TargetArmAds>
@@ -175,7 +172,7 @@
             <RvctClst>0</RvctClst>
             <GenPPlst>0</GenPPlst>
             <AdsCpuType>"Cortex-M3"</AdsCpuType>
-            <RvctDeviceName></RvctDeviceName>
+            <RvctDeviceName />
             <mOS>0</mOS>
             <uocRom>0</uocRom>
             <uocRam>0</uocRam>
@@ -307,7 +304,7 @@
                 <Size>0x0</Size>
               </OCR_RVCT10>
             </OnChipMemories>
-            <RvctStartVector></RvctStartVector>
+            <RvctStartVector />
           </ArmAdsMisc>
           <Cads>
             <interw>1</interw>
@@ -334,9 +331,9 @@
             <v6WtE>0</v6WtE>
             <v6Rtti>0</v6Rtti>
             <VariousControls>
-              <MiscControls></MiscControls>
+              <MiscControls />
               <Define>STM32F103xB, USE_HAL_DRIVER</Define>
-              <Undefine></Undefine>
+              <Undefine />
               <IncludePath>applications;.;board;board\CubeMX_Config\Inc;board\ports;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\include;..\..\..\libcpu\arm\cortex-m3;..\..\..\libcpu\arm\common;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Include;..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Inc;..\libraries\STM32F1xx_HAL\CMSIS\Include</IncludePath>
             </VariousControls>
           </Cads>
@@ -352,10 +349,10 @@
             <useXO>0</useXO>
             <uClangAs>0</uClangAs>
             <VariousControls>
-              <MiscControls></MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath></IncludePath>
+              <MiscControls />
+              <Define />
+              <Undefine />
+              <IncludePath />
             </VariousControls>
           </Aads>
           <LDads>
@@ -367,13 +364,13 @@
             <useFile>0</useFile>
             <TextAddressRange>0x08000000</TextAddressRange>
             <DataAddressRange>0x20000000</DataAddressRange>
-            <pXoBase></pXoBase>
+            <pXoBase />
             <ScatterFile>.\board\linker_scripts\link.sct</ScatterFile>
-            <IncludeLibs></IncludeLibs>
-            <IncludeLibsPath></IncludeLibsPath>
+            <IncludeLibs />
+            <IncludeLibsPath />
             <Misc> --keep *.o(.rti_fn.*)   --keep *.o(FSymTab)</Misc>
-            <LinkerInputFile></LinkerInputFile>
-            <DisabledWarnings></DisabledWarnings>
+            <LinkerInputFile />
+            <DisabledWarnings />
           </LDads>
         </TargetArmAds>
       </TargetOption>
@@ -396,26 +393,36 @@
               <FileType>1</FileType>
               <FilePath>board\board.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_msp.c</FileName>
               <FileType>1</FileType>
               <FilePath>board\CubeMX_Config\Src\stm32f1xx_hal_msp.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>startup_stm32f103xb.s</FileName>
               <FileType>2</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm\startup_stm32f103xb.s</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>drv_gpio.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\HAL_Drivers\drv_gpio.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>drv_usart.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\HAL_Drivers\drv_usart.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>drv_common.c</FileName>
               <FileType>1</FileType>
@@ -431,76 +438,106 @@
               <FileType>1</FileType>
               <FilePath>..\..\..\src\clock.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>components.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\components.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>cpu.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\cpu.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>device.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\device.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>idle.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\idle.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>ipc.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\ipc.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>irq.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\irq.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>kservice.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\kservice.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>mem.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\mem.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>memheap.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\memheap.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>mempool.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\mempool.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>object.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\object.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>scheduler.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\scheduler.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>signal.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\signal.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>thread.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\thread.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>timer.c</FileName>
               <FileType>1</FileType>
@@ -516,21 +553,29 @@
               <FileType>1</FileType>
               <FilePath>..\..\..\libcpu\arm\cortex-m3\cpuport.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>context_rvds.S</FileName>
               <FileType>2</FileType>
               <FilePath>..\..\..\libcpu\arm\cortex-m3\context_rvds.S</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>backtrace.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>div0.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>showmem.c</FileName>
               <FileType>1</FileType>
@@ -546,41 +591,57 @@
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>serial.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\serial\serial.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>completion.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\completion.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>dataqueue.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\dataqueue.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>pipe.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\pipe.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>ringblk_buf.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\ringblk_buf.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>ringbuffer.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\ringbuffer.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>waitqueue.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\waitqueue.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>workqueue.c</FileName>
               <FileType>1</FileType>
@@ -596,26 +657,36 @@
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\shell.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>symbol.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\symbol.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>cmd.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>msh.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\msh.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>msh_cmd.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\msh_cmd.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>msh_file.c</FileName>
               <FileType>1</FileType>
@@ -631,66 +702,92 @@
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_dma.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_cortex.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_crc.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_crc.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_pwr.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_rcc.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_rcc_ex.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_cec.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cec.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_sram.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_gpio.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_gpio_ex.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_uart.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c</FilePath>
             </File>
+          </Files>
+          <Files>
             <File>
               <FileName>stm32f1xx_hal_usart.c</FileName>
               <FileType>1</FileType>
@@ -701,11 +798,9 @@
       </Groups>
     </Target>
   </Targets>
-
   <RTE>
-    <apis/>
-    <components/>
-    <files/>
+    <apis />
+    <components />
+    <files />
   </RTE>
-
 </Project>

+ 79 - 27
bsp/stm32/stm32f103-fire-arbitrary/board/Kconfig

@@ -9,6 +9,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_USB_TO_USART
         bool "Enable USB TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
@@ -19,6 +20,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_SPI_FLASH
         bool "Enable SPI FLASH (w25q64 spi1)"
+        select BSP_USING_SPI
         select BSP_USING_SPI1
         select RT_USING_SFUD
         select RT_SFUD_USING_SFDP
@@ -89,43 +91,93 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
-        default y
+    menuconfig BSP_USING_UART
+    bool "Enable UART"
+    default y
+    select RT_USING_SERIAL
+    if BSP_USING_UART
+        config BSP_USING_UART1
+            bool "Enable UART1"
+            default y
+
+        config BSP_UART1_RX_USING_DMA
+            bool "Enable UART1 RX DMA"
+            depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+            default n
 
-    config BSP_USING_UART2
-        bool "Enable UART2"
-        select RT_USING_SERIAL
-        default n
+        config BSP_USING_UART2
+            bool "Enable UART2"
+            default n
 
-    config BSP_USING_UART3
-        bool "Enable UART3"
-        select RT_USING_SERIAL
-        default n
-        
+        config BSP_UART2_RX_USING_DMA
+            bool "Enable UART2 RX DMA"
+            depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+            default n
+            
+        config BSP_USING_UART3
+            bool "Enable UART3"
+            default n
+
+        config BSP_UART3_RX_USING_DMA
+            bool "Enable UART3 RX DMA"
+            depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
+            default n  
+    endif
+   
     config BSP_USING_ON_CHIP_FLASH
         bool "Enable on-chip FLASH"
         default n
 
-    config BSP_USING_SPI1
-        bool "Enable SPI1 BUS"
-        select RT_USING_SPI
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
-
-    config BSP_USING_SPI2
-        bool "Enable SPI2 BUS"
         select RT_USING_SPI
-        default n
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
 
-    config BSP_USING_SPI3
-        bool "Enable SPI3 BUS"
-        select RT_USING_SPI
-        default n
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
 
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
-        default n
+            config BSP_USING_SPI2
+                bool "Enable SPI2 BUS"
+                default n  
+                
+            config BSP_SPI2_TX_USING_DMA
+                bool "Enable SPI2 TX DMA"
+                depends on BSP_USING_SPI2
+                default n
+                
+            config BSP_SPI2_RX_USING_DMA
+                bool "Enable SPI2 RX DMA"
+                depends on BSP_USING_SPI2
+                select BSP_SPI2_TX_USING_DMA
+                default n
+                
+            config BSP_USING_SPI3
+                bool "Enable SPI3 BUS"
+                default n        
+
+            config BSP_SPI3_TX_USING_DMA
+                bool "Enable SPI3 TX DMA"
+                depends on BSP_USING_SPI3
+                default n
+                
+            config BSP_SPI3_RX_USING_DMA
+                bool "Enable SPI3 RX DMA"
+                depends on BSP_USING_SPI3
+                select BSP_SPI3_TX_USING_DMA
+                default n  
+        endif
 
     menuconfig BSP_USING_I2C1
         bool "Enable I2C1 BUS (software simulation)"

+ 57 - 17
bsp/stm32/stm32f407-atk-explorer/board/Kconfig

@@ -9,21 +9,25 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_USB_TO_USART
         bool "Enable USB TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
     config BSP_USING_COM2
         bool "Enable COM2 (uart2 pin conflict with Ethernet and PWM)"
+        select BSP_USING_UART
         select BSP_USING_UART2
         default n
 
     config BSP_USING_COM3
         bool "Enable COM3 (uart3)"
+        select BSP_USING_UART
         select BSP_USING_UART3
         default n
 
     config BSP_USING_SPI_FLASH
         bool "Enable SPI FLASH (w25q128 spi1)"
+        select BSP_USING_SPI
         select BSP_USING_SPI1
         select RT_USING_SFUD
         select RT_SFUD_USING_SFDP
@@ -65,15 +69,29 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
         default y
-
-    config BSP_USING_UART3
-        bool "Enable UART3"
         select RT_USING_SERIAL
-        default n
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
+                default n
+        endif
 
     menuconfig BSP_USING_TIM
         bool "Enable timer"
@@ -112,19 +130,41 @@ menu "On-chip Peripheral Drivers"
         bool "Enable on-chip FLASH"
         default n
 
-    config BSP_USING_SPI1
-        bool "Enable SPI1 BUS"
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
+        default n
         select RT_USING_SPI
-        default y
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
 
-    config BSP_USING_SPI2
-        bool "Enable SPI2 BUS"
-        select RT_USING_SPI
-        default n
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
 
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
-        default n
+            config BSP_USING_SPI2
+                bool "Enable SPI2 BUS"
+                default n
+
+            config BSP_SPI2_TX_USING_DMA
+                bool "Enable SPI2 TX DMA"
+                depends on BSP_USING_SPI2
+                default n
+                
+            config BSP_SPI2_RX_USING_DMA
+                bool "Enable SPI2 RX DMA"
+                depends on BSP_USING_SPI2
+                select BSP_SPI2_TX_USING_DMA
+                default n
+        endif
 
     menuconfig BSP_USING_ADC
         bool "Enable ADC"

+ 31 - 13
bsp/stm32/stm32f407-st-discovery/board/Kconfig

@@ -16,23 +16,41 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
         default y
+        select RT_USING_SERIAL
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
 
-    config BSP_UART_USING_DMA_RX
-        bool "Enable UART RX DMA support"
-        default n
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+        endif
 
-    config BSP_USING_SPI1
-        bool "Enable SPI1 BUS"
-        select RT_USING_SPI
-        default n
-    
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
+        select RT_USING_SPI
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
+
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
+        endif
 
     menuconfig BSP_USING_I2C1
         bool "Enable I2C1 BUS (software simulation)"

+ 34 - 14
bsp/stm32/stm32f429-armfly-v6/board/Kconfig

@@ -9,6 +9,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_RS232_TO_USART
         bool "Enable RS232 TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
@@ -22,6 +23,7 @@ menu "Onboard Peripheral Drivers"
 		
 	config BSP_USING_SPI_FLASH
         bool "Enable SPI FLASH (w25q64 spi3)"
+        select BSP_USING_SPI
         select BSP_USING_SPI3
         select RT_USING_SFUD
         select RT_SFUD_USING_SFDP
@@ -60,27 +62,45 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
         default y
-
-    config BSP_UART_USING_DMA_RX
-        bool "Enable UART RX DMA support"
-        default n
+        select RT_USING_SERIAL
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+        endif
 
     config BSP_USING_ON_CHIP_FLASH
         bool "Enable on-chip FLASH"
         default n
 
-	config BSP_USING_SPI3
-        bool "Enable SPI3 BUS"
-        select RT_USING_SPI
-        default n	
-    
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
+        select RT_USING_SPI
+        if BSP_USING_SPI
+            config BSP_USING_SPI3
+                bool "Enable SPI3 BUS"
+                default n
+
+            config BSP_SPI3_TX_USING_DMA
+                bool "Enable SPI3 TX DMA"
+                depends on BSP_USING_SPI3
+                default n
+                
+            config BSP_SPI3_RX_USING_DMA
+                bool "Enable SPI3 RX DMA"
+                depends on BSP_USING_SPI3
+                select BSP_SPI3_TX_USING_DMA
+                default n
+        endif
 
     menuconfig BSP_USING_I2C1
         bool "Enable I2C1 BUS (software simulation)"

+ 78 - 25
bsp/stm32/stm32f429-atk-apollo/board/Kconfig

@@ -9,11 +9,13 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_USB_TO_USART
         bool "Enable USB TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
     config BSP_USING_COM2
         bool "Enable COM2 (uart2 pin conflict with Ethernet and PWM)"
+	select BSP_USING_UART
         select BSP_USING_UART2
         default n
 
@@ -28,6 +30,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_SPI_FLASH
         bool "Enable SPI FLASH (w25q256 spi5)"
+        select BSP_USING_SPI
         select BSP_USING_SPI5
         select RT_USING_SFUD
         select RT_SFUD_USING_SFDP
@@ -66,43 +69,93 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
         default y
-
-    config BSP_USING_UART2
-        bool "Enable UART2"
         select RT_USING_SERIAL
-        default n
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
 
-    config BSP_USING_UART3
-        bool "Enable UART3"
-        select RT_USING_SERIAL
-        default n
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                default n
+                
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+   
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
+                default n  
+        endif
 
     config BSP_USING_ON_CHIP_FLASH
         bool "Enable on-chip FLASH"
         default n
 
-    config BSP_USING_SPI1
-        bool "Enable SPI1 BUS"
-        select RT_USING_SPI
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
-
-    config BSP_USING_SPI2
-        bool "Enable SPI2 BUS"
         select RT_USING_SPI
-        default n
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
 
-    config BSP_USING_SPI5
-        bool "Enable SPI5 BUS"
-        select RT_USING_SPI
-        default n
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
 
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
-        default n
+            config BSP_USING_SPI2
+                bool "Enable SPI2 BUS"
+                default n  
+                
+            config BSP_SPI2_TX_USING_DMA
+                bool "Enable SPI2 TX DMA"
+                depends on BSP_USING_SPI2
+                default n
+                
+            config BSP_SPI2_RX_USING_DMA
+                bool "Enable SPI2 RX DMA"
+                depends on BSP_USING_SPI2
+                select BSP_SPI2_TX_USING_DMA
+                default n
+                
+            config BSP_USING_SPI5
+                bool "Enable SPI5 BUS"
+                default n        
+
+            config BSP_SPI5_TX_USING_DMA
+                bool "Enable SPI5 TX DMA"
+                depends on BSP_USING_SPI5
+                default n
+                
+            config BSP_SPI5_RX_USING_DMA
+                bool "Enable SPI5 RX DMA"
+                depends on BSP_USING_SPI5
+                select BSP_SPI5_TX_USING_DMA
+                default n  
+        endif
 
     menuconfig BSP_USING_I2C1
         bool "Enable I2C1 BUS (software simulation)"

+ 45 - 15
bsp/stm32/stm32f429-fire-challenger/board/Kconfig

@@ -9,11 +9,13 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_USB_TO_USART
         bool "Enable USB TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
     config BSP_USING_RS232
         bool "Enable RS232"
+	select BSP_USING_UART
         select BSP_USING_UART2
         default n
         
@@ -22,7 +24,8 @@ menu "Onboard Peripheral Drivers"
         default n
         
     config BSP_USING_SPI_FLASH
-        bool "Enable SPI FLASH (W25Q128 spi5)"
+        bool "Enable SPI FLASH (w25q256 spi5)"
+        select BSP_USING_SPI
         select BSP_USING_SPI5
         select RT_USING_SFUD
         select RT_SFUD_USING_SFDP
@@ -76,28 +79,55 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
         default y
-
-    config BSP_USING_UART2
-        bool "Enable UART2"
         select RT_USING_SERIAL
-        default n
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                default n
+
+        endif
 
     config BSP_USING_ON_CHIP_FLASH
         bool "Enable on-chip FLASH"
         default n
 
-    config BSP_USING_SPI5
-        bool "Enable SPI5 BUS"
-        select RT_USING_SPI
-        default n
-
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
+        select RT_USING_SPI
+        if BSP_USING_SPI  
+            config BSP_USING_SPI5
+                bool "Enable SPI5 BUS"
+                default n        
+
+            config BSP_SPI5_TX_USING_DMA
+                bool "Enable SPI5 TX DMA"
+                depends on BSP_USING_SPI5
+                default n
+                
+            config BSP_SPI5_RX_USING_DMA
+                bool "Enable SPI5 RX DMA"
+                depends on BSP_USING_SPI5
+                select BSP_SPI5_TX_USING_DMA
+                default n  
+        endif
 
     menuconfig BSP_USING_TIM
         bool "Enable timer"

+ 58 - 13
bsp/stm32/stm32f767-atk-apollo/board/Kconfig

@@ -9,11 +9,13 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_USB_TO_USART
         bool "Enable USB TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
     config BSP_USING_RS232
         bool "Enable RS232 (uart2 pin conflict with Ethernet)"
+	    select BSP_USING_UART
         select BSP_USING_UART2
         default n
 
@@ -67,28 +69,71 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
         default y
-
-    config BSP_USING_UART2
-        bool "Enable UART2"
         select RT_USING_SERIAL
-        default n
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                default n
+
+        endif
 
     config BSP_USING_ON_CHIP_FLASH
         bool "Enable on-chip FLASH"
         default n
 
-    config BSP_USING_SPI2
-        bool "Enable SPI2 BUS"
-        select RT_USING_SPI
+menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
+        select RT_USING_SPI
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
+
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
+
+            config BSP_USING_SPI2
+                bool "Enable SPI2 BUS"
+                default n  
+                
+            config BSP_SPI2_TX_USING_DMA
+                bool "Enable SPI2 TX DMA"
+                depends on BSP_USING_SPI2
+                default n
+                
+            config BSP_SPI2_RX_USING_DMA
+                bool "Enable SPI2 RX DMA"
+                depends on BSP_USING_SPI2
+                select BSP_SPI2_TX_USING_DMA
+                default n
+        endif
 
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
-        default n
 
     config BSP_USING_QSPI
         bool "Enable QSPI BUS"

+ 77 - 25
bsp/stm32/stm32f767-fire-challenger/board/Kconfig

@@ -9,11 +9,13 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_USB_TO_USART
         bool "Enable USB TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
     config BSP_USING_RS232
         bool "Enable RS232 (uart2 pin conflict with Ethernet)"
+        select BSP_USING_UART
         select BSP_USING_UART2
         default n
 
@@ -43,43 +45,93 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
         default y
-
-    config BSP_USING_UART2
-        bool "Enable UART2"
         select RT_USING_SERIAL
-        default n
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
 
-    config BSP_USING_UART3
-        bool "Enable UART3"
-        select RT_USING_SERIAL
-        default n
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 && RT_SERIsAL_USING_DMA
+                default n
+        endif
 
     config BSP_USING_ON_CHIP_FLASH
         bool "Enable on-chip FLASH"
         default n
         
-    config BSP_USING_SPI1
-        bool "Enable SPI1 BUS"
-        select RT_USING_SPI
+menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
-
-    config BSP_USING_SPI2
-        bool "Enable SPI2 BUS"
         select RT_USING_SPI
-        default n
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
 
-    config BSP_USING_SPI5
-        bool "Enable SPI5 BUS"
-        select RT_USING_SPI
-        default n
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
 
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
-        default n
+            config BSP_USING_SPI2
+                bool "Enable SPI2 BUS"
+                default n  
+                
+            config BSP_SPI2_TX_USING_DMA
+                bool "Enable SPI2 TX DMA"
+                depends on BSP_USING_SPI2
+                default n
+                
+            config BSP_SPI2_RX_USING_DMA
+                bool "Enable SPI2 RX DMA"
+                depends on BSP_USING_SPI2
+                select BSP_SPI2_TX_USING_DMA
+                default n
+
+            config BSP_USING_SPI5
+                bool "Enable SPI5 BUS"
+                default n  
+                
+            config BSP_SPI5_TX_USING_DMA
+                bool "Enable SPI5 TX DMA"
+                depends on BSP_USING_SPI5
+                default n
+                
+            config BSP_SPI5_RX_USING_DMA
+                bool "Enable SPI5 RX DMA"
+                depends on BSP_USING_SPI5
+                select BSP_SPI5_TX_USING_DMA
+                default n
+        endif
 
     config BSP_USING_QSPI
         bool "Enable QSPI BUS"

+ 56 - 18
bsp/stm32/stm32l475-atk-pandora/board/Kconfig

@@ -9,6 +9,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_STLINK_TO_USART
         bool "Enable STLINK TO USART (uart1)"
+        select BSP_USING_UART
         select BSP_USING_UART1
         default y
 
@@ -21,6 +22,7 @@ menu "Onboard Peripheral Drivers"
 
     config BSP_USING_SDCARD
         bool "Enable SDCARD (spi1)"
+        select BSP_USING_SPI
         select BSP_USING_SPI1
         select BSP_SPI_USING_DMA
         select RT_USING_SPI_MSD
@@ -37,33 +39,69 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_PIN
         default y
 
-    config BSP_USING_UART1
-        bool "Enable UART1"
-        select RT_USING_SERIAL
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
         default y
-
-    config BSP_USING_UART2
-        bool "Enable UART2"
         select RT_USING_SERIAL
-        default n
-        
+        if BSP_USING_UART
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default y
+
+            config BSP_UART1_RX_USING_DMA
+                bool "Enable UART1 RX DMA"
+                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                default y
+                
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                default n
+        endif
+
     config BSP_USING_ON_CHIP_FLASH
         bool "Enable on-chip FLASH"
         default n
 
-    config BSP_USING_SPI1
-        bool "Enable SPI1 BUS"
-        select RT_USING_SPI
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
         default n
-
-    config BSP_USING_SPI2
-        bool "Enable SPI2 BUS"
         select RT_USING_SPI
-        default n
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS"
+                default n
 
-    config BSP_SPI_USING_DMA
-        bool "Enable SPI DMA support"
-        default n
+            config BSP_SPI1_TX_USING_DMA
+                bool "Enable SPI1 TX DMA"
+                depends on BSP_USING_SPI1
+                default n
+                
+            config BSP_SPI1_RX_USING_DMA
+                bool "Enable SPI1 RX DMA"
+                depends on BSP_USING_SPI1
+                select BSP_SPI1_TX_USING_DMA
+                default n
+
+            config BSP_USING_SPI2
+                bool "Enable SPI2 BUS"
+                default n  
+                
+            config BSP_SPI2_TX_USING_DMA
+                bool "Enable SPI2 TX DMA"
+                depends on BSP_USING_SPI2
+                default n
+                
+            config BSP_SPI2_RX_USING_DMA
+                bool "Enable SPI2 RX DMA"
+                depends on BSP_USING_SPI2
+                select BSP_SPI2_TX_USING_DMA
+                default n
+        endif
 
     config BSP_USING_QSPI
         bool "Enable QSPI BUS"