260 lines
7.1 KiB
Plaintext
260 lines
7.1 KiB
Plaintext
; --------------------------------------------------------------------------------
|
|
; @Title: AMX specific menu
|
|
; @Description: -
|
|
; @Author: DIE
|
|
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
|
|
; --------------------------------------------------------------------------------
|
|
; $Id: amx.men 18850 2022-01-26 18:41:29Z bschroefel $
|
|
|
|
add
|
|
menu
|
|
(
|
|
popup "&AMX"
|
|
(
|
|
menuitem "Display S&ystem" "TASK.DSYStem"
|
|
default
|
|
menuitem "Display &Tasks" "TASK.DTask"
|
|
menuitem "Display T&imers" "TASK.DTIMer"
|
|
menuitem "Display &Mailboxes" "TASK.DMailBoX"
|
|
menuitem "Display &Exchanges" "TASK.DEXChange"
|
|
menuitem "Display &Semaphores" "TASK.DSEMaphor"
|
|
menuitem "Display E&vents" "TASK.DEVent"
|
|
menuitem "Display &Buffer Pools" "TASK.DBPool"
|
|
menuitem "Display Memory &Pools" "TASK.DMPool"
|
|
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
|
|
Break.Set task.config(kdata) /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
|
|
Break.Set task.config(kdata) /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 &State"
|
|
(
|
|
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 "CPU Load"
|
|
(
|
|
menuitem "Set Idle Task..."
|
|
(
|
|
dialog
|
|
(
|
|
header "Set Idle Task"
|
|
pos 0. 0. 24. 3.
|
|
box "Name of idle task"
|
|
pos 1. 1. 22. 1.
|
|
idletask: defedit "BKGR" ""
|
|
pos 3. 3. 7. 1.
|
|
defbutton "OK"
|
|
(
|
|
LOCAL &idletask
|
|
&idletask=dialog.string(idletask)
|
|
GROUP.CreateTASK "idle" "&idletask"
|
|
GROUP.COLOR "idle" NONE
|
|
GROUP.COLOR "other" RED
|
|
dialog.end
|
|
)
|
|
pos 14. 3. 7. 1.
|
|
button "Cancel" "dialog.end"
|
|
)
|
|
)
|
|
menuitem "[:perf]Show Numerical"
|
|
(
|
|
IF !GROUP.EXIST(idle)
|
|
(
|
|
DIALOG.OK "Please set idle task first!"
|
|
ENDDO
|
|
)
|
|
GROUP.MERGE "idle"
|
|
GROUP.MERGE "other"
|
|
Trace.STATistic.TASK
|
|
)
|
|
menuitem "[:aprochart]Show Profiling"
|
|
(
|
|
IF !GROUP.EXIST(idle)
|
|
(
|
|
DIALOG.OK "Please set idle task first!"
|
|
ENDDO
|
|
)
|
|
GROUP.MERGE "idle"
|
|
GROUP.MERGE "other"
|
|
Trace.PROfileChart.TASK
|
|
)
|
|
menuitem "Disable CPU Load View"
|
|
(
|
|
GROUP.SEParate "idle"
|
|
GROUP.SEParate "other"
|
|
)
|
|
menuitem "Enable CPU Load View"
|
|
(
|
|
IF !GROUP.EXIST(idle)
|
|
(
|
|
DIALOG.OK "Please set idle task first!"
|
|
ENDDO
|
|
)
|
|
GROUP.MERGE "idle"
|
|
GROUP.MERGE "other"
|
|
)
|
|
)
|
|
)
|
|
popup "&Help"
|
|
(
|
|
menuitem "AMX Awareness Manual" "HELP __RTOS_AMX_"
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.dt"
|
|
(
|
|
default
|
|
menuitem "Display detailed"
|
|
(
|
|
&address=address.offset(track.address())
|
|
TASK.DTask &address
|
|
)
|
|
menuitem "Display task struct"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Var.View %m %s (struct cj_xtcb*)&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" "Register.TASK address.offset(track.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 task entry"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Data.dump &address /l /dialog
|
|
)
|
|
)
|