mirror of
https://gitee.com/moluo-tech/CodeBrick.git
synced 2025-02-06 04:48:22 +08:00
60 lines
1.9 KiB
C
60 lines
1.9 KiB
C
/*******************************************************************************
|
||
* @brief ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>ʼ<EFBFBD><CABC>,ʱ<><CAB1>Ƭ<EFBFBD><C6AC>ѯϵͳ)
|
||
*
|
||
* Change Logs:
|
||
* Date Author Notes
|
||
* 2016-06-24 ħ<><EFBFBD>ʿ Initial version.
|
||
*******************************************************************************/
|
||
|
||
#ifndef _MODULE_H_
|
||
#define _MODULE_H_
|
||
|
||
#include "comdef.h"
|
||
|
||
/*ģ<><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>*/
|
||
typedef struct {
|
||
const char *name; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
void (*init)(void); //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ӿ<EFBFBD>
|
||
}module_init_item_t;
|
||
|
||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||
typedef struct {
|
||
const char *name; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
void (*handle)(void); //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ӿ<EFBFBD>
|
||
unsigned int interval; //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
||
unsigned int *timer; //ָ<><D6B8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ָ<EFBFBD><D6B8>
|
||
}task_item_t;
|
||
|
||
#define __module_initialize(name,func,section_name) \
|
||
RESERVE ANONY_TYPE(const module_init_item_t,func) \
|
||
SECTION("section_sys_init") UNUSED = {name,func}
|
||
|
||
/*
|
||
* @brief <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
|
||
* @param[in] name - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* @param[in] handle - <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(void func(void){...})
|
||
* @param[in] interval- <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>(ms)
|
||
*/
|
||
#define task_register(name, handle,interval) \
|
||
RESERVE static unsigned int __task_timer_##handle; \
|
||
RESERVE ANONY_TYPE(const task_item_t,handle) \
|
||
SECTION("section_task_item") UNUSED = \
|
||
{name,handle, interval, &__task_timer_##handle}
|
||
|
||
/*
|
||
* @brief ģ<><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ע<EFBFBD><D7A2>
|
||
* @param[in] name - ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* @param[in] func - <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD>(void func(void){...})
|
||
*/
|
||
#define system_init(name,func) __module_initialize(name,func,"section_sys_init")
|
||
#define driver_init(name,func) __module_initialize(name,func,"section_drv_init")
|
||
#define module_init(name,func) __module_initialize(name,func,"section_app_init")
|
||
|
||
void systick_increase(void);
|
||
unsigned int get_tick(void);
|
||
void module_task_init(void);
|
||
void module_task_poll(void);
|
||
|
||
|
||
#endif
|