Files
2025-10-14 09:52:32 +09:00

281 lines
6.7 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: RTOS specific menu
; @Description: -
; @Author: DIE
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: famos.men 18850 2022-01-26 18:41:29Z bschroefel $
add
menu
(
popup "&FAMOS"
(
menuitem "Display &Kernel" "TASK.Kernel"
default
menuitem "Display &Threads" "TASK.Thread"
menuitem "Display &Semaphores" "TASK.Semaphore"
menuitem "Display &Mailboxes" "TASK.MailBox"
menuitem "Display &Mailqueues" "TASK.MailQueue"
menuitem "Display T&imers" "TASK.TIMer"
separator
popup "&Stack Coverage"
(
menuitem "&List Stacks" "TASK.STacK.view"
menuitem "Add Task" "TASK.STacK.ADD"
menuitem "Remove Task" "TASK.STacK.RM"
enable ice()||fire()
menuitem "&Reset Coverage" "TASK.STacK.RESet"
)
)
popup "Trace"
(
popup "List"
(
separator
menuitem "&Task Switches" "Trace.List List.TASK"
menuitem "&Default and Tasks" "Trace.List List.TASK DEFault"
)
)
popup "Perf"
(
separator
popup "&Task Runtime"
(
menuitem "&Prepare"
(
if t.method.analyzer()
(
Analyzer.AutoInit on
)
if (ice()||fire())&&!a.mode.flow()
(
Analyzer.ReProgram
(
Sample.Enable if AlphaBreak&&Write
)
Break.Delete /Alpha
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
)
if a.mode.flow()
(
Break.Delete /TraceEnable
Break.Set task.config(magic) /TraceEnable
)
)
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASK"
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASK"
menuitem "[:achart]Tracking with Trace &List"
(
Trace.List List.TASK DEFault /Track
Trace.CHART.TASK /Track
)
)
popup "Task &Function Runtime"
(
menuitem "&Prepare"
(
if t.method.analyzer()
(
Analyzer.AutoInit on
Analyzer.STATistic.PreFetch on
)
if (ice()||fire())&&!a.mode.flow()
(
if a.config.hac()
(
Analyzer.ReProgram
(
Sample.Enable if AlphaBreak
Sample.Enable if BetaBreak
Mark.A if AlphaBreak
Mark.B if BetaBreak
)
)
else
(
Analyzer.ReProgram
(
Sample.Enable if AlphaBreak||BetaBreak
Mark.A if AlphaBreak
Mark.B if BetaBreak
)
)
Break.Delete /Alpha /Beta /Charly
Break.SetFunc
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
)
if a.mode.flow()
(
Break.Delete /TraceData
Break.Set task.config(magic) /TraceData
)
)
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASKFUNC"
menuitem "[:perf]Show as &Tree" "Trace.STATistic.TASKTREE"
menuitem "[:perf]Show &Detailed Tree" "Trace.STATistic.TASKTREE ALL"
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASKFUNC"
menuitem "[:alist]Show N&esting" "Trace.List List.TASK FUNC TI.FUNC"
)
popup "Task &Status"
(
menuitem "&Prepare"
(
if t.method.analyzer()
(
Analyzer.AutoInit on
)
if (ice()||fire())&&!a.mode.flow()
(
Analyzer.ReProgram
(
Sample.Enable if AlphaBreak&&Write
)
Break.Delete /Alpha
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
TASK.TASKState
)
)
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASKSTATE"
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASKSTATE"
menuitem "[:achart]Tracking with Trace &List"
(
Trace.List List.TASK DEFault /Track
Trace.CHART.TASKSTATE /Track
)
)
)
popup "&Help"
(
menuitem "FAMOS Awareness Manual" "HELP __RTOS_FAMOS_"
)
)
menu "task.t"
(
default
menuitem "Display detailed"
(
&address=address.offset(track.address())
TASK.Thread &address
)
menuitem "Display thread struct"
(
&address=address.offset(track.address())
Var.View %o %s (FAMOS_ThreadInfoT*)&address
)
separator
menuitem "Display Stack Frame"
(
&address=address.offset(track.address())
Var.Frame /Locals /Caller /Task &address
)
menuitem "Display Registers"
(
&address=address.offset(track.address())
Register /Task &address
)
menuitem "Switch Context"
(
&address=address.offset(track.address())
Register.TASK &address
)
separator
menuitem "Add to Stack Cov" "TASK.STK.ADD address.offset(track.address())"
menuitem "Rm from Stack Cov" "TASK.STK.RM address.offset(track.address())"
separator
menuitem "Dump thread entry"
(
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)
menu "task.s"
(
default
menuitem "Display detailed"
(
&address=address.offset(track.address())
TASK.Semaphore &address
)
menuitem "Display semaphore struct"
(
&address=address.offset(track.address())
Var.View %m %s (FAMOS_SemaphoreEventT*)&address
)
separator
menuitem "Dump semaphore entry"
(
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)
menu "task.mb"
(
default
menuitem "Display detailed"
(
&address=address.offset(track.address())
TASK.MailBox &address
)
menuitem "Display mailbox struct"
(
&address=address.offset(track.address())
Var.View %m %s (FAMOS_MailboxEventT*)&address
)
separator
menuitem "Dump mailbox entry"
(
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)
menu "task.mq"
(
default
menuitem "Display detailed"
(
&address=address.offset(track.address())
TASK.MailQueue &address
)
menuitem "Display mailqueue struct"
(
&address=address.offset(track.address())
Var.View %m %s (FAMOS_MailqueueEventT*)&address
)
separator
menuitem "Dump mailqueue entry"
(
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)
menu "task.tim"
(
default
menuitem "Display detailed"
(
&address=address.offset(track.address())
TASK.TIMer &address
)
menuitem "Display timer struct"
(
&address=address.offset(track.address())
Var.View %m %s (FAMOS_TimerEventT*)&address
)
separator
menuitem "Dump timer entry"
(
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)