diff --git a/platformio.ini b/platformio.ini
index 70500a058..0296bfee7 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -17,7 +17,7 @@ extra_configs =
[common]
lib_archive = no
-build_src_filter = +<*> -<.git/> -<.svn/> - - - - - - - -
+build_src_filter = +<*> -<.git/> -<.svn/> - - - - - -
extra_scripts =
pre:script/pre_script.py
post:script/post_script.py
@@ -35,7 +35,7 @@ extends = common
board = SIMULATOR
platform = native
debug_tool = custom
-build_src_filter = ${common.build_src_filter} + +
+build_src_filter = ${common.build_src_filter} + +
build_flags =
${common.build_flags}
-lm
@@ -48,7 +48,7 @@ debug_tool = stlink
upload_protocol = dfu
platform = ststm32@~17.5.0
platform_packages = toolchain-gccarmnoneeabi@~1.120301.0
-build_src_filter = ${common.build_src_filter} +
+build_src_filter = ${common.build_src_filter} +
framework = stm32cube
board_build.stm32cube.custom_system_setup = yes
@@ -171,7 +171,7 @@ platform = https://github.com/ArteryTek/platform-arterytekat32.git#5729d36
platform_packages = toolchain-gccarmnoneeabi@~1.120301.0
framework = at32firmlib
board_build.at32firmlib.custom_system_setup = yes
-build_src_filter = ${common.build_src_filter} +
+build_src_filter = ${common.build_src_filter} +
[at32f435]
extends = at32
diff --git a/src/core/project.h b/src/core/project.h
index ff1e3012c..02a214b0c 100644
--- a/src/core/project.h
+++ b/src/core/project.h
@@ -6,15 +6,15 @@
#include "core/target.h"
#ifdef STM32
-#include "driver/stm32/system.h"
+#include "mcu/stm32/system.h"
#endif
#ifdef AT32
-#include "driver/at32/system.h"
+#include "mcu/at32/system.h"
#endif
#ifdef SIMULATOR
-#include "driver/native/system.h"
+#include "mcu/native/system.h"
#endif
#ifdef USE_FAST_RAM
diff --git a/src/driver/at32/adc.c b/src/mcu/at32/adc.c
similarity index 100%
rename from src/driver/at32/adc.c
rename to src/mcu/at32/adc.c
diff --git a/src/driver/at32/adc.h b/src/mcu/at32/adc.h
similarity index 100%
rename from src/driver/at32/adc.h
rename to src/mcu/at32/adc.h
diff --git a/src/driver/at32/dma.c b/src/mcu/at32/dma.c
similarity index 100%
rename from src/driver/at32/dma.c
rename to src/mcu/at32/dma.c
diff --git a/src/driver/at32/dma.h b/src/mcu/at32/dma.h
similarity index 100%
rename from src/driver/at32/dma.h
rename to src/mcu/at32/dma.h
diff --git a/src/driver/at32/fmc.c b/src/mcu/at32/fmc.c
similarity index 100%
rename from src/driver/at32/fmc.c
rename to src/mcu/at32/fmc.c
diff --git a/src/driver/at32/gpio.c b/src/mcu/at32/gpio.c
similarity index 100%
rename from src/driver/at32/gpio.c
rename to src/mcu/at32/gpio.c
diff --git a/src/driver/at32/gpio.h b/src/mcu/at32/gpio.h
similarity index 100%
rename from src/driver/at32/gpio.h
rename to src/mcu/at32/gpio.h
diff --git a/src/driver/at32/motor_dshot.c b/src/mcu/at32/motor_dshot.c
similarity index 100%
rename from src/driver/at32/motor_dshot.c
rename to src/mcu/at32/motor_dshot.c
diff --git a/src/driver/at32/motor_pwm.c b/src/mcu/at32/motor_pwm.c
similarity index 100%
rename from src/driver/at32/motor_pwm.c
rename to src/mcu/at32/motor_pwm.c
diff --git a/src/driver/at32/rcc.c b/src/mcu/at32/rcc.c
similarity index 100%
rename from src/driver/at32/rcc.c
rename to src/mcu/at32/rcc.c
diff --git a/src/driver/at32/rcc.h b/src/mcu/at32/rcc.h
similarity index 100%
rename from src/driver/at32/rcc.h
rename to src/mcu/at32/rcc.h
diff --git a/src/driver/at32/reset.c b/src/mcu/at32/reset.c
similarity index 100%
rename from src/driver/at32/reset.c
rename to src/mcu/at32/reset.c
diff --git a/src/driver/at32/serial.c b/src/mcu/at32/serial.c
similarity index 100%
rename from src/driver/at32/serial.c
rename to src/mcu/at32/serial.c
diff --git a/src/driver/at32/serial_soft.c b/src/mcu/at32/serial_soft.c
similarity index 100%
rename from src/driver/at32/serial_soft.c
rename to src/mcu/at32/serial_soft.c
diff --git a/src/driver/at32/spi.c b/src/mcu/at32/spi.c
similarity index 100%
rename from src/driver/at32/spi.c
rename to src/mcu/at32/spi.c
diff --git a/src/driver/at32/system.h b/src/mcu/at32/system.h
similarity index 100%
rename from src/driver/at32/system.h
rename to src/mcu/at32/system.h
diff --git a/src/driver/at32/time.c b/src/mcu/at32/time.c
similarity index 100%
rename from src/driver/at32/time.c
rename to src/mcu/at32/time.c
diff --git a/src/driver/at32/time.h b/src/mcu/at32/time.h
similarity index 100%
rename from src/driver/at32/time.h
rename to src/mcu/at32/time.h
diff --git a/src/driver/at32/timer.c b/src/mcu/at32/timer.c
similarity index 100%
rename from src/driver/at32/timer.c
rename to src/mcu/at32/timer.c
diff --git a/src/driver/at32/usb.c b/src/mcu/at32/usb.c
similarity index 100%
rename from src/driver/at32/usb.c
rename to src/mcu/at32/usb.c
diff --git a/src/driver/native/fmc.c b/src/mcu/native/fmc.c
similarity index 100%
rename from src/driver/native/fmc.c
rename to src/mcu/native/fmc.c
diff --git a/src/driver/native/gpio.c b/src/mcu/native/gpio.c
similarity index 100%
rename from src/driver/native/gpio.c
rename to src/mcu/native/gpio.c
diff --git a/src/driver/native/gpio.h b/src/mcu/native/gpio.h
similarity index 100%
rename from src/driver/native/gpio.h
rename to src/mcu/native/gpio.h
diff --git a/src/driver/native/reset.c b/src/mcu/native/reset.c
similarity index 100%
rename from src/driver/native/reset.c
rename to src/mcu/native/reset.c
diff --git a/src/driver/native/system.h b/src/mcu/native/system.h
similarity index 100%
rename from src/driver/native/system.h
rename to src/mcu/native/system.h
diff --git a/src/driver/native/time.c b/src/mcu/native/time.c
similarity index 100%
rename from src/driver/native/time.c
rename to src/mcu/native/time.c
diff --git a/src/driver/native/time.h b/src/mcu/native/time.h
similarity index 100%
rename from src/driver/native/time.h
rename to src/mcu/native/time.h
diff --git a/src/driver/native/usb.c b/src/mcu/native/usb.c
similarity index 100%
rename from src/driver/native/usb.c
rename to src/mcu/native/usb.c
diff --git a/src/driver/stm32/adc.c b/src/mcu/stm32/adc.c
similarity index 100%
rename from src/driver/stm32/adc.c
rename to src/mcu/stm32/adc.c
diff --git a/src/driver/stm32/adc.h b/src/mcu/stm32/adc.h
similarity index 100%
rename from src/driver/stm32/adc.h
rename to src/mcu/stm32/adc.h
diff --git a/src/driver/stm32/dma.c b/src/mcu/stm32/dma.c
similarity index 100%
rename from src/driver/stm32/dma.c
rename to src/mcu/stm32/dma.c
diff --git a/src/driver/stm32/dma.h b/src/mcu/stm32/dma.h
similarity index 100%
rename from src/driver/stm32/dma.h
rename to src/mcu/stm32/dma.h
diff --git a/src/driver/stm32/exti.c b/src/mcu/stm32/exti.c
similarity index 100%
rename from src/driver/stm32/exti.c
rename to src/mcu/stm32/exti.c
diff --git a/src/driver/stm32/fmc.c b/src/mcu/stm32/fmc.c
similarity index 100%
rename from src/driver/stm32/fmc.c
rename to src/mcu/stm32/fmc.c
diff --git a/src/driver/stm32/gpio.c b/src/mcu/stm32/gpio.c
similarity index 100%
rename from src/driver/stm32/gpio.c
rename to src/mcu/stm32/gpio.c
diff --git a/src/driver/stm32/gpio.h b/src/mcu/stm32/gpio.h
similarity index 100%
rename from src/driver/stm32/gpio.h
rename to src/mcu/stm32/gpio.h
diff --git a/src/driver/stm32/motor_dshot.c b/src/mcu/stm32/motor_dshot.c
similarity index 100%
rename from src/driver/stm32/motor_dshot.c
rename to src/mcu/stm32/motor_dshot.c
diff --git a/src/driver/stm32/motor_pwm.c b/src/mcu/stm32/motor_pwm.c
similarity index 100%
rename from src/driver/stm32/motor_pwm.c
rename to src/mcu/stm32/motor_pwm.c
diff --git a/src/driver/stm32/rcc.c b/src/mcu/stm32/rcc.c
similarity index 100%
rename from src/driver/stm32/rcc.c
rename to src/mcu/stm32/rcc.c
diff --git a/src/driver/stm32/rcc.h b/src/mcu/stm32/rcc.h
similarity index 100%
rename from src/driver/stm32/rcc.h
rename to src/mcu/stm32/rcc.h
diff --git a/src/driver/stm32/reset.c b/src/mcu/stm32/reset.c
similarity index 100%
rename from src/driver/stm32/reset.c
rename to src/mcu/stm32/reset.c
diff --git a/src/driver/stm32/serial.c b/src/mcu/stm32/serial.c
similarity index 100%
rename from src/driver/stm32/serial.c
rename to src/mcu/stm32/serial.c
diff --git a/src/driver/stm32/serial_soft.c b/src/mcu/stm32/serial_soft.c
similarity index 100%
rename from src/driver/stm32/serial_soft.c
rename to src/mcu/stm32/serial_soft.c
diff --git a/src/driver/stm32/spi.c b/src/mcu/stm32/spi.c
similarity index 100%
rename from src/driver/stm32/spi.c
rename to src/mcu/stm32/spi.c
diff --git a/src/driver/stm32/system.h b/src/mcu/stm32/system.h
similarity index 100%
rename from src/driver/stm32/system.h
rename to src/mcu/stm32/system.h
diff --git a/src/driver/stm32/time.c b/src/mcu/stm32/time.c
similarity index 100%
rename from src/driver/stm32/time.c
rename to src/mcu/stm32/time.c
diff --git a/src/driver/stm32/time.h b/src/mcu/stm32/time.h
similarity index 100%
rename from src/driver/stm32/time.h
rename to src/mcu/stm32/time.h
diff --git a/src/driver/stm32/timer.c b/src/mcu/stm32/timer.c
similarity index 100%
rename from src/driver/stm32/timer.c
rename to src/mcu/stm32/timer.c
diff --git a/src/driver/stm32/usb.c b/src/mcu/stm32/usb.c
similarity index 100%
rename from src/driver/stm32/usb.c
rename to src/mcu/stm32/usb.c