/* * File : application.c * This file is part of RT-Thread RTOS * COPYRIGHT (C) 2006, RT-Thread Development Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rt-thread.org/license/LICENSE * * Change Logs: * Date Author Notes * 2009-01-05 Bernard the first version * 2013-07-12 aozima update for auto initial. */ /** * @addtogroup STM32 */ /*@{*/ #include #include #include #ifdef RT_USING_COMPONENTS_INIT #include #endif /* RT_USING_COMPONENTS_INIT */ #ifdef RT_USING_DFS /* dfs filesystem:ELM filesystem init */ #include /* dfs Filesystem APIs */ #include #endif #ifdef RT_USING_RTGUI #include #include #include #include #include #endif void rt_init_thread_entry(void* parameter) { #ifdef RT_USING_COMPONENTS_INIT /* initialization RT-Thread Components */ rt_components_init(); #endif /* Filesystem Initialization */ #if defined(RT_USING_DFS) && defined(RT_USING_DFS_ELMFAT) /* mount sd card fat partition 1 as root directory */ if (dfs_mount("sd0", "/", "elm", 0, 0) == 0) { rt_kprintf("File System initialized!\n"); } else rt_kprintf("File System initialzation failed!\n"); #endif /* RT_USING_DFS */ #ifdef RT_USING_RTGUI { extern void rt_hw_lcd_init(); extern void rtgui_touch_hw_init(void); rt_device_t lcd; /* init lcd */ rt_hw_lcd_init(); /* init touch panel */ rtgui_touch_hw_init(); /* find lcd device */ lcd = rt_device_find("lcd"); /* set lcd device as rtgui graphic driver */ rtgui_graphic_set_device(lcd); #ifndef RT_USING_COMPONENTS_INIT /* init rtgui system server */ rtgui_system_server_init(); #endif calibration_set_restore(cali_setup); calibration_set_after(cali_store); calibration_init(); } #endif /* #ifdef RT_USING_RTGUI */ } //#include "debug.h" // //rt_thread_t test_thread[2]; // //void rt_test_thread_entry(void *parameter) //{ // uint32_t num = (uint32_t)parameter; // uint32_t schedule_times = 0; // // while (1) // { // DEBUG(1, 0, "%d:%d\r\n", num, schedule_times++); // rt_thread_delay(1); // } //} int rt_application_init(void) { rt_thread_t init_thread; #if (RT_THREAD_PRIORITY_MAX == 32) init_thread = rt_thread_create("init", rt_init_thread_entry, RT_NULL, 2048, 8, 20); #else init_thread = rt_thread_create("init", rt_init_thread_entry, RT_NULL, 2048, 80, 20); #endif if (init_thread != RT_NULL) rt_thread_startup(init_thread); // test_thread[0] = rt_thread_create("t1", rt_test_thread_entry, (void *)1, 1024, 26, 5); // test_thread[1] = rt_thread_create("t2", rt_test_thread_entry, (void *)2, 1024, 26, 5); // if (test_thread[0] != RT_NULL) // rt_thread_startup(test_thread[0]); // if (test_thread[1] != RT_NULL) // rt_thread_startup(test_thread[1]); return 0; } /*@}*/