__externC void CYGOPT_HAL_KINETIS_MISC_FLASH_SECTION_ATTR hal_system_init( void ) { #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_SRAM) hal_wdog_disable(); hal_gpio_init(); hal_start_clocks(); #endif #if defined(CYG_HAL_STARTUP_SRAM) && !defined(CYGHWR_HAL_CORTEXM_KINETIS_SRAM_UNIFIED) // Note: For CYG_HAL_STARTUP_SRAM, the SRAM_L bank simulates ROM // Relocate data from ROM to RAM { register cyg_uint32 *ram_p, *rom_p; for( ram_p = &__ram_data_start, rom_p = &__rom_data_start; ram_p < &__ram_data_end; ram_p++, rom_p++ ) *ram_p = *rom_p; } // Relocate data from ROM to SRAM { register cyg_uint32 *ram_p, *sram_p; for( ram_p = &__sram_data_start, sram_p = &__srom_data_start; ram_p < &__sram_data_end; ram_p++, sram_p++ ) *ram_p = *sram_p; } #endif }
__externC void CYGOPT_HAL_KINETIS_MISC_FLASH_SECTION_ATTR hal_system_init( void ) { #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_SRAM) hal_wdog_disable(); hal_misc_init(); # ifdef CYGPKG_HAL_CORTEXM_KINETIS_FLEXBUS { // This delay is needed for Micron RAM wake-up. cyg_uint32 busy_delay; for(busy_delay = 0x100000; busy_delay; busy_delay--) __asm__ volatile ("nop\n"); hal_flexbus_init_initial(); hal_start_clocks(); for(busy_delay = 0x100000; busy_delay; busy_delay--) __asm__ volatile ("nop\n"); hal_flexbus_init_final(); } # else hal_start_clocks(); # endif #endif }