diff --git a/bsp/stm32f40x/project.uvopt b/bsp/stm32f40x/project.uvopt
deleted file mode 100644
index 9661193e93..0000000000
--- a/bsp/stm32f40x/project.uvopt
+++ /dev/null
@@ -1,1206 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 25000000
-
- 1
- 1
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 1
- 0
- 1
-
- 0
-
- SARMCM3.DLL
- -MPU
- DCM.DLL
- -pCM4
- SARMCM3.DLL
- -MPU
- TCM.DLL
- -pCM4
-
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 0
- 0
- 8
-
-
-
-
-
-
-
-
-
-
- STLink\ST-LINKIII-KEIL.dll
-
-
-
- 0
- DLGTARM
- (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
-
-
- 0
- ARMDBGFLAGS
-
-
-
- 0
- ST-LINKIII-KEIL
- -S
-
-
-
-
- 0
- 1
- f_var1
-
-
- 1
- 1
- f_var2
-
-
- 2
- 1
- f_var3
-
-
- 3
- 1
- f_var4
-
-
-
-
- 0
- 2
- f_var2
-
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
-
-
-
-
- Applications
- 0
- 0
- 0
-
- 1
- 1
- 1
- 0
- 0
- 32
- 0
- 82
- 96
- 0
- applications\application.c
- application.c
-
-
- 1
- 2
- 1
- 0
- 0
- 0
- 0
- 107
- 114
- 0
- applications\startup.c
- startup.c
-
-
-
-
- Drivers
- 0
- 0
- 0
-
- 2
- 3
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- drivers\board.c
- board.c
-
-
- 2
- 4
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- drivers\serial.c
- serial.c
-
-
- 2
- 5
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- drivers\stm32f4xx_it.c
- stm32f4xx_it.c
-
-
- 2
- 6
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- drivers\usart.c
- usart.c
-
-
-
-
- STM32_StdPeriph
- 0
- 0
- 0
-
- 3
- 7
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\CMSIS\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c
- system_stm32f4xx.c
-
-
- 3
- 8
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c
- misc.c
-
-
- 3
- 9
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c
- stm32f4xx_adc.c
-
-
- 3
- 10
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c
- stm32f4xx_can.c
-
-
- 3
- 11
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c
- stm32f4xx_crc.c
-
-
- 3
- 12
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c
- stm32f4xx_cryp.c
-
-
- 3
- 13
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c
- stm32f4xx_cryp_aes.c
-
-
- 3
- 14
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c
- stm32f4xx_cryp_des.c
-
-
- 3
- 15
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c
- stm32f4xx_cryp_tdes.c
-
-
- 3
- 16
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c
- stm32f4xx_dac.c
-
-
- 3
- 17
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c
- stm32f4xx_dbgmcu.c
-
-
- 3
- 18
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c
- stm32f4xx_dcmi.c
-
-
- 3
- 19
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c
- stm32f4xx_dma.c
-
-
- 3
- 20
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c
- stm32f4xx_exti.c
-
-
- 3
- 21
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c
- stm32f4xx_flash.c
-
-
- 3
- 22
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c
- stm32f4xx_fsmc.c
-
-
- 3
- 23
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c
- stm32f4xx_gpio.c
-
-
- 3
- 24
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c
- stm32f4xx_hash.c
-
-
- 3
- 25
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c
- stm32f4xx_hash_md5.c
-
-
- 3
- 26
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c
- stm32f4xx_hash_sha1.c
-
-
- 3
- 27
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c
- stm32f4xx_i2c.c
-
-
- 3
- 28
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c
- stm32f4xx_iwdg.c
-
-
- 3
- 29
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c
- stm32f4xx_pwr.c
-
-
- 3
- 30
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c
- stm32f4xx_rcc.c
-
-
- 3
- 31
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c
- stm32f4xx_rng.c
-
-
- 3
- 32
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c
- stm32f4xx_rtc.c
-
-
- 3
- 33
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c
- stm32f4xx_sdio.c
-
-
- 3
- 34
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c
- stm32f4xx_spi.c
-
-
- 3
- 35
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c
- stm32f4xx_syscfg.c
-
-
- 3
- 36
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c
- stm32f4xx_tim.c
-
-
- 3
- 37
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c
- stm32f4xx_usart.c
-
-
- 3
- 38
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c
- stm32f4xx_wwdg.c
-
-
- 3
- 39
- 2
- 0
- 0
- 0
- 0
- 173
- 173
- 0
- Libraries\CMSIS\ST\STM32F4xx\Source\Templates\arm\startup_stm32f4xx.s
- startup_stm32f4xx.s
-
-
-
-
- Kernel
- 0
- 0
- 0
-
- 4
- 40
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\clock.c
- clock.c
-
-
- 4
- 41
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\device.c
- device.c
-
-
- 4
- 42
- 1
- 0
- 0
- 0
- 0
- 149
- 156
- 0
- ..\..\src\idle.c
- idle.c
-
-
- 4
- 43
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\ipc.c
- ipc.c
-
-
- 4
- 44
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\irq.c
- irq.c
-
-
- 4
- 45
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\kservice.c
- kservice.c
-
-
- 4
- 46
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\mem.c
- mem.c
-
-
- 4
- 47
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\mempool.c
- mempool.c
-
-
- 4
- 48
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\object.c
- object.c
-
-
- 4
- 49
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\scheduler.c
- scheduler.c
-
-
- 4
- 50
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\thread.c
- thread.c
-
-
- 4
- 51
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\src\timer.c
- timer.c
-
-
-
-
- CORTEX-M4
- 0
- 0
- 0
-
- 5
- 52
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\libcpu\arm\cortex-m4\cpuport.c
- cpuport.c
-
-
- 5
- 53
- 2
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\libcpu\arm\cortex-m4\context_rvds.S
- context_rvds.S
-
-
- 5
- 54
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\libcpu\arm\common\backtrace.c
- backtrace.c
-
-
- 5
- 55
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\libcpu\arm\common\div0.c
- div0.c
-
-
- 5
- 56
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\libcpu\arm\common\showmem.c
- showmem.c
-
-
-
-
- finsh
- 0
- 0
- 0
-
- 6
- 57
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\cmd.c
- cmd.c
-
-
- 6
- 58
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_compiler.c
- finsh_compiler.c
-
-
- 6
- 59
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_error.c
- finsh_error.c
-
-
- 6
- 60
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_heap.c
- finsh_heap.c
-
-
- 6
- 61
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_init.c
- finsh_init.c
-
-
- 6
- 62
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_node.c
- finsh_node.c
-
-
- 6
- 63
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_ops.c
- finsh_ops.c
-
-
- 6
- 64
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_parser.c
- finsh_parser.c
-
-
- 6
- 65
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_token.c
- finsh_token.c
-
-
- 6
- 66
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_var.c
- finsh_var.c
-
-
- 6
- 67
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\finsh_vm.c
- finsh_vm.c
-
-
- 6
- 68
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\shell.c
- shell.c
-
-
- 6
- 69
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ..\..\components\finsh\symbol.c
- symbol.c
-
-
-
-
diff --git a/bsp/stm32f40x/project.uvproj b/bsp/stm32f40x/project.uvproj
index 85c434a0e9..da6c71a151 100644
--- a/bsp/stm32f40x/project.uvproj
+++ b/bsp/stm32f40x/project.uvproj
@@ -640,6 +640,13 @@
drivers/board.c
+
+
+ gpio.c
+ 1
+ drivers/gpio.c
+
+
stm32f4xx_it.c