- C文件:
 
 
- /*****************************************************************************************************************************/
 
- #include "ll_autoinit.h"
 
- /*****************************************************************************************************************************/
 
- __attribute__ ( ( used ) ) __attribute__ ( ( section ( ".autoinit.0" ) ) ) struct ll_autoinit_t autoinit_head ;
 
- __attribute__ ( ( used ) ) __attribute__ ( ( section ( ".autoinit.9" ) ) ) struct ll_autoinit_t autoinit_tail ;
 
- /*****************************************************************************************************************************/
 
- void ll_autoinit_init ( void )
 
- {
 
-     struct ll_autoinit_t * init = ( struct ll_autoinit_t * ) & autoinit_head ;
 
-     for ( init = init + 1; init < ( struct ll_autoinit_t * ) & autoinit_tail ; init++ )
 
-     {
 
-         init->cb_init();
 
-     }
 
- }
 
- /*****************************************************************************************************************************/
 
 
 
- H文件:
 
 
- #ifndef autoinit_h
 
- #define autoinit_h
 
- /*****************************************************************************************************************************/
 
- #include <stdint.h>
 
- /******************************************************************************************************************************
 
- * 功 能 : autoinit操作对象结构体
 
- ******************************************************************************************************************************/
 
- struct ll_autoinit_t
 
- {
 
-     const char * name ;
 
-     void ( * cb_init ) ( void ) ;
 
- } ;
 
- /******************************************************************************************************************************
 
- * 功 能 : 加载表格(BOARD)
 
- ******************************************************************************************************************************/
 
- #define LL_LOAD_AUTOINIT_BOARD(name,init)                                                   \
 
-     __attribute__ ( ( used ) ) __attribute__ ( ( section ( ".autoinit.1" ) ) )              \
 
-     struct ll_autoinit_t autoinit_board_##name = { #name ,init} ;
 
- /******************************************************************************************************************************
 
- * 功 能 : 加载表格(MODULE)
 
- ******************************************************************************************************************************/
 
- #define LL_LOAD_AUTOINIT_MODULE(name,init)                                                  \
 
-     __attribute__ ( ( used ) ) __attribute__ ( ( section ( ".autoinit.2" ) ) )              \
 
-     struct ll_autoinit_t autoinit_module_##name = { #name ,init} ;
 
- /******************************************************************************************************************************
 
- * 功 能 : 加载表格(APP)
 
- ******************************************************************************************************************************/
 
- #define LL_LOAD_AUTOINIT_APP(name,init)                                                     \
 
-     __attribute__ ( ( used ) ) __attribute__ ( ( section ( ".autoinit.3" ) ) )              \
 
-     struct ll_autoinit_t autoinit_app_##name = { #name ,init} ;
 
- /*****************************************************************************************************************************/
 
- void ll_autoinit_init ( void ) ;
 
- /*****************************************************************************************************************************/
 
- #endif
 
- </font>