summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSummerGift <[email protected]>2018-12-13 10:56:09 +0800
committerSummerGift <[email protected]>2018-12-13 12:05:40 +0800
commit968110ffd61dcc30a48c98308b034fcaf532cdb7 (patch)
tree4efa463a1f8822effc6b003771ac0c7445ed3f63
parentdcf7bce2cc5d04bcb006b84a27a5498f42268184 (diff)
[bsp][stm32] add scons --dist function
-rw-r--r--bsp/stm32/libraries/templates/stm32f10x/SConstruct14
-rw-r--r--bsp/stm32/libraries/templates/stm32f10x/board/SConscript23
-rw-r--r--bsp/stm32/libraries/templates/stm32f10x/rtconfig.py3
-rw-r--r--bsp/stm32/libraries/templates/stm32f4xx/SConstruct14
-rw-r--r--bsp/stm32/libraries/templates/stm32f4xx/board/SConscript18
-rw-r--r--bsp/stm32/libraries/templates/stm32f4xx/rtconfig.py3
-rw-r--r--bsp/stm32/libraries/templates/stm32l4xx/SConstruct14
-rw-r--r--bsp/stm32/libraries/templates/stm32l4xx/board/SConscript18
-rw-r--r--bsp/stm32/libraries/templates/stm32l4xx/rtconfig.py3
-rw-r--r--bsp/stm32/stm32f103-atk-nano/SConstruct14
-rw-r--r--bsp/stm32/stm32f103-atk-nano/board/SConscript17
-rw-r--r--bsp/stm32/stm32f103-atk-nano/rtconfig.py3
-rw-r--r--bsp/stm32/stm32f103-fire-arbitrary/SConstruct14
-rw-r--r--bsp/stm32/stm32f103-fire-arbitrary/board/SConscript15
-rw-r--r--bsp/stm32/stm32f103-fire-arbitrary/rtconfig.py3
-rw-r--r--bsp/stm32/stm32f407-atk-explorer/SConstruct14
-rw-r--r--bsp/stm32/stm32f407-atk-explorer/board/SConscript16
-rw-r--r--bsp/stm32/stm32f407-atk-explorer/rtconfig.py3
-rw-r--r--bsp/stm32/stm32f429-atk-apollo/SConstruct14
-rw-r--r--bsp/stm32/stm32f429-atk-apollo/board/SConscript18
-rw-r--r--bsp/stm32/stm32f429-atk-apollo/rtconfig.py3
-rw-r--r--bsp/stm32/stm32f429-fire-challenger/SConstruct14
-rw-r--r--bsp/stm32/stm32f429-fire-challenger/board/SConscript19
-rw-r--r--bsp/stm32/stm32f429-fire-challenger/rtconfig.py3
-rw-r--r--tools/building.py3
-rw-r--r--tools/mkdist.py38
26 files changed, 246 insertions, 75 deletions
diff --git a/bsp/stm32/libraries/templates/stm32f10x/SConstruct b/bsp/stm32/libraries/templates/stm32f10x/SConstruct
index b541737671..5514659688 100644
--- a/bsp/stm32/libraries/templates/stm32f10x/SConstruct
+++ b/bsp/stm32/libraries/templates/stm32f10x/SConstruct
@@ -38,11 +38,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./')
bsp_vdir = 'build'
-# include drivers
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F1xx_HAL/SConscript'))
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries/'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries/'
+
+stm32_library = 'STM32F1xx_HAL'
+rtconfig.BSP_LIBRARY_TYPE = stm32_library
# include libraries
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
+objs.extend(SConscript(libraries_path_prefix + stm32_library + '/SConscript'))
+
+# include drivers
+objs.extend(SConscript(libraries_path_prefix + '/HAL_Drivers/SConscript'))
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/stm32/libraries/templates/stm32f10x/board/SConscript b/bsp/stm32/libraries/templates/stm32f10x/board/SConscript
index a0011e100f..1ddc236ef5 100644
--- a/bsp/stm32/libraries/templates/stm32f10x/board/SConscript
+++ b/bsp/stm32/libraries/templates/stm32f10x/board/SConscript
@@ -1,23 +1,28 @@
+import os
import rtconfig
from building import *
cwd = GetCurrentDir()
-# add the general drivers.
-src = Glob('board.c')
+# add general drivers
+src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32f1xx_hal_msp.c')
-path = [cwd]
+path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
+if os.path.exists(cwd + '/../libraries'):
+ startup_path_prefix = cwd + '/../libraries'
+else:
+ startup_path_prefix = cwd + '/../../libraries'
+
if rtconfig.CROSS_TOOL == 'gcc':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/startup_stm32f103xb.s']
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/startup_stm32f103xb.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/arm/startup_stm32f103xb.s']
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/arm/startup_stm32f103xb.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/iar/startup_stm32f103xb.s']
-
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/iar/startup_stm32f103xb.s']
+
CPPDEFINES = ['STM32F103xB']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
-
-Return('group') \ No newline at end of file
+Return('group')
diff --git a/bsp/stm32/libraries/templates/stm32f10x/rtconfig.py b/bsp/stm32/libraries/templates/stm32f10x/rtconfig.py
index 7906918058..79904118e5 100644
--- a/bsp/stm32/libraries/templates/stm32f10x/rtconfig.py
+++ b/bsp/stm32/libraries/templates/stm32f10x/rtconfig.py
@@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m3'
CROSS_TOOL='gcc'
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'):
diff --git a/bsp/stm32/libraries/templates/stm32f4xx/SConstruct b/bsp/stm32/libraries/templates/stm32f4xx/SConstruct
index f9b3d33a62..bcfdc31e22 100644
--- a/bsp/stm32/libraries/templates/stm32f4xx/SConstruct
+++ b/bsp/stm32/libraries/templates/stm32f4xx/SConstruct
@@ -37,11 +37,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./')
-# include drivers
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F4xx_HAL/SConscript'))
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries/'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries/'
+
+stm32_library = 'STM32F4xx_HAL'
+rtconfig.BSP_LIBRARY_TYPE = stm32_library
# include libraries
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
+objs.extend(SConscript(libraries_path_prefix + stm32_library + '/SConscript'))
+
+# include drivers
+objs.extend(SConscript(libraries_path_prefix + '/HAL_Drivers/SConscript'))
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/stm32/libraries/templates/stm32f4xx/board/SConscript b/bsp/stm32/libraries/templates/stm32f4xx/board/SConscript
index 5709200ba1..e7b053a70a 100644
--- a/bsp/stm32/libraries/templates/stm32f4xx/board/SConscript
+++ b/bsp/stm32/libraries/templates/stm32f4xx/board/SConscript
@@ -1,21 +1,27 @@
+import os
import rtconfig
from building import *
cwd = GetCurrentDir()
-# add the general drivers.
-src = Glob('board.c')
+# add general drivers
+src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32f4xx_hal_msp.c')
-path = [cwd]
+path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
+if os.path.exists(cwd + '/../libraries'):
+ startup_path_prefix = cwd + '/../libraries'
+else:
+ startup_path_prefix = cwd + '/../../libraries'
+
if rtconfig.CROSS_TOOL == 'gcc':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f407xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f407xx.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f407xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f407xx.s']
CPPDEFINES = ['STM32F407xx']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/stm32/libraries/templates/stm32f4xx/rtconfig.py b/bsp/stm32/libraries/templates/stm32f4xx/rtconfig.py
index ce04832ca5..2e3b7cf492 100644
--- a/bsp/stm32/libraries/templates/stm32f4xx/rtconfig.py
+++ b/bsp/stm32/libraries/templates/stm32f4xx/rtconfig.py
@@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m4'
CROSS_TOOL='gcc'
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'):
diff --git a/bsp/stm32/libraries/templates/stm32l4xx/SConstruct b/bsp/stm32/libraries/templates/stm32l4xx/SConstruct
index 23a8f6755c..c8abfbd6ec 100644
--- a/bsp/stm32/libraries/templates/stm32l4xx/SConstruct
+++ b/bsp/stm32/libraries/templates/stm32l4xx/SConstruct
@@ -37,11 +37,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./')
-# include drivers
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32L4xx_HAL/SConscript'))
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries/'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries/'
+
+stm32_library = 'STM32FL4xx_HAL'
+rtconfig.BSP_LIBRARY_TYPE = stm32_library
# include libraries
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
+objs.extend(SConscript(libraries_path_prefix + stm32_library + '/SConscript'))
+
+# include drivers
+objs.extend(SConscript(libraries_path_prefix + '/HAL_Drivers/SConscript'))
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/stm32/libraries/templates/stm32l4xx/board/SConscript b/bsp/stm32/libraries/templates/stm32l4xx/board/SConscript
index a0bf277556..eaa002ca9a 100644
--- a/bsp/stm32/libraries/templates/stm32l4xx/board/SConscript
+++ b/bsp/stm32/libraries/templates/stm32l4xx/board/SConscript
@@ -1,21 +1,27 @@
+import os
import rtconfig
from building import *
cwd = GetCurrentDir()
-# add the general drivers.
-src = Glob('board.c')
+# add general drivers
+src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32l4xx_hal_msp.c')
-path = [cwd]
+path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
+if os.path.exists(cwd + '/../libraries'):
+ startup_path_prefix = cwd + '/../libraries'
+else:
+ startup_path_prefix = cwd + '/../../libraries'
+
if rtconfig.CROSS_TOOL == 'gcc':
- src += [cwd + '/../../libraries/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/gcc/startup_stm32l475xx.s']
+ src += [startup_path_prefix + '/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/gcc/startup_stm32l475xx.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [cwd + '/../../libraries/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/arm/startup_stm32l475xx.s']
+ src += [startup_path_prefix + '/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/arm/startup_stm32l475xx.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [cwd + '/../../libraries/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/iar/startup_stm32l475xx.s']
+ src += [startup_path_prefix + '/STM32L4xx_HAL/CMSIS/Device/ST/STM32L4xx/Source/Templates/iar/startup_stm32l475xx.s']
CPPDEFINES = ['STM32L475xx']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/stm32/libraries/templates/stm32l4xx/rtconfig.py b/bsp/stm32/libraries/templates/stm32l4xx/rtconfig.py
index 53f5cd79bc..50c1d8a0f7 100644
--- a/bsp/stm32/libraries/templates/stm32l4xx/rtconfig.py
+++ b/bsp/stm32/libraries/templates/stm32l4xx/rtconfig.py
@@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m4'
CROSS_TOOL='gcc'
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'):
diff --git a/bsp/stm32/stm32f103-atk-nano/SConstruct b/bsp/stm32/stm32f103-atk-nano/SConstruct
index b541737671..5514659688 100644
--- a/bsp/stm32/stm32f103-atk-nano/SConstruct
+++ b/bsp/stm32/stm32f103-atk-nano/SConstruct
@@ -38,11 +38,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./')
bsp_vdir = 'build'
-# include drivers
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F1xx_HAL/SConscript'))
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries/'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries/'
+
+stm32_library = 'STM32F1xx_HAL'
+rtconfig.BSP_LIBRARY_TYPE = stm32_library
# include libraries
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
+objs.extend(SConscript(libraries_path_prefix + stm32_library + '/SConscript'))
+
+# include drivers
+objs.extend(SConscript(libraries_path_prefix + '/HAL_Drivers/SConscript'))
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/stm32/stm32f103-atk-nano/board/SConscript b/bsp/stm32/stm32f103-atk-nano/board/SConscript
index 16ac2f078b..fe2f1bb3f5 100644
--- a/bsp/stm32/stm32f103-atk-nano/board/SConscript
+++ b/bsp/stm32/stm32f103-atk-nano/board/SConscript
@@ -1,24 +1,31 @@
+import os
import rtconfig
from building import *
cwd = GetCurrentDir()
-src = Glob('board.c')
+# add general drivers
+src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32f1xx_hal_msp.c')
if GetDepend(['BSP_USING_SPI_FLASH']):
src += Glob('ports/spi_flash_init.c')
-path = [cwd]
+path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
path += [cwd + '/ports']
+if os.path.exists(cwd + '/../libraries'):
+ startup_path_prefix = cwd + '/../libraries'
+else:
+ startup_path_prefix = cwd + '/../../libraries'
+
if rtconfig.CROSS_TOOL == 'gcc':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/startup_stm32f103xb.s']
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/startup_stm32f103xb.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/arm/startup_stm32f103xb.s']
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/arm/startup_stm32f103xb.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/iar/startup_stm32f103xb.s']
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/iar/startup_stm32f103xb.s']
CPPDEFINES = ['STM32F103xB']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/stm32/stm32f103-atk-nano/rtconfig.py b/bsp/stm32/stm32f103-atk-nano/rtconfig.py
index 7906918058..79904118e5 100644
--- a/bsp/stm32/stm32f103-atk-nano/rtconfig.py
+++ b/bsp/stm32/stm32f103-atk-nano/rtconfig.py
@@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m3'
CROSS_TOOL='gcc'
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'):
diff --git a/bsp/stm32/stm32f103-fire-arbitrary/SConstruct b/bsp/stm32/stm32f103-fire-arbitrary/SConstruct
index b541737671..5514659688 100644
--- a/bsp/stm32/stm32f103-fire-arbitrary/SConstruct
+++ b/bsp/stm32/stm32f103-fire-arbitrary/SConstruct
@@ -38,11 +38,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./')
bsp_vdir = 'build'
-# include drivers
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F1xx_HAL/SConscript'))
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries/'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries/'
+
+stm32_library = 'STM32F1xx_HAL'
+rtconfig.BSP_LIBRARY_TYPE = stm32_library
# include libraries
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
+objs.extend(SConscript(libraries_path_prefix + stm32_library + '/SConscript'))
+
+# include drivers
+objs.extend(SConscript(libraries_path_prefix + '/HAL_Drivers/SConscript'))
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/stm32/stm32f103-fire-arbitrary/board/SConscript b/bsp/stm32/stm32f103-fire-arbitrary/board/SConscript
index 892d5d6fec..868e5b8a48 100644
--- a/bsp/stm32/stm32f103-fire-arbitrary/board/SConscript
+++ b/bsp/stm32/stm32f103-fire-arbitrary/board/SConscript
@@ -1,9 +1,11 @@
+import os
import rtconfig
from building import *
cwd = GetCurrentDir()
-src = Glob('board.c')
+# add general drivers
+src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32f1xx_hal_msp.c')
if GetDepend(['BSP_USING_ETH']):
@@ -16,12 +18,17 @@ path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
path += [cwd + '/ports']
+if os.path.exists(cwd + '/../libraries'):
+ startup_path_prefix = cwd + '/../libraries'
+else:
+ startup_path_prefix = cwd + '/../../libraries'
+
if rtconfig.CROSS_TOOL == 'gcc':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/startup_stm32f103xe.s']
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/startup_stm32f103xe.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/arm/startup_stm32f103xe.s']
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/arm/startup_stm32f103xe.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [cwd + '/../../libraries/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/iar/startup_stm32f103xe.s']
+ src += [startup_path_prefix + '/STM32F1xx_HAL/CMSIS/Device/ST/STM32F1xx/Source/Templates/iar/startup_stm32f103xe.s']
CPPDEFINES = ['STM32F103xE']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/stm32/stm32f103-fire-arbitrary/rtconfig.py b/bsp/stm32/stm32f103-fire-arbitrary/rtconfig.py
index 7906918058..79904118e5 100644
--- a/bsp/stm32/stm32f103-fire-arbitrary/rtconfig.py
+++ b/bsp/stm32/stm32f103-fire-arbitrary/rtconfig.py
@@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m3'
CROSS_TOOL='gcc'
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'):
diff --git a/bsp/stm32/stm32f407-atk-explorer/SConstruct b/bsp/stm32/stm32f407-atk-explorer/SConstruct
index f9b3d33a62..bcfdc31e22 100644
--- a/bsp/stm32/stm32f407-atk-explorer/SConstruct
+++ b/bsp/stm32/stm32f407-atk-explorer/SConstruct
@@ -37,11 +37,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./')
-# include drivers
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F4xx_HAL/SConscript'))
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries/'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries/'
+
+stm32_library = 'STM32F4xx_HAL'
+rtconfig.BSP_LIBRARY_TYPE = stm32_library
# include libraries
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
+objs.extend(SConscript(libraries_path_prefix + stm32_library + '/SConscript'))
+
+# include drivers
+objs.extend(SConscript(libraries_path_prefix + '/HAL_Drivers/SConscript'))
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/stm32/stm32f407-atk-explorer/board/SConscript b/bsp/stm32/stm32f407-atk-explorer/board/SConscript
index bcaf10e784..861030d80f 100644
--- a/bsp/stm32/stm32f407-atk-explorer/board/SConscript
+++ b/bsp/stm32/stm32f407-atk-explorer/board/SConscript
@@ -1,10 +1,11 @@
+import os
import rtconfig
from building import *
cwd = GetCurrentDir()
-# add the general drivers.
-src = Glob('board.c')
+# add general drivers
+src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32f4xx_hal_msp.c')
if GetDepend(['BSP_USING_ETH']):
@@ -17,12 +18,17 @@ path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
path += [cwd + '/ports']
+if os.path.exists(cwd + '/../libraries'):
+ startup_path_prefix = cwd + '/../libraries'
+else:
+ startup_path_prefix = cwd + '/../../libraries'
+
if rtconfig.CROSS_TOOL == 'gcc':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f407xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f407xx.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f407xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f407xx.s']
CPPDEFINES = ['STM32F407xx']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/stm32/stm32f407-atk-explorer/rtconfig.py b/bsp/stm32/stm32f407-atk-explorer/rtconfig.py
index ce04832ca5..2e3b7cf492 100644
--- a/bsp/stm32/stm32f407-atk-explorer/rtconfig.py
+++ b/bsp/stm32/stm32f407-atk-explorer/rtconfig.py
@@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m4'
CROSS_TOOL='gcc'
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'):
diff --git a/bsp/stm32/stm32f429-atk-apollo/SConstruct b/bsp/stm32/stm32f429-atk-apollo/SConstruct
index f9b3d33a62..bcfdc31e22 100644
--- a/bsp/stm32/stm32f429-atk-apollo/SConstruct
+++ b/bsp/stm32/stm32f429-atk-apollo/SConstruct
@@ -37,11 +37,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./')
-# include drivers
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F4xx_HAL/SConscript'))
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries/'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries/'
+
+stm32_library = 'STM32F4xx_HAL'
+rtconfig.BSP_LIBRARY_TYPE = stm32_library
# include libraries
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
+objs.extend(SConscript(libraries_path_prefix + stm32_library + '/SConscript'))
+
+# include drivers
+objs.extend(SConscript(libraries_path_prefix + '/HAL_Drivers/SConscript'))
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/stm32/stm32f429-atk-apollo/board/SConscript b/bsp/stm32/stm32f429-atk-apollo/board/SConscript
index f58944ccbf..9e38a44209 100644
--- a/bsp/stm32/stm32f429-atk-apollo/board/SConscript
+++ b/bsp/stm32/stm32f429-atk-apollo/board/SConscript
@@ -1,9 +1,10 @@
+import os
import rtconfig
from building import *
cwd = GetCurrentDir()
-# add the general drivers.
+# add general drivers
src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32f4xx_hal_msp.c')
@@ -16,17 +17,18 @@ if GetDepend(['BSP_USING_SPI_FLASH']):
path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
path += [cwd + '/ports']
-
-
-if GetDepend(['BSP_USING_SDRAM']):
- path += [cwd + '/ports']
+
+if os.path.exists(cwd + '/../libraries'):
+ startup_path_prefix = cwd + '/../libraries'
+else:
+ startup_path_prefix = cwd + '/../../libraries'
if rtconfig.CROSS_TOOL == 'gcc':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f429xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f429xx.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f429xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f429xx.s']
CPPDEFINES = ['STM32F429xx']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/stm32/stm32f429-atk-apollo/rtconfig.py b/bsp/stm32/stm32f429-atk-apollo/rtconfig.py
index ce04832ca5..2e3b7cf492 100644
--- a/bsp/stm32/stm32f429-atk-apollo/rtconfig.py
+++ b/bsp/stm32/stm32f429-atk-apollo/rtconfig.py
@@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m4'
CROSS_TOOL='gcc'
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'):
diff --git a/bsp/stm32/stm32f429-fire-challenger/SConstruct b/bsp/stm32/stm32f429-fire-challenger/SConstruct
index f9b3d33a62..bcfdc31e22 100644
--- a/bsp/stm32/stm32f429-fire-challenger/SConstruct
+++ b/bsp/stm32/stm32f429-fire-challenger/SConstruct
@@ -37,11 +37,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
SDK_ROOT = os.path.abspath('./')
-# include drivers
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/STM32F4xx_HAL/SConscript'))
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries/'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries/'
+
+stm32_library = 'STM32F4xx_HAL'
+rtconfig.BSP_LIBRARY_TYPE = stm32_library
# include libraries
-objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
+objs.extend(SConscript(libraries_path_prefix + stm32_library + '/SConscript'))
+
+# include drivers
+objs.extend(SConscript(libraries_path_prefix + '/HAL_Drivers/SConscript'))
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/stm32/stm32f429-fire-challenger/board/SConscript b/bsp/stm32/stm32f429-fire-challenger/board/SConscript
index b42904e35d..00d86f2c33 100644
--- a/bsp/stm32/stm32f429-fire-challenger/board/SConscript
+++ b/bsp/stm32/stm32f429-fire-challenger/board/SConscript
@@ -1,10 +1,11 @@
+import os
import rtconfig
from building import *
cwd = GetCurrentDir()
-# add the general drivers.
-src = Glob('board.c')
+# add general drivers
+src = Glob('board.c')
src += Glob('CubeMX_Config/Src/stm32f4xx_hal_msp.c')
if GetDepend(['BSP_USING_ETH']):
@@ -13,19 +14,21 @@ if GetDepend(['BSP_USING_ETH']):
if GetDepend(['BSP_USING_SPI_FLASH']):
src += Glob('ports/spi_flash_init.c')
-path = [cwd]
+path = [cwd]
path += [cwd + '/CubeMX_Config/Inc']
path += [cwd + '/ports']
-if GetDepend(['BSP_USING_SDRAM']):
- path += [cwd + '/ports']
+if os.path.exists(cwd + '/../libraries'):
+ startup_path_prefix = cwd + '/../libraries'
+else:
+ startup_path_prefix = cwd + '/../../libraries'
if rtconfig.CROSS_TOOL == 'gcc':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f429xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f429xx.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [cwd + '/../../libraries/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f429xx.s']
+ src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f429xx.s']
CPPDEFINES = ['STM32F429xx']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/stm32/stm32f429-fire-challenger/rtconfig.py b/bsp/stm32/stm32f429-fire-challenger/rtconfig.py
index ce04832ca5..2e3b7cf492 100644
--- a/bsp/stm32/stm32f429-fire-challenger/rtconfig.py
+++ b/bsp/stm32/stm32f429-fire-challenger/rtconfig.py
@@ -5,6 +5,9 @@ ARCH='arm'
CPU='cortex-m4'
CROSS_TOOL='gcc'
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
if os.getenv('RTT_CC'):
CROSS_TOOL = os.getenv('RTT_CC')
if os.getenv('RTT_ROOT'):
diff --git a/tools/building.py b/tools/building.py
index ba6c5000e4..eb2da2fab9 100644
--- a/tools/building.py
+++ b/tools/building.py
@@ -810,6 +810,9 @@ def EndBuilding(target, program = None):
Env['target'] = program
Env['project'] = Projects
+ if hasattr(rtconfig, 'BSP_LIBRARY_TYPE'):
+ Env['bsp_lib_type'] = rtconfig.BSP_LIBRARY_TYPE
+
Env.AddPostAction(target, rtconfig.POST_ACTION)
# Add addition clean files
Clean(target, 'cconfig.h')
diff --git a/tools/mkdist.py b/tools/mkdist.py
index eef6bfd118..e927417fc4 100644
--- a/tools/mkdist.py
+++ b/tools/mkdist.py
@@ -122,6 +122,24 @@ def bsp_update_kconfig(dist_dir):
line = line[0:position] + 'default: "rt-thread"\n'
found = 0
f.write(line)
+
+def bsp_update_kconfig_library(dist_dir):
+ # change RTT_ROOT in Kconfig
+ if not os.path.isfile(os.path.join(dist_dir, 'Kconfig')):
+ return
+
+ with open(os.path.join(dist_dir, 'Kconfig'), 'r') as f:
+ data = f.readlines()
+ with open(os.path.join(dist_dir, 'Kconfig'), 'w') as f:
+ found = 0
+ for line in data:
+ if line.find('RTT_ROOT') != -1:
+ found = 1
+ if line.find('../libraries') != -1 and found:
+ position = line.find('../libraries')
+ line = line[0:position] + 'libraries/Kconfig"\n'
+ found = 0
+ f.write(line)
def bs_update_ide_project(bsp_root, rtt_root):
import subprocess
@@ -169,6 +187,15 @@ def MkDist_Strip(program, BSP_ROOT, RTT_ROOT, Env):
print('=> %s' % os.path.basename(BSP_ROOT))
bsp_copy_files(BSP_ROOT, dist_dir)
+ # copy stm32 bsp libiary files
+ if os.path.basename(os.path.dirname(BSP_ROOT)) == 'stm32':
+ print("=> copy stm32 bsp library")
+ library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries')
+ library_dir = os.path.join(dist_dir, 'libraries')
+ bsp_copy_files(os.path.join(library_path, 'HAL_Drivers'), os.path.join(library_dir, 'HAL_Drivers'))
+ bsp_copy_files(os.path.join(library_path, Env['bsp_lib_type']), os.path.join(library_dir, Env['bsp_lib_type']))
+ shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig'))
+
# get all source files from program
for item in program:
walk_children(item)
@@ -260,6 +287,7 @@ def MkDist_Strip(program, BSP_ROOT, RTT_ROOT, Env):
bsp_update_sconstruct(dist_dir)
# change RTT_ROOT in Kconfig
bsp_update_kconfig(dist_dir)
+ bsp_update_kconfig_library(dist_dir)
# update all project files
bs_update_ide_project(dist_dir, target_path)
@@ -280,6 +308,15 @@ def MkDist(program, BSP_ROOT, RTT_ROOT, Env):
print('=> %s' % os.path.basename(BSP_ROOT))
bsp_copy_files(BSP_ROOT, dist_dir)
+ # copy stm32 bsp libiary files
+ if os.path.basename(os.path.dirname(BSP_ROOT)) == 'stm32':
+ print("=> copy stm32 bsp library")
+ library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries')
+ library_dir = os.path.join(dist_dir, 'libraries')
+ bsp_copy_files(os.path.join(library_path, 'HAL_Drivers'), os.path.join(library_dir, 'HAL_Drivers'))
+ bsp_copy_files(os.path.join(library_path, Env['bsp_lib_type']), os.path.join(library_dir, Env['bsp_lib_type']))
+ shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig'))
+
# copy tools directory
print('=> components')
do_copy_folder(os.path.join(RTT_ROOT, 'components'), os.path.join(target_path, 'components'))
@@ -316,6 +353,7 @@ def MkDist(program, BSP_ROOT, RTT_ROOT, Env):
bsp_update_sconstruct(dist_dir)
# change RTT_ROOT in Kconfig
bsp_update_kconfig(dist_dir)
+ bsp_update_kconfig_library(dist_dir)
# update all project files
bs_update_ide_project(dist_dir, target_path)