未验证 提交 70376d22 编写于 作者: B Bernard Xiong 提交者: GitHub

Merge pull request #4947 from supperthomas/supperthomas_comment

[kernel] add the comment of irq.c and timer.c
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
* 2006-05-03 Bernard add IRQ_DEBUG * 2006-05-03 Bernard add IRQ_DEBUG
* 2016-08-09 ArdaFu add interrupt enter and leave hook. * 2016-08-09 ArdaFu add interrupt enter and leave hook.
* 2018-11-22 Jesven rt_interrupt_get_nest function add disable irq * 2018-11-22 Jesven rt_interrupt_get_nest function add disable irq
* 2021-08-15 Supperthomas fix the comment
*/ */
#include <rthw.h> #include <rthw.h>
...@@ -21,19 +22,26 @@ static void (*rt_interrupt_leave_hook)(void); ...@@ -21,19 +22,26 @@ static void (*rt_interrupt_leave_hook)(void);
/** /**
* @ingroup Hook * @ingroup Hook
* This function set a hook function when the system enter a interrupt *
* @brief This function set a hook function when the system enter a interrupt
* *
* @note the hook function must be simple and never be blocked or suspend. * @note the hook function must be simple and never be blocked or suspend.
*
* @param hook The function point to be called
*/ */
void rt_interrupt_enter_sethook(void (*hook)(void)) void rt_interrupt_enter_sethook(void (*hook)(void))
{ {
rt_interrupt_enter_hook = hook; rt_interrupt_enter_hook = hook;
} }
/** /**
* @ingroup Hook * @ingroup Hook
* This function set a hook function when the system exit a interrupt. *
* @brief This function set a hook function when the system exit a interrupt.
* *
* @note the hook function must be simple and never be blocked or suspend. * @note the hook function must be simple and never be blocked or suspend.
*
* @param hook The function point to be called
*/ */
void rt_interrupt_leave_sethook(void (*hook)(void)) void rt_interrupt_leave_sethook(void (*hook)(void))
{ {
...@@ -53,8 +61,9 @@ void rt_interrupt_leave_sethook(void (*hook)(void)) ...@@ -53,8 +61,9 @@ void rt_interrupt_leave_sethook(void (*hook)(void))
volatile rt_uint8_t rt_interrupt_nest = 0; volatile rt_uint8_t rt_interrupt_nest = 0;
#endif /* RT_USING_SMP */ #endif /* RT_USING_SMP */
/** /**
* This function will be invoked by BSP, when enter interrupt service routine * @brief This function will be invoked by BSP, when enter interrupt service routine
* *
* @note please don't invoke this routine in application * @note please don't invoke this routine in application
* *
...@@ -74,8 +83,9 @@ void rt_interrupt_enter(void) ...@@ -74,8 +83,9 @@ void rt_interrupt_enter(void)
} }
RTM_EXPORT(rt_interrupt_enter); RTM_EXPORT(rt_interrupt_enter);
/** /**
* This function will be invoked by BSP, when leave interrupt service routine * @brief This function will be invoked by BSP, when leave interrupt service routine
* *
* @note please don't invoke this routine in application * @note please don't invoke this routine in application
* *
...@@ -95,13 +105,14 @@ void rt_interrupt_leave(void) ...@@ -95,13 +105,14 @@ void rt_interrupt_leave(void)
} }
RTM_EXPORT(rt_interrupt_leave); RTM_EXPORT(rt_interrupt_leave);
/** /**
* This function will return the nest of interrupt. * @brief This function will return the nest of interrupt.
* *
* User application can invoke this function to get whether current * User application can invoke this function to get whether current
* context is interrupt context. * context is interrupt context.
* *
* @return the number of nested interrupts. * @return rt_uint8_t the number of nested interrupts.
*/ */
RT_WEAK rt_uint8_t rt_interrupt_get_nest(void) RT_WEAK rt_uint8_t rt_interrupt_get_nest(void)
{ {
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
* 2012-12-15 Bernard fix the next timeout issue in soft timer * 2012-12-15 Bernard fix the next timeout issue in soft timer
* 2014-07-12 Bernard does not lock scheduler when invoking soft-timer * 2014-07-12 Bernard does not lock scheduler when invoking soft-timer
* timeout function. * timeout function.
* 2021-08-15 supperthomas add the comment
*/ */
#include <rtthread.h> #include <rtthread.h>
...@@ -59,10 +60,10 @@ static void (*rt_timer_exit_hook)(struct rt_timer *timer); ...@@ -59,10 +60,10 @@ static void (*rt_timer_exit_hook)(struct rt_timer *timer);
/**@{*/ /**@{*/
/** /**
* This function will set a hook function, which will be invoked when enter * @brief This function will set a hook function on timer,
* timer timeout callback function. * which will be invoked when enter timer timeout callback function.
* *
* @param hook the hook function * @param hook the function point of timer
*/ */
void rt_timer_enter_sethook(void (*hook)(struct rt_timer *timer)) void rt_timer_enter_sethook(void (*hook)(struct rt_timer *timer))
{ {
...@@ -70,10 +71,10 @@ void rt_timer_enter_sethook(void (*hook)(struct rt_timer *timer)) ...@@ -70,10 +71,10 @@ void rt_timer_enter_sethook(void (*hook)(struct rt_timer *timer))
} }
/** /**
* This function will set a hook function, which will be invoked when exit * @brief This function will set a hook function, which will be
* timer timeout callback function. * invoked when exit * timer timeout callback function.
* *
* @param hook the hook function * @param hook the function point of timer
*/ */
void rt_timer_exit_sethook(void (*hook)(struct rt_timer *timer)) void rt_timer_exit_sethook(void (*hook)(struct rt_timer *timer))
{ {
...@@ -83,6 +84,20 @@ void rt_timer_exit_sethook(void (*hook)(struct rt_timer *timer)) ...@@ -83,6 +84,20 @@ void rt_timer_exit_sethook(void (*hook)(struct rt_timer *timer))
/**@}*/ /**@}*/
#endif /* RT_USING_HOOK */ #endif /* RT_USING_HOOK */
/**
* @brief [internal] the init funtion of timer
*
* the internal called function of rt_timer_init
*
* @see rt_timer_init
*
* @param timer the static timer object
* @param timeout the timeout function
* @param parameter the parameter of timeout function
* @param time the tick of timer
* @param flag the flag of timer
*/
static void _rt_timer_init(rt_timer_t timer, static void _rt_timer_init(rt_timer_t timer,
void (*timeout)(void *parameter), void (*timeout)(void *parameter),
void *parameter, void *parameter,
...@@ -110,7 +125,13 @@ static void _rt_timer_init(rt_timer_t timer, ...@@ -110,7 +125,13 @@ static void _rt_timer_init(rt_timer_t timer,
} }
} }
/* the fist timer always in the last row */ /**
* @brief find the next emtpy timer
*
* @param timer_list the timer of the next timeout
*
* @return rt_tick_t the point of timer
*/
static rt_tick_t rt_timer_list_next_timeout(rt_list_t timer_list[]) static rt_tick_t rt_timer_list_next_timeout(rt_list_t timer_list[])
{ {
struct rt_timer *timer; struct rt_timer *timer;
...@@ -133,6 +154,11 @@ static rt_tick_t rt_timer_list_next_timeout(rt_list_t timer_list[]) ...@@ -133,6 +154,11 @@ static rt_tick_t rt_timer_list_next_timeout(rt_list_t timer_list[])
return timeout_tick; return timeout_tick;
} }
/**
* @brief remove the timer
*
* @param timer the point of timer
*/
rt_inline void _rt_timer_remove(rt_timer_t timer) rt_inline void _rt_timer_remove(rt_timer_t timer)
{ {
int i; int i;
...@@ -144,6 +170,12 @@ rt_inline void _rt_timer_remove(rt_timer_t timer) ...@@ -144,6 +170,12 @@ rt_inline void _rt_timer_remove(rt_timer_t timer)
} }
#if RT_DEBUG_TIMER #if RT_DEBUG_TIMER
/**
* @brief the number of timer
*
* @param timer
* @return int the count
*/
static int rt_timer_count_height(struct rt_timer *timer) static int rt_timer_count_height(struct rt_timer *timer)
{ {
int i, cnt = 0; int i, cnt = 0;
...@@ -155,7 +187,11 @@ static int rt_timer_count_height(struct rt_timer *timer) ...@@ -155,7 +187,11 @@ static int rt_timer_count_height(struct rt_timer *timer)
} }
return cnt; return cnt;
} }
/**
* @brief dump the all timer information
*
* @param timer_heads the head of timer
*/
void rt_timer_dump(rt_list_t timer_heads[]) void rt_timer_dump(rt_list_t timer_heads[])
{ {
rt_list_t *list; rt_list_t *list;
...@@ -180,9 +216,8 @@ void rt_timer_dump(rt_list_t timer_heads[]) ...@@ -180,9 +216,8 @@ void rt_timer_dump(rt_list_t timer_heads[])
/**@{*/ /**@{*/
/** /**
* This function will initialize a timer, normally this function is used to * @brief This function will initialize a timer
* initialize a static timer object. * normally this function is used to initialize a static timer object.
*
* @param timer the static timer object * @param timer the static timer object
* @param name the name of timer * @param name the name of timer
* @param timeout the timeout function * @param timeout the timeout function
...@@ -208,11 +243,10 @@ void rt_timer_init(rt_timer_t timer, ...@@ -208,11 +243,10 @@ void rt_timer_init(rt_timer_t timer,
RTM_EXPORT(rt_timer_init); RTM_EXPORT(rt_timer_init);
/** /**
* This function will detach a timer from timer management. * @brief This function will detach a timer from timer management.
*
* @param timer the static timer object
* *
* @return the operation status, RT_EOK on OK; RT_ERROR on error * @param timer the timer to be detached
* @return rt_err_t RT_EOK
*/ */
rt_err_t rt_timer_detach(rt_timer_t timer) rt_err_t rt_timer_detach(rt_timer_t timer)
{ {
...@@ -241,7 +275,7 @@ RTM_EXPORT(rt_timer_detach); ...@@ -241,7 +275,7 @@ RTM_EXPORT(rt_timer_detach);
#ifdef RT_USING_HEAP #ifdef RT_USING_HEAP
/** /**
* This function will create a timer * @brief This function will create a timer
* *
* @param name the name of timer * @param name the name of timer
* @param timeout the timeout function * @param timeout the timeout function
...@@ -273,7 +307,7 @@ rt_timer_t rt_timer_create(const char *name, ...@@ -273,7 +307,7 @@ rt_timer_t rt_timer_create(const char *name,
RTM_EXPORT(rt_timer_create); RTM_EXPORT(rt_timer_create);
/** /**
* This function will delete a timer and release timer memory * @brief This function will delete a timer and release timer memory
* *
* @param timer the timer to be deleted * @param timer the timer to be deleted
* *
...@@ -306,7 +340,7 @@ RTM_EXPORT(rt_timer_delete); ...@@ -306,7 +340,7 @@ RTM_EXPORT(rt_timer_delete);
#endif /* RT_USING_HEAP */ #endif /* RT_USING_HEAP */
/** /**
* This function will start the timer * @brief This function will start the timer
* *
* @param timer the timer to be started * @param timer the timer to be started
* *
...@@ -429,7 +463,7 @@ rt_err_t rt_timer_start(rt_timer_t timer) ...@@ -429,7 +463,7 @@ rt_err_t rt_timer_start(rt_timer_t timer)
RTM_EXPORT(rt_timer_start); RTM_EXPORT(rt_timer_start);
/** /**
* This function will stop the timer * @brief This function will stop the timer
* *
* @param timer the timer to be stopped * @param timer the timer to be stopped
* *
...@@ -463,7 +497,7 @@ rt_err_t rt_timer_stop(rt_timer_t timer) ...@@ -463,7 +497,7 @@ rt_err_t rt_timer_stop(rt_timer_t timer)
RTM_EXPORT(rt_timer_stop); RTM_EXPORT(rt_timer_stop);
/** /**
* This function will get or set some options of the timer * @brief This function will get or set some options of the timer
* *
* @param timer the timer to be get or set * @param timer the timer to be get or set
* @param cmd the control command * @param cmd the control command
...@@ -521,8 +555,8 @@ rt_err_t rt_timer_control(rt_timer_t timer, int cmd, void *arg) ...@@ -521,8 +555,8 @@ rt_err_t rt_timer_control(rt_timer_t timer, int cmd, void *arg)
RTM_EXPORT(rt_timer_control); RTM_EXPORT(rt_timer_control);
/** /**
* This function will check timer list, if a timeout event happens, the * @brief This function will check timer list, if a timeout event happens,
* corresponding timeout function will be invoked. * the corresponding timeout function will be invoked.
* *
* @note this function shall be invoked in operating system timer interrupt. * @note this function shall be invoked in operating system timer interrupt.
*/ */
...@@ -596,7 +630,7 @@ void rt_timer_check(void) ...@@ -596,7 +630,7 @@ void rt_timer_check(void)
} }
/** /**
* This function will return the next timeout tick in the system. * @brief This function will return the next timeout tick in the system.
* *
* @return the next timeout tick in the system * @return the next timeout tick in the system
*/ */
...@@ -607,7 +641,7 @@ rt_tick_t rt_timer_next_timeout_tick(void) ...@@ -607,7 +641,7 @@ rt_tick_t rt_timer_next_timeout_tick(void)
#ifdef RT_USING_TIMER_SOFT #ifdef RT_USING_TIMER_SOFT
/** /**
* This function will check software-timer list, if a timeout event happens, the * @brief This function will check software-timer list, if a timeout event happens, the
* corresponding timeout function will be invoked. * corresponding timeout function will be invoked.
*/ */
void rt_soft_timer_check(void) void rt_soft_timer_check(void)
...@@ -684,7 +718,11 @@ void rt_soft_timer_check(void) ...@@ -684,7 +718,11 @@ void rt_soft_timer_check(void)
RT_DEBUG_LOG(RT_DEBUG_TIMER, ("software timer check leave\n")); RT_DEBUG_LOG(RT_DEBUG_TIMER, ("software timer check leave\n"));
} }
/* system timer thread entry */ /**
* @brief system timer thread entry
*
* @param parameter
*/
static void rt_thread_timer_entry(void *parameter) static void rt_thread_timer_entry(void *parameter)
{ {
rt_tick_t next_timeout; rt_tick_t next_timeout;
...@@ -723,7 +761,7 @@ static void rt_thread_timer_entry(void *parameter) ...@@ -723,7 +761,7 @@ static void rt_thread_timer_entry(void *parameter)
/** /**
* @ingroup SystemInit * @ingroup SystemInit
* *
* This function will initialize system timer * @brief This function will initialize system timer
*/ */
void rt_system_timer_init(void) void rt_system_timer_init(void)
{ {
...@@ -738,7 +776,7 @@ void rt_system_timer_init(void) ...@@ -738,7 +776,7 @@ void rt_system_timer_init(void)
/** /**
* @ingroup SystemInit * @ingroup SystemInit
* *
* This function will initialize system timer thread * @brief This function will initialize system timer thread
*/ */
void rt_system_timer_thread_init(void) void rt_system_timer_thread_init(void)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册