diff --git a/bsp/mm32l3xx/.config b/bsp/mm32l3xx/.config
index 254f49a39b..64dbd2ec91 100644
--- a/bsp/mm32l3xx/.config
+++ b/bsp/mm32l3xx/.config
@@ -7,6 +7,7 @@
# RT-Thread Kernel
#
CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
# CONFIG_RT_USING_SMP is not set
CONFIG_RT_ALIGN_SIZE=4
# CONFIG_RT_THREAD_PRIORITY_8 is not set
@@ -64,7 +65,8 @@ CONFIG_RT_USING_DEVICE=y
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=128
CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
-CONFIG_RT_VER_NUM=0x40001
+CONFIG_RT_VER_NUM=0x40002
+# CONFIG_RT_USING_CPU_FFS is not set
# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
#
@@ -109,6 +111,7 @@ CONFIG_FINSH_ARG_MAX=10
#
CONFIG_RT_USING_DEVICE_IPC=y
CONFIG_RT_PIPE_BUFSZ=512
+# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
CONFIG_RT_USING_SERIAL=y
# CONFIG_RT_SERIAL_USING_DMA is not set
CONFIG_RT_SERIAL_RB_BUFSZ=64
@@ -130,6 +133,11 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_AUDIO is not set
# CONFIG_RT_USING_SENSOR is not set
+#
+# Using Hardware Crypto drivers
+#
+# CONFIG_RT_USING_HWCRYPTO is not set
+
#
# Using WiFi
#
@@ -156,6 +164,11 @@ CONFIG_RT_USING_PIN=y
#
# CONFIG_RT_USING_SAL is not set
+#
+# Network interface device
+#
+# CONFIG_RT_USING_NETDEV is not set
+
#
# light weight TCP/IP stack
#
@@ -179,7 +192,6 @@ CONFIG_RT_USING_PIN=y
#
# Utilities
#
-# CONFIG_RT_USING_LOGTRACE is not set
# CONFIG_RT_USING_RYM is not set
# CONFIG_RT_USING_ULOG is not set
# CONFIG_RT_USING_UTEST is not set
@@ -198,6 +210,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set
# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_LIBMODBUS is not set
# CONFIG_PKG_USING_LJSON is not set
# CONFIG_PKG_USING_EZXML is not set
# CONFIG_PKG_USING_NANOPB is not set
@@ -215,6 +228,7 @@ CONFIG_RT_USING_PIN=y
# Wiced WiFi
#
# CONFIG_PKG_USING_WLAN_WICED is not set
+# CONFIG_PKG_USING_RW007 is not set
# CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set
@@ -229,6 +243,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_ALI_IOTKIT is not set
# CONFIG_PKG_USING_AZURE is not set
# CONFIG_PKG_USING_TENCENT_IOTKIT is not set
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
#
# security packages
@@ -260,6 +276,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_RDB is not set
# CONFIG_PKG_USING_QRCODE is not set
# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_ADBD is not set
#
# system packages
@@ -280,6 +297,18 @@ CONFIG_RT_USING_PIN=y
#
# peripheral libraries and drivers
#
+
+#
+# sensors drivers
+#
+# CONFIG_PKG_USING_LSM6DSL is not set
+# CONFIG_PKG_USING_LPS22HB is not set
+# CONFIG_PKG_USING_HTS221 is not set
+# CONFIG_PKG_USING_LSM303AGR is not set
+# CONFIG_PKG_USING_BME280 is not set
+# CONFIG_PKG_USING_BMA400 is not set
+# CONFIG_PKG_USING_BMI160_BMX160 is not set
+# CONFIG_PKG_USING_SPL0601 is not set
# CONFIG_PKG_USING_REALTEK_AMEBA is not set
# CONFIG_PKG_USING_SHT2X is not set
# CONFIG_PKG_USING_AHT10 is not set
@@ -290,6 +319,8 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_MPU6XXX is not set
# CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
#
@@ -317,6 +348,35 @@ CONFIG_RT_USING_PIN=y
# CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
+#
+# Privated Packages of RealThread
+#
+# CONFIG_PKG_USING_CODEC is not set
+# CONFIG_PKG_USING_PLAYER is not set
+# CONFIG_PKG_USING_MPLAYER is not set
+# CONFIG_PKG_USING_PERSIMMON_SRC is not set
+# CONFIG_PKG_USING_JS_PERSIMMON is not set
+# CONFIG_PKG_USING_JERRYSCRIPT_WIN32 is not set
+# CONFIG_PKG_USING_LIBRWS is not set
+
+#
+# Network Utilities
+#
+# CONFIG_PKG_USING_WICED is not set
+# CONFIG_PKG_USING_CLOUDSDK is not set
+# CONFIG_PKG_USING_COREMARK is not set
+# CONFIG_PKG_USING_POWER_MANAGER is not set
+# CONFIG_PKG_USING_RT_OTA is not set
+# CONFIG_PKG_USING_RDBD_SRC is not set
+# CONFIG_PKG_USING_RTINSIGHT is not set
+# CONFIG_PKG_USING_SMARTCONFIG is not set
+# CONFIG_PKG_USING_RTX is not set
+# CONFIG_RT_USING_TESTCASE is not set
+# CONFIG_PKG_USING_NGHTTP2 is not set
+# CONFIG_PKG_USING_AVS is not set
+# CONFIG_PKG_USING_STS is not set
+# CONFIG_PKG_USING_DLMS is not set
+
#
# Hardware Drivers Config
#
diff --git a/bsp/mm32l3xx/Libraries/SConscript b/bsp/mm32l3xx/Libraries/SConscript
index 4668d957bf..14e95cd282 100644
--- a/bsp/mm32l3xx/Libraries/SConscript
+++ b/bsp/mm32l3xx/Libraries/SConscript
@@ -2,14 +2,12 @@ from building import *
import rtconfig
cwd = GetCurrentDir()
src = ['MM32L3xx/Source/system_MM32L3xx.c']
-CPPPATH = [cwd + '/CMSIS/CORE', cwd + '/MM32L3xx/Include', cwd + '/MM32L3xx/Source', cwd + '/MM32L3xx/HAL_lib/inc']
+CPPPATH = [cwd + '/CMSIS/KEIL_CORE', cwd + '/MM32L3xx/Include', cwd + '/MM32L3xx/Source', cwd + '/MM32L3xx/HAL_lib/inc']
src += Glob('MM32L3xx/HAL_lib/src/*.c')
CPPDEFINES = ['USE_STDPERIPH_DRIVER']
-if rtconfig.CROSS_TOOL == 'gcc':
- src += ['MM32L3xx/Source/GCC_StartAsm/startup_MM32L3xx.s']
-elif rtconfig.CROSS_TOOL == 'keil':
+if rtconfig.CROSS_TOOL == 'keil':
src += ['MM32L3xx/Source/KEIL_StartAsm/startup_MM32L3xx.s']
elif rtconfig.CROSS_TOOL == 'iar':
src += ['MM32L3xx/Source/IAR_StartAsm/startup_MM32L3xx.s']
diff --git a/bsp/mm32l3xx/project.ewp b/bsp/mm32l3xx/project.ewp
index f6c1f08238..7b77d8b946 100644
--- a/bsp/mm32l3xx/project.ewp
+++ b/bsp/mm32l3xx/project.ewp
@@ -345,15 +345,15 @@