|
@@ -29,16 +29,6 @@
|
|
|
#ifdef RT_USING_FINSH
|
|
|
#include <finsh.h>
|
|
|
#endif
|
|
|
-extern void rt_hw_interrupt_init(void);
|
|
|
-extern void rt_hw_board_init(void);
|
|
|
-extern void rt_system_timer_init(void);
|
|
|
-extern void rt_system_scheduler_init(void);
|
|
|
-extern void rt_thread_idle_init(void);
|
|
|
-extern void mmu_invalidate_icache();
|
|
|
-extern void rt_hw_cpu_icache_enable(void);
|
|
|
-extern void rt_show_version(void);
|
|
|
-extern void rt_system_heap_init(void*, void*);
|
|
|
-extern void rt_hw_finsh_init(void);
|
|
|
extern void rt_application_init(void);
|
|
|
|
|
|
/**
|
|
@@ -48,65 +38,38 @@ extern void rt_application_init(void);
|
|
|
/*@{*/
|
|
|
#if defined(__CC_ARM)
|
|
|
extern int Image$$ER_ZI$$ZI$$Limit;
|
|
|
-#define HEAP_START ((void*)&Image$$ER_ZI$$ZI$$Limit)
|
|
|
+#define HEAP_BEGIN (&Image$$ER_ZI$$ZI$$Limit)
|
|
|
#elif (defined (__GNUC__))
|
|
|
extern unsigned char __bss_end__;
|
|
|
-#define HEAP_START ((void*)&__bss_end__)
|
|
|
+#define HEAP_BEGIN (&__bss_end__)
|
|
|
#elif (defined (__ICCARM__))
|
|
|
-#pragma section="HEAP"
|
|
|
-#define HEAP_START (__section_begin("HEAP"))
|
|
|
-#endif
|
|
|
-
|
|
|
-#define HEAP_END ((void*)0x24000000)
|
|
|
-
|
|
|
-#ifdef RT_USING_FINSH
|
|
|
-extern void finsh_system_init(void);
|
|
|
+#pragma section=".noinit"
|
|
|
+#define HEAP_BEGIN (__section_end(".noinit"))
|
|
|
#endif
|
|
|
|
|
|
+#define HEAP_END (0x24000000)
|
|
|
|
|
|
/**
|
|
|
* This function will startup RT-Thread RTOS.
|
|
|
*/
|
|
|
-void rtthread_startup(void)
|
|
|
+static void rtthread_startup(void)
|
|
|
{
|
|
|
- /* disable interrupt first */
|
|
|
- rt_hw_interrupt_disable();
|
|
|
- /* enable cpu cache */
|
|
|
- rt_hw_cpu_icache_disable();
|
|
|
- mmu_invalidate_icache();
|
|
|
- rt_hw_cpu_icache_enable();
|
|
|
-
|
|
|
- /* initialize hardware interrupt */
|
|
|
- rt_hw_interrupt_init();
|
|
|
-
|
|
|
- /* initialize board */
|
|
|
- rt_hw_board_init();
|
|
|
-
|
|
|
- /* show version */
|
|
|
- rt_show_version();
|
|
|
-
|
|
|
- /* initialize tick */
|
|
|
- rt_system_tick_init();
|
|
|
-
|
|
|
- /* initialize kernel object */
|
|
|
- rt_system_object_init();
|
|
|
+ /* initialize board */
|
|
|
+ rt_hw_board_init();
|
|
|
|
|
|
- /* initialize timer system */
|
|
|
- rt_system_timer_init();
|
|
|
+ /* show version */
|
|
|
+ rt_show_version();
|
|
|
|
|
|
- /* initialize heap memory system */
|
|
|
- rt_system_heap_init(HEAP_START, HEAP_END);
|
|
|
-
|
|
|
-#ifdef RT_USING_MODULE
|
|
|
- /* initialize module system*/
|
|
|
- rt_system_module_init();
|
|
|
+#ifdef RT_USING_HEAP
|
|
|
+ rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
|
|
|
#endif
|
|
|
|
|
|
- /* initialize scheduler system */
|
|
|
- rt_system_scheduler_init();
|
|
|
-
|
|
|
- /* initialize application */
|
|
|
- rt_application_init();
|
|
|
+ /* initialize scheduler system */
|
|
|
+ rt_system_scheduler_init();
|
|
|
+ /* initialize system timer*/
|
|
|
+ rt_system_timer_init();
|
|
|
+ /* initialize application */
|
|
|
+ rt_application_init();
|
|
|
|
|
|
#ifdef RT_USING_FINSH
|
|
|
/* initialize finsh */
|
|
@@ -115,26 +78,29 @@ void rtthread_startup(void)
|
|
|
finsh_set_device(RT_CONSOLE_DEVICE_NAME);
|
|
|
#endif
|
|
|
#endif
|
|
|
+
|
|
|
+ /* initialize timer thread */
|
|
|
+ rt_system_timer_thread_init();
|
|
|
|
|
|
- /* initialize system timer thread */
|
|
|
- rt_system_timer_thread_init();
|
|
|
-
|
|
|
- /* initialize idle thread */
|
|
|
- rt_thread_idle_init();
|
|
|
+ /* initialize idle thread */
|
|
|
+ rt_thread_idle_init();
|
|
|
|
|
|
- /* start scheduler */
|
|
|
- rt_system_scheduler_start();
|
|
|
+ /* start scheduler */
|
|
|
+ rt_system_scheduler_start();
|
|
|
|
|
|
- /* never reach here */
|
|
|
- return ;
|
|
|
+ /* never reach here */
|
|
|
+ return ;
|
|
|
}
|
|
|
|
|
|
int main(void)
|
|
|
{
|
|
|
- /* startup RT-Thread RTOS */
|
|
|
- rtthread_startup();
|
|
|
+ /* disable interrupt first */
|
|
|
+ rt_hw_interrupt_disable();
|
|
|
+
|
|
|
+ /* startup RT-Thread RTOS */
|
|
|
+ rtthread_startup();
|
|
|
|
|
|
- return 0;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
/*@}*/
|