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 * 2013-7-14 Peng Fan Modified from mini4020 9 */ 10 11 #include <rthw.h> 12 #include <rtthread.h> 13 14 #include <board.h> 15 #include <drivers/dev_serial.h> 16 #ifdef RT_USING_FINSH 17 #include <finsh.h> 18 #endif 19 20 #ifdef RT_USING_LWIP 21 #include <lwip/sys.h> 22 #include <netif/ethernetif.h> 23 #endif 24 25 #include <sep6200.h> 26 27 rt_uint8_t _irq_stack_start[1024]; 28 rt_uint8_t _fiq_stack_start[1024]; 29 rt_uint8_t _undefined_stack_start[512]; 30 rt_uint8_t _abort_stack_start[512]; 31 rt_uint8_t _priv_stack_start[4096]; rt_section(".nobss"); 32 extern unsigned char __bss_start; 33 extern unsigned char __bss_end; 34 35 36 extern void rt_hw_board_init(void); 37 extern void rt_application_init(void); 38 extern int finsh_system_init(void); 39 extern void sd_init(void); 40 rtthread_startup()41void rtthread_startup() 42 { 43 /* init hardware interrupt */ 44 rt_hw_interrupt_init(); 45 46 /* init board */ 47 rt_hw_board_init(); 48 49 /* show version */ 50 rt_show_version(); 51 52 /* init timer system */ 53 rt_system_timer_init(); 54 55 /* init heap memory system */ 56 rt_system_heap_init(&__bss_end, (void*)0x45000000); 57 58 /* init scheduler system */ 59 rt_system_scheduler_init(); 60 61 /* init application */ 62 rt_application_init(); 63 64 #ifdef RT_USING_FINSH 65 /* init finsh */ 66 finsh_system_init(); 67 #if !defined(RT_USING_POSIX_STDIO) && defined(RT_USING_DEVICE) 68 finsh_set_device("uart0"); 69 #endif 70 #endif 71 72 rt_system_timer_thread_init(); 73 74 /* init idle thread */ 75 rt_thread_idle_init(); 76 77 /* start scheduler */ 78 rt_system_scheduler_start(); 79 80 /* never reach here */ 81 return ; 82 83 } 84