2022-12-31 14:42:31 +00:00
|
|
|
|
/******************************************************************************
|
|
|
|
|
* @brief ϵͳģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>,ʱ<EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD>ѯϵͳ)
|
|
|
|
|
*
|
|
|
|
|
* Copyright (c) 2017~2020, <morro_luo@163.com>
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
*
|
|
|
|
|
* Change Logs:
|
|
|
|
|
* Date Author Notes
|
|
|
|
|
* 2016-06-24 roger.luo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* 2020-05-23 roger.luo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ֹģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* 2020-06-28 roger.luo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>is_timeout<EFBFBD><EFBFBD>ʱ<EFBFBD>жϽӿ<EFBFBD>
|
|
|
|
|
******************************************************************************/
|
|
|
|
|
|
|
|
|
|
#ifndef _MODULE_H_
|
|
|
|
|
#define _MODULE_H_
|
|
|
|
|
|
|
|
|
|
#include "comdef.h"
|
|
|
|
|
#include <stdbool.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>
|
|
|
|
|
}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,level) \
|
|
|
|
|
USED ANONY_TYPE(const init_item_t, init_tbl_##func)\
|
|
|
|
|
SECTION("init.item."level) = {name,func}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] name - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] handle - <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(void func(void){...})
|
|
|
|
|
* @param[in] interval- <EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ms)
|
|
|
|
|
*/
|
|
|
|
|
#define task_register(name, handle,interval) \
|
|
|
|
|
static unsigned int __task_timer_##handle; \
|
|
|
|
|
USED ANONY_TYPE(const task_item_t, task_item_##handle) \
|
|
|
|
|
SECTION("task.item.1") = \
|
|
|
|
|
{name,handle, interval, &__task_timer_##handle}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* @brief ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] name - ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] func - <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD>(void func(void){...})
|
|
|
|
|
*/
|
|
|
|
|
#define system_init(name,func) __module_initialize(name,func,"1")
|
|
|
|
|
#define driver_init(name,func) __module_initialize(name,func,"2")
|
|
|
|
|
#define module_init(name,func) __module_initialize(name,func,"3")
|
|
|
|
|
|
|
|
|
|
void systick_increase(unsigned int ms);
|
|
|
|
|
unsigned int get_tick(void);
|
|
|
|
|
bool is_timeout(unsigned int start, unsigned int timeout);
|
|
|
|
|
void module_task_init(void);
|
|
|
|
|
void module_task_process(void);
|
|
|
|
|
|
|
|
|
|
#endif
|