diff --git a/bsp/imxrt/libraries/MIMXRT1050/MIMXRT1052/gcc/startup_MIMXRT1052.S b/bsp/imxrt/libraries/MIMXRT1050/MIMXRT1052/gcc/startup_MIMXRT1052.S index ae0f797605..73003ff20c 100644 --- a/bsp/imxrt/libraries/MIMXRT1050/MIMXRT1052/gcc/startup_MIMXRT1052.S +++ b/bsp/imxrt/libraries/MIMXRT1050/MIMXRT1052/gcc/startup_MIMXRT1052.S @@ -367,6 +367,7 @@ Reset_Handler: blt .LC4 #endif /* __STARTUP_INITIALIZE_NONCACHEDATA */ +#ifdef __STARTUP_CLEAR_BSS /* This part of work usually is done in C library startup code. Otherwise, * define this macro to enable it in this startup. * @@ -384,6 +385,7 @@ Reset_Handler: itt lt strlt r0, [r1], #4 blt .LC5 +#endif /* __STARTUP_CLEAR_BSS */ cpsie i /* Unmask interrupts */ #ifndef __START diff --git a/bsp/imxrt/libraries/MIMXRT1050/SConscript b/bsp/imxrt/libraries/MIMXRT1050/SConscript index 4b652628f4..7f8f971b82 100644 --- a/bsp/imxrt/libraries/MIMXRT1050/SConscript +++ b/bsp/imxrt/libraries/MIMXRT1050/SConscript @@ -76,6 +76,9 @@ if GetDepend(['BSP_USING_DMA']): src += ['MIMXRT1052/drivers/fsl_lpspi_edma.c'] -group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path) +if rtconfig.CROSS_TOOL == 'gcc': + group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path, ASFLAGS = '$ASFLAGS -D __STARTUP_CLEAR_BSS') +else: + group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path) Return('group') diff --git a/bsp/imxrt/libraries/MIMXRT1064/MIMXRT1064/gcc/startup_MIMXRT1064.S b/bsp/imxrt/libraries/MIMXRT1064/MIMXRT1064/gcc/startup_MIMXRT1064.S index ade70ab34e..db5711e040 100644 --- a/bsp/imxrt/libraries/MIMXRT1064/MIMXRT1064/gcc/startup_MIMXRT1064.S +++ b/bsp/imxrt/libraries/MIMXRT1064/MIMXRT1064/gcc/startup_MIMXRT1064.S @@ -366,6 +366,7 @@ Reset_Handler: blt .LC4 #endif /* __STARTUP_INITIALIZE_NONCACHEDATA */ +#ifdef __STARTUP_CLEAR_BSS /* This part of work usually is done in C library startup code. Otherwise, * define this macro to enable it in this startup. * @@ -383,6 +384,7 @@ Reset_Handler: itt lt strlt r0, [r1], #4 blt .LC5 +#endif /* __STARTUP_CLEAR_BSS */ cpsie i /* Unmask interrupts */ #ifndef __START diff --git a/bsp/imxrt/libraries/MIMXRT1064/SConscript b/bsp/imxrt/libraries/MIMXRT1064/SConscript index 00361da038..c83546f0eb 100644 --- a/bsp/imxrt/libraries/MIMXRT1064/SConscript +++ b/bsp/imxrt/libraries/MIMXRT1064/SConscript @@ -74,6 +74,9 @@ if GetDepend(['RT_SERIAL_USING_DMA']): src += ['MIMXRT1064/drivers/fsl_lpuart_edma.c'] src += ['MIMXRT1064/drivers/fsl_lpspi_edma.c'] -group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path) +if rtconfig.CROSS_TOOL == 'gcc': + group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path, ASFLAGS = '$ASFLAGS -D __STARTUP_CLEAR_BSS') +else: + group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path) Return('group')