Skip to content

[kernel] add the comment of irq.c and timer.c #4947

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 17 additions & 6 deletions src/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* 2006-05-03 Bernard add IRQ_DEBUG
* 2016-08-09 ArdaFu add interrupt enter and leave hook.
* 2018-11-22 Jesven rt_interrupt_get_nest function add disable irq
* 2021-08-15 Supperthomas fix the comment
*/

#include <rthw.h>
Expand All @@ -21,19 +22,26 @@ static void (*rt_interrupt_leave_hook)(void);

/**
* @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.
*
* @param hook The function point to be called
*/
void rt_interrupt_enter_sethook(void (*hook)(void))
{
rt_interrupt_enter_hook = 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.
*
* @param hook The function point to be called
*/
void rt_interrupt_leave_sethook(void (*hook)(void))
{
Expand All @@ -53,8 +61,9 @@ void rt_interrupt_leave_sethook(void (*hook)(void))
volatile rt_uint8_t rt_interrupt_nest = 0;
#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
*
Expand All @@ -74,8 +83,9 @@ void rt_interrupt_enter(void)
}
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
*
Expand All @@ -95,13 +105,14 @@ void rt_interrupt_leave(void)
}
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
* 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)
{
Expand Down
92 changes: 65 additions & 27 deletions src/timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
* 2012-12-15 Bernard fix the next timeout issue in soft timer
* 2014-07-12 Bernard does not lock scheduler when invoking soft-timer
* timeout function.
* 2021-08-15 supperthomas add the comment
*/

#include <rtthread.h>
Expand Down Expand Up @@ -59,21 +60,21 @@ static void (*rt_timer_exit_hook)(struct rt_timer *timer);
/**@{*/

/**
* This function will set a hook function, which will be invoked when enter
* timer timeout callback function.
* @brief This function will set a hook function on timer,
* 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))
{
rt_timer_enter_hook = hook;
}

/**
* This function will set a hook function, which will be invoked when exit
* timer timeout callback function.
* @brief This function will set a hook function, which will be
* 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))
{
Expand All @@ -83,6 +84,20 @@ void rt_timer_exit_sethook(void (*hook)(struct rt_timer *timer))
/**@}*/
#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,
void (*timeout)(void *parameter),
void *parameter,
Expand Down Expand Up @@ -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[])
{
struct rt_timer *timer;
Expand All @@ -133,6 +154,11 @@ static rt_tick_t rt_timer_list_next_timeout(rt_list_t timer_list[])
return timeout_tick;
}

/**
* @brief remove the timer
*
* @param timer the point of timer
*/
rt_inline void _rt_timer_remove(rt_timer_t timer)
{
int i;
Expand All @@ -144,6 +170,12 @@ rt_inline void _rt_timer_remove(rt_timer_t 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)
{
int i, cnt = 0;
Expand All @@ -155,7 +187,11 @@ static int rt_timer_count_height(struct rt_timer *timer)
}
return cnt;
}

/**
* @brief dump the all timer information
*
* @param timer_heads the head of timer
*/
void rt_timer_dump(rt_list_t timer_heads[])
{
rt_list_t *list;
Expand All @@ -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
* initialize a static timer object.
*
* @brief This function will initialize a timer
* normally this function is used to initialize a static timer object.
* @param timer the static timer object
* @param name the name of timer
* @param timeout the timeout function
Expand All @@ -208,11 +243,10 @@ void rt_timer_init(rt_timer_t timer,
RTM_EXPORT(rt_timer_init);

/**
* This function will detach a timer from timer management.
*
* @param timer the static timer object
* @brief This function will detach a timer from timer management.
*
* @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)
{
Expand Down Expand Up @@ -241,7 +275,7 @@ RTM_EXPORT(rt_timer_detach);

#ifdef RT_USING_HEAP
/**
* This function will create a timer
* @brief This function will create a timer
*
* @param name the name of timer
* @param timeout the timeout function
Expand Down Expand Up @@ -273,7 +307,7 @@ rt_timer_t rt_timer_create(const char *name,
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
*
Expand Down Expand Up @@ -306,7 +340,7 @@ RTM_EXPORT(rt_timer_delete);
#endif /* RT_USING_HEAP */

/**
* This function will start the timer
* @brief This function will start the timer
*
* @param timer the timer to be started
*
Expand Down Expand Up @@ -429,7 +463,7 @@ rt_err_t rt_timer_start(rt_timer_t timer)
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
*
Expand Down Expand Up @@ -463,7 +497,7 @@ rt_err_t rt_timer_stop(rt_timer_t timer)
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 cmd the control command
Expand Down Expand Up @@ -521,8 +555,8 @@ rt_err_t rt_timer_control(rt_timer_t timer, int cmd, void *arg)
RTM_EXPORT(rt_timer_control);

/**
* This function will check timer list, if a timeout event happens, the
* corresponding timeout function will be invoked.
* @brief This function will check timer list, if a timeout event happens,
* the corresponding timeout function will be invoked.
*
* @note this function shall be invoked in operating system timer interrupt.
*/
Expand Down Expand Up @@ -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
*/
Expand All @@ -607,7 +641,7 @@ rt_tick_t rt_timer_next_timeout_tick(void)

#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.
*/
void rt_soft_timer_check(void)
Expand Down Expand Up @@ -684,7 +718,11 @@ void rt_soft_timer_check(void)
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)
{
rt_tick_t next_timeout;
Expand Down Expand Up @@ -723,7 +761,7 @@ static void rt_thread_timer_entry(void *parameter)
/**
* @ingroup SystemInit
*
* This function will initialize system timer
* @brief This function will initialize system timer
*/
void rt_system_timer_init(void)
{
Expand All @@ -738,7 +776,7 @@ void rt_system_timer_init(void)
/**
* @ingroup SystemInit
*
* This function will initialize system timer thread
* @brief This function will initialize system timer thread
*/
void rt_system_timer_thread_init(void)
{
Expand Down