diff --git a/include/rtdef.h b/include/rtdef.h index adc46afc1a726a98e2a88e1c813a46191fda1508..55f6e6b945271ad21ff85a139dc80d746e59abd9 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -29,7 +29,6 @@ * RT_USING_MEMHEAP condition. * 2012-12-30 Bernard add more control command for graphic. * 2013-01-09 Bernard change version number. - * 2014-11-24 Arda.Fu add INIT_EXPORT_EX micro define */ #ifndef __RT_DEF_H__ @@ -173,55 +172,43 @@ typedef rt_base_t rt_off_t; /**< Type for offset */ /* initialization export */ #ifdef RT_USING_COMPONENTS_INIT - typedef int (*init_fn_t)(void); - #ifdef _MSC_VER /* we do not support MS VC++ compiler */ - #define INIT_EXPORT(fn, level) - #define INIT_EXPORT_EX(fn, level, sublevel) - #else - #if RT_DEBUG_INIT - struct rt_init_desc - { - const char* fn_name; - const init_fn_t fn; - }; - #define INIT_EXPORT(fn, level) \ - const char __rti_##fn##_name[] = "["#level"]"#fn; \ - const struct rt_init_desc __rt_init_desc_##fn \ - SECTION(".rti_fn."level) = { __rti_##fn##_name, fn}; - #define INIT_EXPORT_EX(fn, level, index) \ - const char __rti_##fn##_name[] = "["#level":"#index"]"#fn; \ - const struct rt_init_desc __rt_init_desc_##fn \ - SECTION(".rti_fn."level#index) = { __rti_##fn##_name, fn}; - #else - #define INIT_EXPORT(fn, level) \ - const init_fn_t __rt_init_##fn \ - SECTION(".rti_fn."level) = fn - #define INIT_EXPORT_EX(fn, level, index) \ - const init_fn_t __rt_init_##fn \ - SECTION(".rti_fn."level#index) = fn - #endif - #endif -#else +typedef int (*init_fn_t)(void); +#ifdef _MSC_VER /* we do not support MS VC++ compiler */ #define INIT_EXPORT(fn, level) - #define INIT_EXPORT_EX(fn, level, sublevel) +#else + #if RT_DEBUG_INIT + struct rt_init_desc + { + const char* fn_name; + const init_fn_t fn; + }; + #define INIT_EXPORT(fn, level) \ + const char __rti_##fn##_name[] = #fn; \ + const struct rt_init_desc __rt_init_desc_##fn SECTION(".rti_fn."level) = \ + { __rti_##fn##_name, fn}; + #else + #define INIT_EXPORT(fn, level) \ + const init_fn_t __rt_init_##fn SECTION(".rti_fn."level) = fn + #endif +#endif +#else +#define INIT_EXPORT(fn, level) #endif /* board init routines will be called in board_init() function */ #define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1") -#define INIT_BOARD_EXPORT_EX(fn, index) INIT_EXPORT_EX(fn, "1", index) /* device/component/fs/app init routines will be called in init_thread */ /* device initialization */ #define INIT_DEVICE_EXPORT(fn) INIT_EXPORT(fn, "2") -#define INIT_DEVICE_EXPORT_EX(fn, index) INIT_EXPORT_EX(fn, "2", index) /* components initialization (dfs, lwip, ...) */ #define INIT_COMPONENT_EXPORT(fn) INIT_EXPORT(fn, "3") /* file system initialization (dfs-elm, dfs-rom, ...) */ #define INIT_FS_EXPORT(fn) INIT_EXPORT(fn, "4") /* environment initialization (mount disk, ...) */ -#define INIT_ENV_EXPORT(fn) INIT_EXPORT(fn, "5") +#define INIT_ENV_EXPORT(fn) INIT_EXPORT(fn, "5") /* appliation initialization (rtgui application etc ...) */ #define INIT_APP_EXPORT(fn) INIT_EXPORT(fn, "6") -#define INIT_APP_EXPORT_EX(fn, index) INIT_EXPORT_EX(fn, "6", index) + #if !defined(RT_USING_FINSH) /* define these to empty, even if not include finsh.h file */ #define FINSH_FUNCTION_EXPORT(name, desc)