Files
Gen4_R-Car_Trace32/2_Trunk/demo/arm/kernel/emcos/emcos.men
2025-10-14 09:52:32 +09:00

269 lines
6.4 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: eMCOS specific menu
; @Description: -
; @Keywords: emcos menu awareness
; @Author: DIE
; @Copyright: (c) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: emcos.m 7861 2022-07-29 13:45:42Z amerkle $
NAME "TASK.EMCOS"
IF !MENU.EXIST("TASK.EMCOS")
(
add
menu
(
popup "&eMCOS"
(
default
menuitem "Display &Threads" "TASK.Thread"
menuitem "Display &Processes" "TASK.Process"
separator
popup "&Stack Coverage"
(
menuitem "&List Stacks" "TASK.STacK.view"
menuitem "Add Task" "TASK.STacK.ADD"
menuitem "Remove Task" "TASK.STacK.ReMove"
menuitem "Reset Coverage"
(
if icd()||simulator()
(
PRIVATE &yes
dialog.yesno "Overwrite unused stack space" "with stack fill pattern?"
entry &yes
if !&yes
enddo
)
TASK.STacK.Init
)
)
)
popup "Trace"
(
popup "[:alist]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 trace.flow()
(
Break.Delete /TraceEnable
Break.Set task.config(magic) /Write /TraceEnable
)
Trace.Init
)
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 trace.flow()
(
Break.Delete /TraceData
Break.Set task.config(magic) /Write /TraceData
)
Trace.Init
)
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
)
)
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"
(
PRIVATE &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 "[:manual]eMCOS Awareness Manual" "HELP __RTOS_EMCOS_"
//)
)
menu "task.t"
(
default
menuitem "Display detailed"
(
PRIVATE &magic
&magic=address.offset(track.address())
TASK.Thread &magic
)
menuitem "Display thread struct"
(
PRIVATE &address
&address=track.address()
Var.View %Open %String (tcb_t*)(&address)
)
separator
menuitem "Display Stack Frame"
(
PRIVATE &magic
&magic=address.offset(track.address())
Frame /Locals /Caller /TASK &magic
)
menuitem "Display Registers"
(
PRIVATE &magic
&magic=address.offset(track.address())
Register /Task &magic
)
menuitem "Switch Context"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
Register.TASK &nAddress
)
separator
menuitem "Add to Stack Cov"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.STacK.ADD &nAddress
)
menuitem "Rm from Stack Cov"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.STacK.RM &nAddress
)
separator
menuitem "Dump thread entry"
(
PRIVATE &address
&address=track.address()
Data.dump &address /Long /dialog
)
)
menu "task.p"
(
default
menuitem "Display detailed"
(
PRIVATE &magic
&magic=address.offset(track.address())
TASK.Process &magic
)
menuitem "Display process struct"
(
PRIVATE &address
&address=track.address()
Var.View %Open %String (posix_proc_t*)(&address)
)
menuitem "Dump process entry"
(
PRIVATE &address
&address=track.address()
Data.dump &address /Long /dialog
)
)
)