Sysview add prefix kconfig to add an option to decouple sched_note calls
This commit is contained in:
parent
d2c52db68e
commit
f72f7ebee0
@ -114,6 +114,12 @@ config SEGGER_SYSVIEW_RAM_BASE
|
|||||||
---help---
|
---help---
|
||||||
The lowest RAM address used for IDs
|
The lowest RAM address used for IDs
|
||||||
|
|
||||||
|
config SEGGER_SYSVIEW_PREFIX
|
||||||
|
bool "Segger note function prefix"
|
||||||
|
default ""
|
||||||
|
---help---
|
||||||
|
prefix sched_note functions with "sysview_" to call them indirectly
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endmenu # Segger RTT drivers
|
endmenu # Segger RTT drivers
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include <nuttx/clock.h>
|
#include <nuttx/clock.h>
|
||||||
#include <nuttx/sched.h>
|
#include <nuttx/sched.h>
|
||||||
#include <nuttx/sched_note.h>
|
#include <nuttx/sched_note.h>
|
||||||
|
#include <nuttx/note/note_sysview.h>
|
||||||
|
|
||||||
#include <SEGGER_RTT.h>
|
#include <SEGGER_RTT.h>
|
||||||
#include <SEGGER_SYSVIEW.h>
|
#include <SEGGER_SYSVIEW.h>
|
||||||
@ -275,7 +276,7 @@ static inline int sysview_isenabled_syscall(int nr)
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void sched_note_start(FAR struct tcb_s *tcb)
|
void PREFIX(sched_note_start)(FAR struct tcb_s *tcb)
|
||||||
{
|
{
|
||||||
if (!sysview_isenabled())
|
if (!sysview_isenabled())
|
||||||
{
|
{
|
||||||
@ -286,7 +287,7 @@ void sched_note_start(FAR struct tcb_s *tcb)
|
|||||||
sysview_send_taskinfo(tcb);
|
sysview_send_taskinfo(tcb);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sched_note_stop(FAR struct tcb_s *tcb)
|
void PREFIX(sched_note_stop)(FAR struct tcb_s *tcb)
|
||||||
{
|
{
|
||||||
if (!sysview_isenabled())
|
if (!sysview_isenabled())
|
||||||
{
|
{
|
||||||
@ -297,7 +298,7 @@ void sched_note_stop(FAR struct tcb_s *tcb)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SCHED_INSTRUMENTATION_SWITCH
|
#ifdef CONFIG_SCHED_INSTRUMENTATION_SWITCH
|
||||||
void sched_note_suspend(FAR struct tcb_s *tcb)
|
void PREFIX(sched_note_suspend)(FAR struct tcb_s *tcb)
|
||||||
{
|
{
|
||||||
if (!sysview_isenabled())
|
if (!sysview_isenabled())
|
||||||
{
|
{
|
||||||
@ -310,7 +311,7 @@ void sched_note_suspend(FAR struct tcb_s *tcb)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sched_note_resume(FAR struct tcb_s *tcb)
|
void PREFIX(sched_note_resume)(FAR struct tcb_s *tcb)
|
||||||
{
|
{
|
||||||
if (!sysview_isenabled())
|
if (!sysview_isenabled())
|
||||||
{
|
{
|
||||||
@ -332,7 +333,7 @@ void sched_note_resume(FAR struct tcb_s *tcb)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER
|
#ifdef CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER
|
||||||
void sched_note_irqhandler(int irq, FAR void *handler, bool enter)
|
void PREFIX(sched_note_irqhandler)(int irq, FAR void *handler, bool enter)
|
||||||
{
|
{
|
||||||
if (!sysview_isenabled_irq(irq, enter))
|
if (!sysview_isenabled_irq(irq, enter))
|
||||||
{
|
{
|
||||||
@ -370,7 +371,7 @@ void sched_note_irqhandler(int irq, FAR void *handler, bool enter)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SCHED_INSTRUMENTATION_SYSCALL
|
#ifdef CONFIG_SCHED_INSTRUMENTATION_SYSCALL
|
||||||
void sched_note_syscall_enter(int nr, int argc, ...)
|
void PREFIX(sched_note_syscall_enter)(int nr, int argc, ...)
|
||||||
{
|
{
|
||||||
nr -= CONFIG_SYS_RESERVED;
|
nr -= CONFIG_SYS_RESERVED;
|
||||||
|
|
||||||
@ -405,7 +406,7 @@ void sched_note_syscall_enter(int nr, int argc, ...)
|
|||||||
SEGGER_SYSVIEW_MarkStart(nr);
|
SEGGER_SYSVIEW_MarkStart(nr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sched_note_syscall_leave(int nr, uintptr_t result)
|
void PREFIX(sched_note_syscall_leave)(int nr, uintptr_t result)
|
||||||
{
|
{
|
||||||
nr -= CONFIG_SYS_RESERVED;
|
nr -= CONFIG_SYS_RESERVED;
|
||||||
|
|
||||||
@ -513,8 +514,8 @@ int sysview_initialize(void)
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void sched_note_filter_mode(struct note_filter_mode_s *oldm,
|
void PREFIX(sched_note_filter_mode)(struct note_filter_mode_s *oldm,
|
||||||
struct note_filter_mode_s *newm)
|
struct note_filter_mode_s *newm)
|
||||||
{
|
{
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
|
|
||||||
@ -578,8 +579,8 @@ void sched_note_filter_mode(struct note_filter_mode_s *oldm,
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER
|
#ifdef CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER
|
||||||
void sched_note_filter_irq(struct note_filter_irq_s *oldf,
|
void PREFIX(sched_note_filter_irq)(struct note_filter_irq_s *oldf,
|
||||||
struct note_filter_irq_s *newf)
|
struct note_filter_irq_s *newf)
|
||||||
{
|
{
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
|
|
||||||
@ -624,8 +625,8 @@ void sched_note_filter_irq(struct note_filter_irq_s *oldf,
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_SCHED_INSTRUMENTATION_SYSCALL
|
#ifdef CONFIG_SCHED_INSTRUMENTATION_SYSCALL
|
||||||
void sched_note_filter_syscall(struct note_filter_syscall_s *oldf,
|
void PREFIX(sched_note_filter_syscall)(struct note_filter_syscall_s *oldf,
|
||||||
struct note_filter_syscall_s *newf)
|
struct note_filter_syscall_s *newf)
|
||||||
{
|
{
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
|
|
||||||
|
@ -26,6 +26,17 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
#include <nuttx/sched.h>
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Pre-processor Definitions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_SEGGER_SYSVIEW_PREFIX
|
||||||
|
# define PREFIX(fun) sysview ## _ ## fun
|
||||||
|
#else
|
||||||
|
# define PREFIX(fun) fun
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Function Prototypes
|
* Public Function Prototypes
|
||||||
@ -47,6 +58,43 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_SEGGER_SYSVIEW
|
#ifdef CONFIG_SEGGER_SYSVIEW
|
||||||
int sysview_initialize(void);
|
int sysview_initialize(void);
|
||||||
#endif
|
|
||||||
|
# ifdef CONFIG_SEGGER_SYSVIEW_PREFIX
|
||||||
|
|
||||||
|
void PREFIX(sched_note_start)(struct tcb_s *tcb);
|
||||||
|
|
||||||
|
void PREFIX(sched_note_stop)(struct tcb_s *tcb);
|
||||||
|
|
||||||
|
void PREFIX(sched_note_suspend)(struct tcb_s *tcb);
|
||||||
|
|
||||||
|
void PREFIX(sched_note_resume)(struct tcb_s *tcb);
|
||||||
|
|
||||||
|
# ifdef CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER
|
||||||
|
void PREFIX(sched_note_irqhandler)(int irq, void *handler, bool enter);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef CONFIG_SCHED_INSTRUMENTATION_SYSCALL
|
||||||
|
void PREFIX(sched_note_syscall_enter)(int nr);
|
||||||
|
void PREFIX(sched_note_syscall_leave)(int nr, uintptr_t result);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef CONFIG_SCHED_INSTRUMENTATION_FILTER
|
||||||
|
void PREFIX(sched_note_filter_mode)(struct note_filter_mode_s *oldm,
|
||||||
|
struct note_filter_mode_s *newm);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER
|
||||||
|
void PREFIX(sched_note_filter_irq)(struct note_filter_irq_s *oldf,
|
||||||
|
struct note_filter_irq_s *newf);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef CONFIG_SCHED_INSTRUMENTATION_SYSCALL
|
||||||
|
void PREFIX(sched_note_filter_syscall)(struct note_filter_syscall_s *oldf,
|
||||||
|
struct note_filter_syscall_s *newf);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif /* CONFIG_SEGGER_SYSVIEW_PREFIX */
|
||||||
|
|
||||||
|
#endif /* CONFIG_SEGGER_SYSVIEW */
|
||||||
|
|
||||||
#endif /* __INCLUDE_NUTTX_NOTE_NOTE_SYSVIEW_H */
|
#endif /* __INCLUDE_NUTTX_NOTE_NOTE_SYSVIEW_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user