; -------------------------------------------------------------------------------- ; @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 ) )