1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2010-03-30     Kyle         First version
9  */
10 
11 #include <rtthread.h>
12 
13 extern void rt_hw_board_init(void);
14 extern void rt_application_init(void);
15 
16 #ifdef RT_USING_FINSH
17 extern int finsh_system_init(void);
18 extern void finsh_set_device(const char* device);
19 #endif
20 
main(void)21 int main(void)
22 {
23 #ifdef RT_USING_HEAP
24     extern void __heap_start__;
25     extern void __heap_end__;
26 #endif
27 
28     rt_hw_board_init();
29     rt_system_timer_init();
30 
31 #ifdef RT_USING_HEAP
32     rt_system_heap_init(&__heap_start__, &__heap_end__);
33 #endif
34 
35     rt_system_scheduler_init();
36     rt_application_init();
37 
38 #ifdef RT_USING_FINSH
39     /* init finsh */
40     finsh_system_init();
41 #if !defined(RT_USING_POSIX_STDIO) && defined(RT_USING_DEVICE)
42     finsh_set_device(RT_CONSOLE_DEVICE_NAME);
43 #endif
44 #endif
45 
46     rt_thread_idle_init();
47     rt_system_scheduler_start();
48 
49     return 0;
50 }
51