sched/sched/sched_processtimer.c: Add a configurable call out to a user-provided function, 'timer hook', on each timer interrupt.
This commit is contained in:
parent
d70cb97950
commit
6408857f6d
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* include/nuttx/board.h
|
* include/nuttx/board.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015-2018 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2015-2019 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -257,6 +257,28 @@ int board_reset(int status);
|
|||||||
int board_uniqueid(FAR uint8_t *uniqueid);
|
int board_uniqueid(FAR uint8_t *uniqueid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: board_timerhook
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* If the system is not configured for Tickless operation, then a system
|
||||||
|
* timer interrupt will be used. If CONFIG_SYSTEMTICK_HOOK is selected
|
||||||
|
* then the OS will call out to this user-provided function on every
|
||||||
|
* timer interrupt. This permits custom actions that may be performed on
|
||||||
|
* each by boad-specific, OS internal logic.
|
||||||
|
*
|
||||||
|
* Input Parameters:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* None.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_SYSTEMTICK_HOOK
|
||||||
|
void board_timerhook(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: board_<usbdev>_initialize
|
* Name: board_<usbdev>_initialize
|
||||||
*
|
*
|
||||||
@ -640,7 +662,7 @@ void board_crashdump(uintptr_t currentsp, FAR void *tcb,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: board_initrngseed
|
* Name: board_init_rngseed
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* If CONFIG_BOARD_INITRNGSEED is selected then board_init_rngseed is
|
* If CONFIG_BOARD_INITRNGSEED is selected then board_init_rngseed is
|
||||||
|
@ -137,6 +137,18 @@ config SYSTEMTICK_EXTCLK
|
|||||||
to move the scheduling off the processor clock to allow entering low
|
to move the scheduling off the processor clock to allow entering low
|
||||||
power states that would disable that clock.
|
power states that would disable that clock.
|
||||||
|
|
||||||
|
config SYSTEMTICK_HOOK
|
||||||
|
bool "System timer hook"
|
||||||
|
default n
|
||||||
|
---help---
|
||||||
|
Enable a call to a user-provided, board-level function on each timer
|
||||||
|
tick. This permits custom actions that may be performed on each
|
||||||
|
timer tick. The form of the user-provided function is:
|
||||||
|
|
||||||
|
void board_timerhook(void);
|
||||||
|
|
||||||
|
(prototyped in include/nuttx/board.h).
|
||||||
|
|
||||||
endif # !SCHED_TICKLESS
|
endif # !SCHED_TICKLESS
|
||||||
|
|
||||||
config SYSTEM_TIME64
|
config SYSTEM_TIME64
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* sched/sched/sched_processtimer.c
|
* sched/sched/sched_processtimer.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007, 2009, 2014-2018 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2007, 2009, 2014-2019 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -222,4 +222,12 @@ void sched_process_timer(void)
|
|||||||
/* Process watchdogs */
|
/* Process watchdogs */
|
||||||
|
|
||||||
wd_timer();
|
wd_timer();
|
||||||
|
|
||||||
|
#ifdef CONFIG_SYSTEMTICK_HOOK
|
||||||
|
/* Call out to a user-provided function in order to perform board-specific,
|
||||||
|
* custom timer operations.
|
||||||
|
*/
|
||||||
|
|
||||||
|
board_timerhook();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user