Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
2fbced6f21
|
@ -134,7 +134,7 @@ static rt_err_t rt_rtc_control(rt_device_t dev, int cmd, void *args)
|
|||
{
|
||||
case RT_DEVICE_CTRL_RTC_GET_TIME:
|
||||
*(rt_uint32_t *)args = get_rtc_timestamp();
|
||||
LOG_D("RTC: get rtc_time %x\n", *(rt_uint32_t *)args());
|
||||
LOG_D("RTC: get rtc_time %x\n", *(rt_uint32_t *)args);
|
||||
break;
|
||||
|
||||
case RT_DEVICE_CTRL_RTC_SET_TIME:
|
||||
|
|
|
@ -32,17 +32,27 @@ if rtconfig.PLATFORM == 'iar':
|
|||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
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'))
|
||||
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(os.path.join(libraries_path_prefix, stm32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
|
|
|
@ -1,23 +1,29 @@
|
|||
import os
|
||||
import rtconfig
|
||||
from building import *
|
||||
|
||||
Import('SDK_LIB')
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
# add the general drivers.
|
||||
src = Glob('board.c')
|
||||
src += Glob('CubeMX_Config/Src/stm32f1xx_hal_msp.c')
|
||||
# add general drivers
|
||||
src = Split('''
|
||||
board.c
|
||||
CubeMX_Config/Src/stm32f1xx_hal_msp.c
|
||||
''')
|
||||
|
||||
path = [cwd]
|
||||
path += [cwd + '/CubeMX_Config/Inc']
|
||||
|
||||
startup_path_prefix = SDK_LIB
|
||||
|
||||
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')
|
|
@ -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'):
|
||||
|
|
|
@ -32,16 +32,27 @@ if rtconfig.PLATFORM == 'iar':
|
|||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
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'))
|
||||
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(os.path.join(libraries_path_prefix, stm32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
|
|
|
@ -1,21 +1,28 @@
|
|||
import os
|
||||
import rtconfig
|
||||
from building import *
|
||||
|
||||
Import('SDK_LIB')
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
# add the general drivers.
|
||||
src = Glob('board.c')
|
||||
src += Glob('CubeMX_Config/Src/stm32f4xx_hal_msp.c')
|
||||
# add general drivers
|
||||
src = Split('''
|
||||
board.c
|
||||
CubeMX_Config/Src/stm32f4xx_hal_msp.c
|
||||
''')
|
||||
|
||||
path = [cwd]
|
||||
path += [cwd + '/CubeMX_Config/Inc']
|
||||
|
||||
startup_path_prefix = SDK_LIB
|
||||
|
||||
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)
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -32,16 +32,27 @@ if rtconfig.PLATFORM == 'iar':
|
|||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
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'))
|
||||
stm32_library = 'STM32L4xx_HAL'
|
||||
rtconfig.BSP_LIBRARY_TYPE = stm32_library
|
||||
|
||||
# include libraries
|
||||
objs.extend(SConscript(os.path.dirname(SDK_ROOT) + '/libraries/HAL_Drivers/SConscript'))
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, stm32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
|
|
|
@ -1,21 +1,28 @@
|
|||
import os
|
||||
import rtconfig
|
||||
from building import *
|
||||
|
||||
Import('SDK_LIB')
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
# add the general drivers.
|
||||
src = Glob('board.c')
|
||||
src += Glob('CubeMX_Config/Src/stm32l4xx_hal_msp.c')
|
||||
# add general drivers
|
||||
src = Split('''
|
||||
board.c
|
||||
CubeMX_Config/Src/stm32l4xx_hal_msp.c
|
||||
''')
|
||||
|
||||
path = [cwd]
|
||||
path += [cwd + '/CubeMX_Config/Inc']
|
||||
|
||||
startup_path_prefix = SDK_LIB
|
||||
|
||||
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)
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -32,17 +32,27 @@ if rtconfig.PLATFORM == 'iar':
|
|||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
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'))
|
||||
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(os.path.join(libraries_path_prefix, stm32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
import os
|
||||
import rtconfig
|
||||
from building import *
|
||||
|
||||
Import('SDK_LIB')
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
src = Glob('board.c')
|
||||
src += Glob('CubeMX_Config/Src/stm32f1xx_hal_msp.c')
|
||||
# add general drivers
|
||||
src = Split('''
|
||||
board.c
|
||||
CubeMX_Config/Src/stm32f1xx_hal_msp.c
|
||||
''')
|
||||
|
||||
if GetDepend(['BSP_USING_SPI_FLASH']):
|
||||
src += Glob('ports/spi_flash_init.c')
|
||||
|
@ -13,12 +19,14 @@ path = [cwd]
|
|||
path += [cwd + '/CubeMX_Config/Inc']
|
||||
path += [cwd + '/ports']
|
||||
|
||||
startup_path_prefix = SDK_LIB
|
||||
|
||||
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)
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -32,17 +32,27 @@ if rtconfig.PLATFORM == 'iar':
|
|||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
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'))
|
||||
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(os.path.join(libraries_path_prefix, stm32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
import os
|
||||
import rtconfig
|
||||
from building import *
|
||||
|
||||
Import('SDK_LIB')
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
src = Glob('board.c')
|
||||
src += Glob('CubeMX_Config/Src/stm32f1xx_hal_msp.c')
|
||||
# add general drivers
|
||||
src = Split('''
|
||||
board.c
|
||||
CubeMX_Config/Src/stm32f1xx_hal_msp.c
|
||||
''')
|
||||
|
||||
if GetDepend(['BSP_USING_ETH']):
|
||||
src += Glob('ports/w5500_device.c')
|
||||
|
@ -16,12 +22,14 @@ path = [cwd]
|
|||
path += [cwd + '/CubeMX_Config/Inc']
|
||||
path += [cwd + '/ports']
|
||||
|
||||
startup_path_prefix = SDK_LIB
|
||||
|
||||
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)
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -32,16 +32,27 @@ if rtconfig.PLATFORM == 'iar':
|
|||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
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'))
|
||||
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(os.path.join(libraries_path_prefix, stm32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
import os
|
||||
import rtconfig
|
||||
from building import *
|
||||
|
||||
Import('SDK_LIB')
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
# add the general drivers.
|
||||
src = Glob('board.c')
|
||||
src += Glob('CubeMX_Config/Src/stm32f4xx_hal_msp.c')
|
||||
# add general drivers
|
||||
src = Split('''
|
||||
board.c
|
||||
CubeMX_Config/Src/stm32f4xx_hal_msp.c
|
||||
''')
|
||||
|
||||
if GetDepend(['BSP_USING_ETH']):
|
||||
src += Glob('ports/phy_reset.c')
|
||||
|
@ -17,12 +22,14 @@ path = [cwd]
|
|||
path += [cwd + '/CubeMX_Config/Inc']
|
||||
path += [cwd + '/ports']
|
||||
|
||||
startup_path_prefix = SDK_LIB
|
||||
|
||||
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)
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -32,16 +32,27 @@ if rtconfig.PLATFORM == 'iar':
|
|||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
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'))
|
||||
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(os.path.join(libraries_path_prefix, stm32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
import os
|
||||
import rtconfig
|
||||
from building import *
|
||||
|
||||
Import('SDK_LIB')
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
# add the general drivers.
|
||||
src = Glob('board.c')
|
||||
src += Glob('CubeMX_Config/Src/stm32f4xx_hal_msp.c')
|
||||
# add general drivers
|
||||
src = Split('''
|
||||
board.c
|
||||
CubeMX_Config/Src/stm32f4xx_hal_msp.c
|
||||
''')
|
||||
|
||||
if GetDepend(['BSP_USING_ETH']):
|
||||
src += Glob('ports/phy_reset.c')
|
||||
|
@ -17,16 +22,14 @@ path = [cwd]
|
|||
path += [cwd + '/CubeMX_Config/Inc']
|
||||
path += [cwd + '/ports']
|
||||
|
||||
|
||||
if GetDepend(['BSP_USING_SDRAM']):
|
||||
path += [cwd + '/ports']
|
||||
startup_path_prefix = SDK_LIB
|
||||
|
||||
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)
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -32,16 +32,27 @@ if rtconfig.PLATFORM == 'iar':
|
|||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
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'))
|
||||
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(os.path.join(libraries_path_prefix, stm32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
import os
|
||||
import rtconfig
|
||||
from building import *
|
||||
|
||||
Import('SDK_LIB')
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
# add the general drivers.
|
||||
src = Glob('board.c')
|
||||
src += Glob('CubeMX_Config/Src/stm32f4xx_hal_msp.c')
|
||||
# add general drivers
|
||||
src = Split('''
|
||||
board.c
|
||||
CubeMX_Config/Src/stm32f4xx_hal_msp.c
|
||||
''')
|
||||
|
||||
if GetDepend(['BSP_USING_ETH']):
|
||||
src += Glob('ports/phy_reset.c')
|
||||
|
@ -17,15 +22,14 @@ path = [cwd]
|
|||
path += [cwd + '/CubeMX_Config/Inc']
|
||||
path += [cwd + '/ports']
|
||||
|
||||
if GetDepend(['BSP_USING_SDRAM']):
|
||||
path += [cwd + '/ports']
|
||||
startup_path_prefix = SDK_LIB
|
||||
|
||||
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)
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -111,7 +111,7 @@ CONFIG_FINSH_ARG_MAX=10
|
|||
CONFIG_RT_USING_DEVICE_IPC=y
|
||||
CONFIG_RT_PIPE_BUFSZ=512
|
||||
CONFIG_RT_USING_SERIAL=y
|
||||
CONFIG_RT_SERIAL_USING_DMA=y
|
||||
# CONFIG_RT_SERIAL_USING_DMA is not set
|
||||
# CONFIG_RT_USING_CAN is not set
|
||||
# CONFIG_RT_USING_HWTIMER is not set
|
||||
# CONFIG_RT_USING_CPUTIME is not set
|
||||
|
@ -198,6 +198,7 @@ CONFIG_RT_USING_PIN=y
|
|||
#
|
||||
# CONFIG_PKG_USING_PAHOMQTT is not set
|
||||
# CONFIG_PKG_USING_WEBCLIENT is not set
|
||||
# CONFIG_PKG_USING_WEBNET is not set
|
||||
# CONFIG_PKG_USING_MONGOOSE is not set
|
||||
# CONFIG_PKG_USING_WEBTERMINAL is not set
|
||||
# CONFIG_PKG_USING_CJSON is not set
|
||||
|
@ -223,6 +224,7 @@ CONFIG_RT_USING_PIN=y
|
|||
# CONFIG_PKG_USING_NOPOLL is not set
|
||||
# CONFIG_PKG_USING_NETUTILS is not set
|
||||
# CONFIG_PKG_USING_AT_DEVICE is not set
|
||||
# CONFIG_PKG_USING_WIZNET is not set
|
||||
|
||||
#
|
||||
# IoT Cloud
|
||||
|
@ -231,6 +233,7 @@ CONFIG_RT_USING_PIN=y
|
|||
# CONFIG_PKG_USING_GAGENT_CLOUD is not set
|
||||
# CONFIG_PKG_USING_ALI_IOTKIT is not set
|
||||
# CONFIG_PKG_USING_AZURE is not set
|
||||
# CONFIG_PKG_USING_TENCENT_IOTKIT is not set
|
||||
|
||||
#
|
||||
# security packages
|
||||
|
@ -259,6 +262,9 @@ CONFIG_RT_USING_PIN=y
|
|||
# CONFIG_PKG_USING_EASYFLASH is not set
|
||||
# CONFIG_PKG_USING_EASYLOGGER is not set
|
||||
# CONFIG_PKG_USING_SYSTEMVIEW is not set
|
||||
# CONFIG_PKG_USING_RDB is not set
|
||||
# CONFIG_PKG_USING_QRCODE is not set
|
||||
# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
|
||||
|
||||
#
|
||||
# system packages
|
||||
|
@ -273,17 +279,24 @@ CONFIG_RT_USING_PIN=y
|
|||
# CONFIG_PKG_USING_SQLITE is not set
|
||||
# CONFIG_PKG_USING_RTI is not set
|
||||
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
|
||||
# CONFIG_PKG_USING_CMSIS is not set
|
||||
# CONFIG_PKG_USING_DFS_YAFFS is not set
|
||||
# CONFIG_PKG_USING_LITTLEFS is not set
|
||||
|
||||
#
|
||||
# peripheral libraries and drivers
|
||||
#
|
||||
# CONFIG_PKG_USING_STM32F4_HAL is not set
|
||||
# CONFIG_PKG_USING_STM32F4_DRIVERS 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
|
||||
# CONFIG_PKG_USING_AP3216C is not set
|
||||
# CONFIG_PKG_USING_STM32_SDIO is not set
|
||||
# CONFIG_PKG_USING_ICM20608 is not set
|
||||
# CONFIG_PKG_USING_U8G2 is not set
|
||||
# CONFIG_PKG_USING_BUTTON is not set
|
||||
# CONFIG_PKG_USING_MPU6XXX is not set
|
||||
# CONFIG_PKG_USING_PCF8574 is not set
|
||||
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
|
||||
|
||||
#
|
||||
# miscellaneous packages
|
||||
|
@ -297,10 +310,7 @@ CONFIG_RT_USING_PIN=y
|
|||
# CONFIG_PKG_USING_CANFESTIVAL is not set
|
||||
# CONFIG_PKG_USING_ZLIB is not set
|
||||
# CONFIG_PKG_USING_DSTR is not set
|
||||
|
||||
#
|
||||
# sample package
|
||||
#
|
||||
# CONFIG_PKG_USING_TINYFRAME is not set
|
||||
|
||||
#
|
||||
# samples: kernel and components samples
|
||||
|
@ -309,10 +319,6 @@ CONFIG_RT_USING_PIN=y
|
|||
# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
|
||||
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
|
||||
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
|
||||
|
||||
#
|
||||
# example package: hello
|
||||
#
|
||||
# CONFIG_PKG_USING_HELLO is not set
|
||||
CONFIG_SOC_FAMILY_STM32=y
|
||||
CONFIG_SOC_SERIES_STM32F7=y
|
||||
|
@ -328,6 +334,8 @@ CONFIG_SOC_STM32F767IG=y
|
|||
CONFIG_BSP_USING_USB_TO_USART=y
|
||||
# CONFIG_BSP_USING_RS232 is not set
|
||||
# CONFIG_BSP_USING_SDRAM is not set
|
||||
# CONFIG_BSP_USING_QSPI_FLASH is not set
|
||||
# CONFIG_BSP_USING_MPU6050 is not set
|
||||
|
||||
#
|
||||
# On-chip Peripheral Drivers
|
||||
|
@ -342,8 +350,12 @@ CONFIG_BSP_USING_UART1=y
|
|||
# CONFIG_BSP_USING_SPI2 is not set
|
||||
# CONFIG_BSP_USING_SPI5 is not set
|
||||
# CONFIG_BSP_SPI_USING_DMA is not set
|
||||
# CONFIG_BSP_USING_QSPI is not set
|
||||
# CONFIG_BSP_USING_ADC is not set
|
||||
# CONFIG_BSP_USING_I2C1 is not set
|
||||
# CONFIG_BSP_USING_I2C2 is not set
|
||||
# CONFIG_BSP_USING_I2C3 is not set
|
||||
# CONFIG_BSP_USING_I2C4 is not set
|
||||
# CONFIG_BSP_USING_ONCHIP_RTC is not set
|
||||
# CONFIG_BSP_USING_WDT is not set
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -78,7 +78,6 @@
|
|||
#define RT_USING_DEVICE_IPC
|
||||
#define RT_PIPE_BUFSZ 512
|
||||
#define RT_USING_SERIAL
|
||||
#define RT_SERIAL_USING_DMA
|
||||
#define RT_USING_PIN
|
||||
|
||||
/* Using WiFi */
|
||||
|
@ -150,13 +149,8 @@
|
|||
/* miscellaneous packages */
|
||||
|
||||
|
||||
/* sample package */
|
||||
|
||||
/* samples: kernel and components samples */
|
||||
|
||||
|
||||
/* example package: hello */
|
||||
|
||||
#define SOC_FAMILY_STM32
|
||||
#define SOC_SERIES_STM32F7
|
||||
|
||||
|
|
|
@ -171,7 +171,7 @@ int dfs_file_ioctl(struct dfs_fd *fd, int cmd, void *args)
|
|||
return fd->flags; /* return flags */
|
||||
case F_SETFL:
|
||||
{
|
||||
int flags = (int)args;
|
||||
int flags = (int)(rt_base_t)args;
|
||||
int mask = O_NONBLOCK | O_APPEND;
|
||||
|
||||
flags &= mask;
|
||||
|
|
|
@ -40,7 +40,7 @@ static int __wqueue_pollwake(struct rt_wqueue_node *wait, void *key)
|
|||
{
|
||||
struct rt_poll_node *pn;
|
||||
|
||||
if (key && !((rt_uint32_t)key & wait->key))
|
||||
if (key && !((rt_ubase_t)key & wait->key))
|
||||
return -1;
|
||||
|
||||
pn = rt_container_of(wait, struct rt_poll_node, wqn);
|
||||
|
|
|
@ -595,7 +595,7 @@ static void mmcsd_power_off(struct rt_mmcsd_host *host)
|
|||
int mmcsd_wait_cd_changed(rt_int32_t timeout)
|
||||
{
|
||||
struct rt_mmcsd_host *host;
|
||||
if (rt_mb_recv(&mmcsd_hotpluge_mb, (rt_uint32_t*)&host, timeout) == RT_EOK)
|
||||
if (rt_mb_recv(&mmcsd_hotpluge_mb, (rt_ubase_t *)&host, timeout) == RT_EOK)
|
||||
{
|
||||
if(host->card == RT_NULL)
|
||||
{
|
||||
|
@ -623,7 +623,7 @@ void mmcsd_detect(void *param)
|
|||
|
||||
while (1)
|
||||
{
|
||||
if (rt_mb_recv(&mmcsd_detect_mb, (rt_uint32_t*)&host, RT_WAITING_FOREVER) == RT_EOK)
|
||||
if (rt_mb_recv(&mmcsd_detect_mb, (rt_ubase_t *)&host, RT_WAITING_FOREVER) == RT_EOK)
|
||||
{
|
||||
if (host->card == RT_NULL)
|
||||
{
|
||||
|
|
|
@ -627,6 +627,15 @@ int at_recvfrom(int socket, void *mem, size_t len, int flags, struct sockaddr *f
|
|||
at_dev_ops->at_set_event_cb(AT_SOCKET_EVT_CLOSED, at_closed_notice_cb);
|
||||
}
|
||||
|
||||
/* receive packet list last transmission of remaining data */
|
||||
rt_mutex_take(sock->recv_lock, RT_WAITING_FOREVER);
|
||||
if((recv_len = at_recvpkt_get(&(sock->recvpkt_list), (char *)mem, len)) > 0)
|
||||
{
|
||||
rt_mutex_release(sock->recv_lock);
|
||||
goto __exit;
|
||||
}
|
||||
rt_mutex_release(sock->recv_lock);
|
||||
|
||||
/* socket passively closed, receive function return 0 */
|
||||
if (sock->state == AT_SOCKET_CLOSED)
|
||||
{
|
||||
|
@ -640,15 +649,6 @@ int at_recvfrom(int socket, void *mem, size_t len, int flags, struct sockaddr *f
|
|||
goto __exit;
|
||||
}
|
||||
|
||||
/* receive packet list last transmission of remaining data */
|
||||
rt_mutex_take(sock->recv_lock, RT_WAITING_FOREVER);
|
||||
if((recv_len = at_recvpkt_get(&(sock->recvpkt_list), (char *)mem, len)) > 0)
|
||||
{
|
||||
rt_mutex_release(sock->recv_lock);
|
||||
goto __exit;
|
||||
}
|
||||
rt_mutex_release(sock->recv_lock);
|
||||
|
||||
/* non-blocking sockets receive data */
|
||||
if (flags & MSG_DONTWAIT)
|
||||
{
|
||||
|
|
|
@ -508,7 +508,7 @@ u32_t sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout)
|
|||
t = timeout / (1000/RT_TICK_PER_SECOND);
|
||||
}
|
||||
|
||||
ret = rt_mb_recv(*mbox, (rt_uint32_t *)msg, t);
|
||||
ret = rt_mb_recv(*mbox, (rt_ubase_t *)msg, t);
|
||||
|
||||
if(ret == -RT_ETIMEOUT)
|
||||
return SYS_ARCH_TIMEOUT;
|
||||
|
@ -539,7 +539,7 @@ u32_t sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg)
|
|||
{
|
||||
int ret;
|
||||
|
||||
ret = rt_mb_recv(*mbox, (rt_uint32_t *)msg, 0);
|
||||
ret = rt_mb_recv(*mbox, (rt_ubase_t *)msg, 0);
|
||||
|
||||
if(ret == -RT_ETIMEOUT)
|
||||
return SYS_ARCH_TIMEOUT;
|
||||
|
|
|
@ -329,7 +329,7 @@ static void eth_tx_thread_entry(void* parameter)
|
|||
|
||||
while (1)
|
||||
{
|
||||
if (rt_mb_recv(ð_tx_thread_mb, (rt_uint32_t*)&msg, RT_WAITING_FOREVER) == RT_EOK)
|
||||
if (rt_mb_recv(ð_tx_thread_mb, (rt_ubase_t *)&msg, RT_WAITING_FOREVER) == RT_EOK)
|
||||
{
|
||||
struct eth_device* enetif;
|
||||
|
||||
|
@ -361,7 +361,7 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
|
||||
while (1)
|
||||
{
|
||||
if (rt_mb_recv(ð_rx_thread_mb, (rt_uint32_t*)&device, RT_WAITING_FOREVER) == RT_EOK)
|
||||
if (rt_mb_recv(ð_rx_thread_mb, (rt_ubase_t *)&device, RT_WAITING_FOREVER) == RT_EOK)
|
||||
{
|
||||
struct pbuf *p;
|
||||
|
||||
|
|
|
@ -230,4 +230,8 @@ config RT_USING_ULOG
|
|||
sfotware module version number
|
||||
endif
|
||||
|
||||
config RT_USING_UTEST
|
||||
bool "Enable utest (RT-Thread test framework)"
|
||||
default n
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
from building import *
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
src = Glob('*.c')
|
||||
CPPPATH = [cwd]
|
||||
group = DefineGroup('utest', src, depend = ['RT_USING_UTEST'], CPPPATH = CPPPATH)
|
||||
|
||||
Return('group')
|
|
@ -0,0 +1,238 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2018-11-19 MurphyZhao the first version
|
||||
*/
|
||||
|
||||
#include "utest.h"
|
||||
#include <rtthread.h>
|
||||
#include <finsh.h>
|
||||
|
||||
#undef DBG_SECTION_NAME
|
||||
#undef DBG_LEVEL
|
||||
#undef DBG_COLOR
|
||||
#undef DBG_ENABLE
|
||||
|
||||
#define DBG_ENABLE
|
||||
#define DBG_SECTION_NAME "utest"
|
||||
#ifdef UTEST_DEBUG
|
||||
#define DBG_LEVEL DBG_LOG
|
||||
#else
|
||||
#define DBG_LEVEL DBG_INFO
|
||||
#endif
|
||||
#define DBG_COLOR
|
||||
#include <rtdbg.h>
|
||||
|
||||
#if RT_CONSOLEBUF_SIZE < 256
|
||||
#error "RT_CONSOLEBUF_SIZE is less than 256!"
|
||||
#endif
|
||||
|
||||
static utest_tc_export_t tc_table = RT_NULL;
|
||||
static rt_size_t tc_num;
|
||||
static struct utest local_utest = {UTEST_PASSED, 0, 0};
|
||||
|
||||
#if defined(__ICCARM__) || defined(__ICCRX__) /* for IAR compiler */
|
||||
#pragma section="UtestTcTab"
|
||||
#endif
|
||||
|
||||
int utest_init(void)
|
||||
{
|
||||
/* initialize the utest commands table.*/
|
||||
#if defined(__CC_ARM) /* ARM C Compiler */
|
||||
extern const int UtestTcTab$$Base;
|
||||
extern const int UtestTcTab$$Limit;
|
||||
tc_table = (utest_tc_export_t)&UtestTcTab$$Base;
|
||||
tc_num = (utest_tc_export_t)&UtestTcTab$$Limit - tc_table;
|
||||
#elif defined (__ICCARM__) || defined(__ICCRX__) /* for IAR Compiler */
|
||||
tc_table = (utest_tc_export_t)__section_begin("UtestTcTab");
|
||||
tc_num = (utest_tc_export_t)__section_end("UtestTcTab") - tc_table;
|
||||
#elif defined (__GNUC__) /* for GCC Compiler */
|
||||
extern const int __rt_utest_tc_tab_start;
|
||||
extern const int __rt_utest_tc_tab_end;
|
||||
tc_table = (utest_tc_export_t)&__rt_utest_tc_tab_start;
|
||||
tc_num = (utest_tc_export_t) &__rt_utest_tc_tab_end - tc_table;
|
||||
#endif /* defined(__CC_ARM) */
|
||||
|
||||
LOG_I("utest is initialize success.");
|
||||
LOG_I("total utest testcase num: (%d)", tc_num);
|
||||
return tc_num;
|
||||
}
|
||||
INIT_COMPONENT_EXPORT(utest_init);
|
||||
|
||||
static void utest_tc_list(void)
|
||||
{
|
||||
rt_size_t i = 0;
|
||||
|
||||
LOG_I("Commands list : ");
|
||||
|
||||
for (i = 0; i < tc_num; i++)
|
||||
{
|
||||
LOG_I("[testcase name]:%s; [run timeout]:%d", tc_table[i].name, tc_table[i].run_timeout);
|
||||
}
|
||||
}
|
||||
MSH_CMD_EXPORT_ALIAS(utest_tc_list, utest_list, output all utest testcase);
|
||||
|
||||
static const char *file_basename(const char *file)
|
||||
{
|
||||
char *end_ptr = RT_NULL;
|
||||
char *rst = RT_NULL;
|
||||
|
||||
if (!((end_ptr = strrchr(file, '\\')) != RT_NULL || \
|
||||
(end_ptr = strrchr(file, '/')) != RT_NULL) || \
|
||||
(rt_strlen(file) < 2))
|
||||
{
|
||||
rst = (char *)file;
|
||||
}
|
||||
else
|
||||
{
|
||||
rst = (char *)(end_ptr + 1);
|
||||
}
|
||||
return (const char *)rst;
|
||||
}
|
||||
|
||||
static void utest_run(const char *utest_name)
|
||||
{
|
||||
rt_size_t i = 0;
|
||||
|
||||
LOG_I("[==========] [ utest ] started");
|
||||
while(i < tc_num)
|
||||
{
|
||||
if (utest_name && rt_strcmp(utest_name, tc_table[i].name))
|
||||
{
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
|
||||
LOG_I("[----------] [ testcase ] (%s) started", tc_table[i].name);
|
||||
if (tc_table[i].init != RT_NULL)
|
||||
{
|
||||
if (tc_table[i].init() != RT_EOK)
|
||||
{
|
||||
LOG_I("[ FAILED ] [ result ] testcase (%s)", tc_table[i].name);
|
||||
goto __tc_continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (tc_table[i].tc != RT_NULL)
|
||||
{
|
||||
tc_table[i].tc();
|
||||
if (local_utest.failed_num == 0)
|
||||
{
|
||||
LOG_I("[ PASSED ] [ result ] testcase (%s)", tc_table[i].name);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_I("[ FAILED ] [ result ] testcase (%s)", tc_table[i].name);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_I("[ FAILED ] [ result ] testcase (%s)", tc_table[i].name);
|
||||
}
|
||||
|
||||
if (tc_table[i].cleanup != RT_NULL)
|
||||
{
|
||||
if (tc_table[i].cleanup() != RT_EOK)
|
||||
{
|
||||
LOG_I("[ FAILED ] [ result ] testcase (%s)", tc_table[i].name);
|
||||
goto __tc_continue;
|
||||
}
|
||||
}
|
||||
|
||||
__tc_continue:
|
||||
LOG_I("[----------] [ testcase ] (%s) finished", tc_table[i].name);
|
||||
|
||||
i++;
|
||||
}
|
||||
LOG_I("[==========] [ utest ] finished");
|
||||
}
|
||||
|
||||
static void utest_testcase_run(int argc, char** argv)
|
||||
{
|
||||
char utest_name[UTEST_NAME_MAX_LEN];
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
utest_run(RT_NULL);
|
||||
}
|
||||
else if (argc == 2)
|
||||
{
|
||||
rt_memset(utest_name, 0x0, sizeof(utest_name));
|
||||
rt_strncpy(utest_name, argv[1], sizeof(utest_name) -1);
|
||||
utest_run(utest_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_E("[ error ] at (%s:%d), in param error.", __func__, __LINE__);
|
||||
}
|
||||
}
|
||||
MSH_CMD_EXPORT_ALIAS(utest_testcase_run, utest_run, utest_run [testcase name]);
|
||||
|
||||
utest_t utest_handle_get(void)
|
||||
{
|
||||
return (utest_t)&local_utest;
|
||||
}
|
||||
|
||||
void utest_unit_run(test_unit_func func, const char *unit_func_name)
|
||||
{
|
||||
// LOG_I("[==========] utest unit name: (%s)", unit_func_name);
|
||||
local_utest.error = UTEST_PASSED;
|
||||
local_utest.passed_num = 0;
|
||||
local_utest.failed_num = 0;
|
||||
|
||||
if (func != RT_NULL)
|
||||
{
|
||||
func();
|
||||
}
|
||||
}
|
||||
|
||||
void utest_assert(int value, const char *file, int line, const char *func, const char *msg)
|
||||
{
|
||||
if (!(value))
|
||||
{
|
||||
local_utest.error = UTEST_FAILED;
|
||||
local_utest.failed_num ++;
|
||||
LOG_E("[ ASSERT ] [ unit ] at (%s); func: (%s:%d); msg: (%s)", file_basename(file), func, line, msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_D("[ OK ] [ unit ] (%s:%d) is passed", func, line);
|
||||
local_utest.error = UTEST_PASSED;
|
||||
local_utest.passed_num ++;
|
||||
}
|
||||
}
|
||||
|
||||
void utest_assert_string(const char *a, const char *b, rt_bool_t equal, const char *file, int line, const char *func, const char *msg)
|
||||
{
|
||||
if (a == RT_NULL || b == RT_NULL)
|
||||
{
|
||||
utest_assert(0, file, line, func, msg);
|
||||
}
|
||||
|
||||
if (equal)
|
||||
{
|
||||
if (rt_strcmp(a, b) == 0)
|
||||
{
|
||||
utest_assert(1, file, line, func, msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
utest_assert(0, file, line, func, msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (rt_strcmp(a, b) == 0)
|
||||
{
|
||||
utest_assert(0, file, line, func, msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
utest_assert(1, file, line, func, msg);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,159 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2018-11-19 MurphyZhao the first version
|
||||
*/
|
||||
|
||||
#ifndef __UTEST_H__
|
||||
#define __UTEST_H__
|
||||
|
||||
#include <rtthread.h>
|
||||
#include "utest_log.h"
|
||||
|
||||
/**
|
||||
* utest_error
|
||||
*
|
||||
* @brief Test result.
|
||||
*
|
||||
* @member UTEST_PASSED Test success.
|
||||
* @member UTEST_FAILED Test failed.
|
||||
* @member UTEST_PASSED Test skipped.
|
||||
*
|
||||
*/
|
||||
enum utest_error
|
||||
{
|
||||
UTEST_PASSED = 0,
|
||||
UTEST_FAILED = 1,
|
||||
UTEST_SKIPPED = 2
|
||||
};
|
||||
typedef enum utest_error utest_err_e;
|
||||
|
||||
/**
|
||||
* utest
|
||||
*
|
||||
* @brief utest data structure.
|
||||
*
|
||||
* @member error Error number from enum `utest_error`.
|
||||
* @member passed_num Total number of tests passed.
|
||||
* @member failed_num Total number of tests failed.
|
||||
*
|
||||
*/
|
||||
struct utest
|
||||
{
|
||||
utest_err_e error;
|
||||
uint32_t passed_num;
|
||||
uint32_t failed_num;
|
||||
};
|
||||
typedef struct utest *utest_t;
|
||||
|
||||
/**
|
||||
* utest_tc_export
|
||||
*
|
||||
* @brief utest testcase data structure.
|
||||
* Will export the data to `UtestTcTab` section in flash.
|
||||
*
|
||||
* @member name Testcase name.
|
||||
* @member run_timeout Testcase maximum test time.
|
||||
* @member init Necessary initialization before executing the test case function.
|
||||
* @member tc Total number of tests failed.
|
||||
* @member cleanup Total number of tests failed.
|
||||
*
|
||||
*/
|
||||
struct utest_tc_export {
|
||||
const char *name;
|
||||
uint32_t run_timeout;
|
||||
rt_err_t (*init)(void);
|
||||
void (*tc)(void);
|
||||
rt_err_t (*cleanup)(void);
|
||||
};
|
||||
typedef struct utest_tc_export *utest_tc_export_t;
|
||||
|
||||
/**
|
||||
* test_unit_func
|
||||
*
|
||||
* @brief Unit test handler function pointer.
|
||||
*
|
||||
*/
|
||||
typedef void (*test_unit_func)(void);
|
||||
|
||||
/**
|
||||
* utest_unit_run
|
||||
*
|
||||
* @brief Unit test function executor.
|
||||
* No need for the user to call this function directly
|
||||
*
|
||||
* @param func Unit test function.
|
||||
* @param unit_func_name Unit test function name.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
void utest_unit_run(test_unit_func func, const char *unit_func_name);
|
||||
|
||||
/**
|
||||
* utest_handle_get
|
||||
*
|
||||
* @brief Get the utest data structure handle.
|
||||
* No need for the user to call this function directly
|
||||
*
|
||||
* @param void
|
||||
*
|
||||
* @return utest_t type. (struct utest *)
|
||||
*
|
||||
*/
|
||||
utest_t utest_handle_get(void);
|
||||
|
||||
/**
|
||||
* UTEST_NAME_MAX_LEN
|
||||
*
|
||||
* @brief Testcase name maximum length.
|
||||
*
|
||||
*/
|
||||
#define UTEST_NAME_MAX_LEN (128u)
|
||||
|
||||
/**
|
||||
* UTEST_TC_EXPORT
|
||||
*
|
||||
* @brief Export testcase function to `UtestTcTab` section in flash.
|
||||
* Used in application layer.
|
||||
*
|
||||
* @param testcase The testcase function.
|
||||
* @param name The testcase name.
|
||||
* @param init The initialization function of the test case.
|
||||
* @param cleanup The cleanup function of the test case.
|
||||
* @param timeout Testcase maximum test time.
|
||||
*
|
||||
* @return None
|
||||
*
|
||||
*/
|
||||
#define UTEST_TC_EXPORT(testcase, name, init, cleanup, timeout) \
|
||||
RT_USED static const struct utest_tc_export _utest_testcase \
|
||||
SECTION("UtestTcTab") = \
|
||||
{ \
|
||||
name, \
|
||||
timeout, \
|
||||
init, \
|
||||
testcase, \
|
||||
cleanup \
|
||||
}
|
||||
|
||||
/**
|
||||
* UTEST_UNIT_RUN
|
||||
*
|
||||
* @brief Unit test function executor.
|
||||
* Used in `testcase` function in application.
|
||||
*
|
||||
* @param test_unit_func Unit test function
|
||||
*
|
||||
* @return None
|
||||
*
|
||||
*/
|
||||
#define UTEST_UNIT_RUN(test_unit_func) \
|
||||
utest_unit_run(test_unit_func, #test_unit_func); \
|
||||
if(utest_handle_get()->failed_num != 0) return;
|
||||
|
||||
#endif /* __UTEST_H__ */
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2018-11-19 MurphyZhao the first version
|
||||
*/
|
||||
|
||||
#ifndef __UTEST_ASSERT_H__
|
||||
#define __UTEST_ASSERT_H__
|
||||
|
||||
#include "utest.h"
|
||||
#include <rtthread.h>
|
||||
|
||||
/* No need for the user to use this function directly */
|
||||
void utest_assert(int value, const char *file, int line, const char *func, const char *msg);
|
||||
|
||||
/* No need for the user to use this function directly */
|
||||
void utest_assert_string(const char *a, const char *b, rt_bool_t equal, const char *file, int line, const char *func, const char *msg);
|
||||
|
||||
/* No need for the user to use this macro directly */
|
||||
#define __utest_assert(value, msg) utest_assert(value, __FILE__, __LINE__, __func__, msg)
|
||||
|
||||
/**
|
||||
* uassert_x macros
|
||||
*
|
||||
* @brief Get the utest data structure handle.
|
||||
* No need for the user to call this function directly.
|
||||
*
|
||||
* @macro uassert_true if @value is true, not assert, means passing.
|
||||
* @macro uassert_false if @value is false, not assert, means passing.
|
||||
* @macro uassert_null if @value is null, not assert, means passing.
|
||||
* @macro uassert_not_null if @value is not null, not assert, means passing.
|
||||
* @macro uassert_int_equal if @a equal to @b, not assert, means passing. Integer type test.
|
||||
* @macro uassert_int_not_equal if @a not equal to @b, not assert, means passing. Integer type test.
|
||||
* @macro uassert_str_equal if @a equal to @b, not assert, means passing. String type test.
|
||||
* @macro uassert_str_not_equal if @a not equal to @b, not assert, means passing. String type test.
|
||||
* @macro uassert_in_range if @value is in range of min and max, not assert, means passing.
|
||||
* @macro uassert_not_in_range if @value is not in range of min and max, not assert, means passing.
|
||||
*
|
||||
*/
|
||||
#define uassert_true(value) __utest_assert(value, "(" #value ") is false")
|
||||
#define uassert_false(value) __utest_assert(!(value), "(" #value ") is true")
|
||||
#define uassert_null(value) __utest_assert((const char *)(value) == NULL, "(" #value ") is not null")
|
||||
#define uassert_not_null(value) __utest_assert((const char *)(value) != NULL, "(" #value ") is null")
|
||||
|
||||
#define uassert_int_equal(a, b) __utest_assert((a) == (b), "(" #a ") not equal to (" #b ")")
|
||||
#define uassert_int_not_equal(a, b) __utest_assert((a) != (b), "(" #a ") equal to (" #b ")")
|
||||
|
||||
#define uassert_str_equal(a, b) utest_assert_string((const char*)(a), (const char*)(b), RT_TRUE, __FILE__, __LINE__, __func__, "string not equal")
|
||||
#define uassert_str_not_equal(a, b) utest_assert_string((const char*)(a), (const char*)(b), RT_FALSE, __FILE__, __LINE__, __func__, "string equal")
|
||||
|
||||
#define uassert_in_range(value, min, max) __utest_assert(((value >= min) && (value <= max)), "(" #value ") not in range("#min","#max")")
|
||||
#define uassert_not_in_range(value, min, max) __utest_assert(!((value >= min) && (value <= max)), "(" #value ") in range("#min","#max")")
|
||||
|
||||
#endif /* __UTEST_ASSERT_H__ */
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2018-11-19 MurphyZhao the first version
|
||||
*/
|
||||
|
||||
#ifndef __UTEST_LOG_H__
|
||||
#define __UTEST_LOG_H__
|
||||
|
||||
#define UTEST_DEBUG
|
||||
|
||||
#undef DBG_SECTION_NAME
|
||||
#undef DBG_LEVEL
|
||||
#undef DBG_COLOR
|
||||
#undef DBG_ENABLE
|
||||
|
||||
#define DBG_ENABLE
|
||||
#define DBG_SECTION_NAME "testcase"
|
||||
#ifdef UTEST_DEBUG
|
||||
#define DBG_LEVEL DBG_LOG
|
||||
#else
|
||||
#define DBG_LEVEL DBG_INFO
|
||||
#endif
|
||||
#define DBG_COLOR
|
||||
#include <rtdbg.h>
|
||||
|
||||
#endif /* __UTEST_LOG_H__ */
|
|
@ -500,7 +500,7 @@ typedef siginfo_t rt_siginfo_t;
|
|||
#define RT_THREAD_CTRL_CLOSE 0x01 /**< Close thread. */
|
||||
#define RT_THREAD_CTRL_CHANGE_PRIORITY 0x02 /**< Change thread priority. */
|
||||
#define RT_THREAD_CTRL_INFO 0x03 /**< Get thread information. */
|
||||
#define RT_THREAD_CTRL_BIND_CPU 0x03 /**< Set thread bind cpu. */
|
||||
#define RT_THREAD_CTRL_BIND_CPU 0x04 /**< Set thread bind cpu. */
|
||||
|
||||
#ifdef RT_USING_SMP
|
||||
|
||||
|
|
|
@ -86,6 +86,6 @@ void rt_cpus_lock_status_restore(struct rt_thread *thread)
|
|||
rt_hw_spin_unlock(&_cpus_lock);
|
||||
}
|
||||
}
|
||||
RTM_EXPORT(rt_post_switch);
|
||||
RTM_EXPORT(rt_cpus_lock_status_restore);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
#define RT_MEMHEAP_MINIALLOC 12
|
||||
|
||||
#define RT_MEMHEAP_SIZE RT_ALIGN(sizeof(struct rt_memheap_item), RT_ALIGN_SIZE)
|
||||
#define MEMITEM_SIZE(item) ((rt_uint32_t)item->next - (rt_uint32_t)item - RT_MEMHEAP_SIZE)
|
||||
#define MEMITEM_SIZE(item) ((rt_ubase_t)item->next - (rt_ubase_t)item - RT_MEMHEAP_SIZE)
|
||||
|
||||
/*
|
||||
* The initialized memory pool will be:
|
||||
|
|
|
@ -99,11 +99,19 @@ static void _rt_scheduler_stack_check(struct rt_thread *thread)
|
|||
level = rt_hw_interrupt_disable();
|
||||
while (level);
|
||||
}
|
||||
#if defined(ARCH_CPU_STACK_GROWS_UPWARD)
|
||||
else if ((rt_ubase_t)thread->sp > ((rt_ubase_t)thread->stack_addr + thread->stack_size))
|
||||
{
|
||||
rt_kprintf("warning: %s stack is close to the top of stack address.\n",
|
||||
thread->name);
|
||||
}
|
||||
#else
|
||||
else if ((rt_ubase_t)thread->sp <= ((rt_ubase_t)thread->stack_addr + 32))
|
||||
{
|
||||
rt_kprintf("warning: %s stack is close to end of stack address.\n",
|
||||
thread->name);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -123,6 +123,24 @@ def bsp_update_kconfig(dist_dir):
|
|||
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
|
||||
# default update the projects which have template file
|
||||
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue