@@ -719,27 +719,31 @@ static void memset_64 (uint64_t * destination, const uint64_t value, size_t coun
719719 **********************************************************************************************************************/
720720static void bsp_init_itcm (void )
721721{
722- uint64_t * itcm_destination ;
723- const uint64_t * itcm_source ;
724- size_t count ;
722+ uint64_t * itcm_destination = NULL ;
723+ const uint64_t * itcm_source = NULL ;
724+ size_t count = 0 ;
725725
726- #if defined(__ARMCC_VERSION )
726+ #if defined(__ARMCC_VERSION )
727727 itcm_destination = (uint64_t * ) & Image$$ITCM_DATA$$Base ;
728728 itcm_source = (uint64_t * ) & Load$$ITCM_DATA$$Base ;
729729 count = ((uint32_t ) & Load$$ITCM_PAD$$Limit - (uint32_t ) & Load$$ITCM_DATA$$Base ) / sizeof (uint64_t );
730- #elif defined(__GNUC__ )
730+ #elif defined(__GNUC__ )
731731 itcm_destination = (uint64_t * ) & __itcm_data_start ;
732732 itcm_source = (uint64_t * ) & __itcm_data_init_start ;
733733 count = ((uint32_t ) & __itcm_data_init_end - (uint32_t ) & __itcm_data_init_start ) / sizeof (uint64_t );
734- #elif defined(__ICCARM__ )
734+ #elif defined(__ICCARM__ )
735735 itcm_destination = (uint64_t * ) & ITCM_DATA$$Base ;
736736 itcm_source = (uint64_t * ) & ITCM_DATA_INIT$$Base ;
737737 count = ((uint32_t ) & ITCM_DATA_INIT$$Limit - (uint32_t ) & ITCM_DATA_INIT$$Base ) / sizeof (uint64_t );
738- #endif
738+ #endif
739739
740- memcpy_64 (itcm_destination , itcm_source , count );
740+ if ((itcm_destination != NULL ) && (itcm_source != NULL ) && (count > 0 ))
741+ {
742+ memcpy_64 (itcm_destination , itcm_source , count );
743+ }
741744}
742745
746+
743747 #endif
744748
745749 #if BSP_FEATURE_BSP_HAS_DTCM
0 commit comments