/* * Copyright (c) 2006-2020, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2020-04-22 hqfang first version * */ #include #include #include "board.h" #include "cpuport.h" #ifdef RT_USING_SERIAL #include #endif /** _end symbol defined in linker script of Nuclei SDK */ extern void *_end; /** _heap_end symbol defined in linker script of Nuclei SDK */ extern void *_heap_end; #define HEAP_BEGIN &_end #define HEAP_END &_heap_end /* * - Implemented and defined in Nuclei SDK system_.c file * - Required macro NUCLEI_BANNER set to 0 */ extern void _init(void); /** * @brief Setup hardware board for rt-thread * */ void rt_hw_board_init(void) { /* OS Tick Configuration */ rt_hw_ticksetup(); #ifdef RT_USING_HEAP rt_system_heap_init((void *) HEAP_BEGIN, (void *) HEAP_END); #endif _init(); // __libc_init_array is not used in RT-Thread /* UART driver initialization is open by default */ #ifdef RT_USING_SERIAL rt_hw_uart_init(); #endif /* Set the shell console output device */ #if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE) rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif /* Board underlying hardware initialization */ #ifdef RT_USING_COMPONENTS_INIT rt_components_board_init(); #endif } /******************** end of file *******************/