diff options
| author | aozima <[email protected]> | 2013-02-21 18:52:17 +0800 |
|---|---|---|
| committer | aozima <[email protected]> | 2013-02-21 18:52:17 +0800 |
| commit | 5c17c2e69837f829641e1480adf8a78c2fabc0ee (patch) | |
| tree | a7ec9d44133e9fd8dba6635f3546135106b6169d | |
| parent | 7bec8a242b87d7881b3c28d638db68c553d6d111 (diff) | |
update: bsp/stm32f107 add RT_USING_COMPONENTS_INIT.
| -rw-r--r-- | bsp/stm32f107/SConstruct | 9 | ||||
| -rw-r--r-- | bsp/stm32f107/applications/application.c | 65 | ||||
| -rw-r--r-- | bsp/stm32f107/applications/startup.c | 88 | ||||
| -rw-r--r-- | bsp/stm32f107/drivers/board.c | 54 | ||||
| -rw-r--r-- | bsp/stm32f107/drivers/board.h | 20 | ||||
| -rw-r--r-- | bsp/stm32f107/drivers/platform.c | 22 | ||||
| -rw-r--r-- | bsp/stm32f107/project.uvproj | 19 | ||||
| -rw-r--r-- | bsp/stm32f107/rtconfig.h | 9 |
8 files changed, 125 insertions, 161 deletions
diff --git a/bsp/stm32f107/SConstruct b/bsp/stm32f107/SConstruct index eec87f1c3f..6d24e548bf 100644 --- a/bsp/stm32f107/SConstruct +++ b/bsp/stm32f107/SConstruct @@ -28,10 +28,5 @@ Export('RTT_ROOT') Export('rtconfig') # prepare building environment -objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) - -# build program -env.Program(TARGET, objs) - -# end building -EndBuilding(TARGET) +objs = PrepareBuilding(env, RTT_ROOT) +DoBuilding(TARGET, objs) diff --git a/bsp/stm32f107/applications/application.c b/bsp/stm32f107/applications/application.c index 7832a21ead..025451d32e 100644 --- a/bsp/stm32f107/applications/application.c +++ b/bsp/stm32f107/applications/application.c @@ -1,7 +1,7 @@ /* * File : application.c * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Development Team + * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -21,67 +21,42 @@ #include <rtthread.h> #ifdef RT_USING_DFS -/* dfs init */ -#include <dfs_init.h> -/* dfs filesystem:ELM filesystem init */ -#include <dfs_elm.h> -/* dfs Filesystem APIs */ #include <dfs_fs.h> #endif -#ifdef RT_USING_LWIP -#include <lwip/sys.h> -#include <lwip/api.h> -#include <netif/ethernetif.h> -#include "stm32_eth.h" -#endif +#ifdef RT_USING_COMPONENTS_INIT +#include <components.h> +#endif /* RT_USING_COMPONENTS_INIT */ void rt_init_thread_entry(void* parameter) { -/* Filesystem Initialization */ -#ifdef RT_USING_DFS - { - /* init the device filesystem */ - dfs_init(); - -#ifdef RT_USING_DFS_ELMFAT - /* init the elm chan FatFs filesystam*/ - elm_init(); + { + extern void rt_platform_init(void); + rt_platform_init(); + } - /* init sdcard driver */ - rt_hw_msd_init(); +#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 - } -#endif - - /* LwIP Initialization */ -#ifdef RT_USING_LWIP - { - extern void lwip_sys_init(void); - - /* register ethernetif device */ - eth_system_device_init(); - - rt_hw_stm32_eth_init(); - /* re-init device driver */ - rt_device_init_all(); - - /* init lwip system */ - lwip_sys_init(); - rt_kprintf("TCP/IP initialized!\n"); + } } -#endif +#endif /* RT_USING_DFS && RT_USING_DFS_ELMFAT */ } -int rt_application_init() +int rt_application_init(void) { rt_thread_t init_thread; @@ -96,7 +71,9 @@ int rt_application_init() #endif if (init_thread != RT_NULL) + { rt_thread_startup(init_thread); + } return 0; } diff --git a/bsp/stm32f107/applications/startup.c b/bsp/stm32f107/applications/startup.c index ecacf0e64f..eae71a17e6 100644 --- a/bsp/stm32f107/applications/startup.c +++ b/bsp/stm32f107/applications/startup.c @@ -1,7 +1,7 @@ /* * File : startup.c * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006, RT-Thread Develop Team + * COPYRIGHT (C) 2006 - 2013, RT-Thread Develop Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -15,8 +15,6 @@ #include <rthw.h> #include <rtthread.h> - -#include "stm32f10x.h" #include "board.h" /** @@ -26,17 +24,16 @@ /*@{*/ extern int rt_application_init(void); -#ifdef RT_USING_FINSH -extern void finsh_system_init(void); -extern void finsh_set_device(const char* device); -#endif #ifdef __CC_ARM extern int Image$$RW_IRAM1$$ZI$$Limit; +#define STM32_SRAM_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) #elif __ICCARM__ #pragma section="HEAP" +#define STM32_SRAM_BEGIN (__segment_end("HEAP")) #else extern int __bss_end; +#define STM32_SRAM_BEGIN (&__bss_end) #endif /******************************************************************************* @@ -50,11 +47,11 @@ extern int __bss_end; *******************************************************************************/ void assert_failed(u8* file, u32 line) { - rt_kprintf("\n\r Wrong parameter value detected on\r\n"); - rt_kprintf(" file %s\r\n", file); - rt_kprintf(" line %d\r\n", line); + rt_kprintf("\n\r Wrong parameter value detected on\r\n"); + rt_kprintf(" file %s\r\n", file); + rt_kprintf(" line %d\r\n", line); - while (1) ; + while (1) ; } /** @@ -62,69 +59,56 @@ void assert_failed(u8* file, u32 line) */ void rtthread_startup(void) { - /* init board */ - rt_hw_board_init(); + /* init board */ + rt_hw_board_init(); - /* show version */ - rt_show_version(); + /* show version */ + rt_show_version(); - /* init tick */ - rt_system_tick_init(); + /* init tick */ + rt_system_tick_init(); - /* init kernel object */ - rt_system_object_init(); + /* init kernel object */ + rt_system_object_init(); - /* init timer system */ - rt_system_timer_init(); + /* init timer system */ + rt_system_timer_init(); #ifdef RT_USING_HEAP - #ifdef __CC_ARM - rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)STM32_SRAM_END); - #elif __ICCARM__ - rt_system_heap_init(__segment_end("HEAP"), (void*)STM32_SRAM_END); - #else - /* init memory system */ - rt_system_heap_init((void*)&__bss_end, (void*)STM32_SRAM_END); - #endif + rt_system_heap_init((void*)STM32_SRAM_BEGIN, (void*)STM32_SRAM_END); #endif - /* init scheduler system */ - rt_system_scheduler_init(); + /* init scheduler system */ + rt_system_scheduler_init(); - /* init all device */ - rt_device_init_all(); + /* init all device */ + rt_device_init_all(); - /* init application */ - rt_application_init(); - -#ifdef RT_USING_FINSH - /* init finsh */ - finsh_system_init(); - finsh_set_device("uart1"); -#endif + /* init application */ + rt_application_init(); /* init timer thread */ rt_system_timer_thread_init(); - /* init idle thread */ - rt_thread_idle_init(); + /* init 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) { - /* disable interrupt first */ - rt_hw_interrupt_disable(); + /* disable interrupt first */ + rt_hw_interrupt_disable(); - /* startup RT-Thread RTOS */ - rtthread_startup(); + /* startup RT-Thread RTOS */ + rtthread_startup(); - return 0; + return 0; } /*@}*/ diff --git a/bsp/stm32f107/drivers/board.c b/bsp/stm32f107/drivers/board.c index 2a57412132..6845e3cc41 100644 --- a/bsp/stm32f107/drivers/board.c +++ b/bsp/stm32f107/drivers/board.c @@ -1,7 +1,7 @@ /* * File : board.c * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009 RT-Thread Develop Team + * COPYRIGHT (C) 2006 - 2013 RT-Thread Develop Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -33,62 +33,42 @@ void NVIC_Configuration(void) { #ifdef VECT_TAB_RAM - /* Set the Vector Table base location at 0x20000000 */ - NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); + /* Set the Vector Table base location at 0x20000000 */ + NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else /* VECT_TAB_FLASH */ - /* Set the Vector Table base location at 0x08000000 */ - NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); + /* Set the Vector Table base location at 0x08000000 */ + NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); #endif } -/******************************************************************************* - * Function Name : SysTick_Configuration - * Description : Configures the SysTick for OS tick. - * Input : None - * Output : None - * Return : None - *******************************************************************************/ -void SysTick_Configuration(void) -{ - RCC_ClocksTypeDef rcc_clocks; - rt_uint32_t cnts; - - RCC_GetClocksFreq(&rcc_clocks); - - cnts = (rt_uint32_t)rcc_clocks.HCLK_Frequency / RT_TICK_PER_SECOND; - - SysTick_Config(cnts); - SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); -} - /** * This is the timer interrupt service routine. * */ void rt_hw_timer_handler(void) { - /* enter interrupt */ - rt_interrupt_enter(); + /* enter interrupt */ + rt_interrupt_enter(); - rt_tick_increase(); + rt_tick_increase(); - /* leave interrupt */ - rt_interrupt_leave(); + /* leave interrupt */ + rt_interrupt_leave(); } /** * This function will initial STM32 board. */ -void rt_hw_board_init() +void rt_hw_board_init(void) { - /* NVIC Configuration */ - NVIC_Configuration(); + /* NVIC Configuration */ + NVIC_Configuration(); - /* Configure the SysTick */ - SysTick_Configuration(); + /* Configure the SysTick */ + SysTick_Config( SystemCoreClock / RT_TICK_PER_SECOND ); - rt_hw_usart_init(); - rt_console_set_device(CONSOLE_DEVICE); + rt_hw_usart_init(); + rt_console_set_device(RT_CONSOLE_DEVICE_NAME); } /*@}*/ diff --git a/bsp/stm32f107/drivers/board.h b/bsp/stm32f107/drivers/board.h index ce7e429eff..6baae403ba 100644 --- a/bsp/stm32f107/drivers/board.h +++ b/bsp/stm32f107/drivers/board.h @@ -1,7 +1,7 @@ /* * File : board.h * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2009, RT-Thread Development Team + * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -40,27 +40,9 @@ #define STM32_SRAM_SIZE 64 #define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) -// <o> Console on USART: <0=> no console <1=>USART 1 <2=>USART 2 <3=> USART 3 -// <i>Default: 1 -#define STM32_CONSOLE_USART 1 - void rt_hw_board_init(void); - -#if STM32_CONSOLE_USART == 0 -#define CONSOLE_DEVICE "no" -#elif STM32_CONSOLE_USART == 1 -#define CONSOLE_DEVICE "uart1" -#elif STM32_CONSOLE_USART == 2 -#define CONSOLE_DEVICE "uart2" -#elif STM32_CONSOLE_USART == 3 -#define CONSOLE_DEVICE "uart3" -#endif - void rt_hw_usart_init(void); -/* SD Card init function */ -void rt_hw_msd_init(void); - #endif // <<< Use Configuration Wizard in Context Menu >>> diff --git a/bsp/stm32f107/drivers/platform.c b/bsp/stm32f107/drivers/platform.c new file mode 100644 index 0000000000..694b4843b2 --- /dev/null +++ b/bsp/stm32f107/drivers/platform.c @@ -0,0 +1,22 @@ +#include <rtthread.h> +#include <board.h> + +#ifdef RT_USING_LWIP +#include "stm32_eth.h" +#endif /* RT_USING_LWIP */ + +void rt_platform_init(void) +{ +#ifdef RT_USING_LWIP + /* initialize eth interface */ + rt_hw_stm32_eth_init(); +#endif /* RT_USING_LWIP */ + +#if defined(RT_USING_DFS) && defined(RT_USING_DFS_ELMFAT) + /* init sdcard driver */ + { + extern void rt_hw_msd_init(void); + rt_hw_msd_init(); + } +#endif /* RT_USING_DFS && RT_USING_DFS_ELMFAT */ +} diff --git a/bsp/stm32f107/project.uvproj b/bsp/stm32f107/project.uvproj index 4459183e71..2a86c5ed73 100644 --- a/bsp/stm32f107/project.uvproj +++ b/bsp/stm32f107/project.uvproj @@ -343,7 +343,7 @@ <MiscControls /> <Define>STM32F10X_CL, USE_STDPERIPH_DRIVER</Define> <Undefine /> - <IncludePath>.;..\..\components\CMSIS\Include;..\..\components\dfs;..\..\components\dfs\include;..\..\components\finsh;..\..\components\net\lwip\src;..\..\components\net\lwip\src\arch\include;..\..\components\net\lwip\src\include;..\..\components\net\lwip\src\include\ipv4;..\..\components\net\lwip\src\include\netif;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m3;Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x;Libraries\STM32F10x_StdPeriph_Driver\inc;applications;drivers</IncludePath> + <IncludePath>.;..\..\components\CMSIS\Include;..\..\components\dfs;..\..\components\dfs\include;..\..\components\finsh;..\..\components\init;..\..\components\net\lwip\src;..\..\components\net\lwip\src\arch\include;..\..\components\net\lwip\src\include;..\..\components\net\lwip\src\include\ipv4;..\..\components\net\lwip\src\include\netif;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m3;Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x;Libraries\STM32F10x_StdPeriph_Driver\inc;applications;drivers</IncludePath> </VariousControls> </Cads> <Aads> @@ -415,6 +415,13 @@ </Files> <Files> <File> + <FileName>platform.c</FileName> + <FileType>1</FileType> + <FilePath>drivers\platform.c</FilePath> + </File> + </Files> + <Files> + <File> <FileName>serial.c</FileName> <FileType>1</FileType> <FilePath>drivers\serial.c</FilePath> @@ -885,6 +892,16 @@ </Files> </Group> <Group> + <GroupName>Components</GroupName> + <Files> + <File> + <FileName>components.c</FileName> + <FileType>1</FileType> + <FilePath>..\..\components\init\components.c</FilePath> + </File> + </Files> + </Group> + <Group> <GroupName>LwIP</GroupName> <Files> <File> diff --git a/bsp/stm32f107/rtconfig.h b/bsp/stm32f107/rtconfig.h index 8193187044..54999d5f42 100644 --- a/bsp/stm32f107/rtconfig.h +++ b/bsp/stm32f107/rtconfig.h @@ -28,7 +28,6 @@ /* #define RT_USING_TIMER_SOFT */ #define RT_TIMER_THREAD_PRIO 4 #define RT_TIMER_THREAD_STACK_SIZE 512 -#define RT_TIMER_TICK_PER_SECOND 10 /* SECTION: IPC */ /* Using Semaphore*/ @@ -66,6 +65,14 @@ /* the buffer size of console*/ #define RT_CONSOLEBUF_SIZE 128 +// <string name="RT_CONSOLE_DEVICE_NAME" description="console device name" default="uart3" /> +#define RT_CONSOLE_DEVICE_NAME "uart1" +// </section> + +// <section name="RT_USING_COMPONENTS_INIT" description="Using components init" default="true" > +#define RT_USING_COMPONENTS_INIT +// </section> + /* SECTION: finsh, a C-Express shell */ #define RT_USING_FINSH /* Using symbol table */ |
