525 lines
11 KiB
Plaintext
525 lines
11 KiB
Plaintext
; --------------------------------------------------------------------------------
|
|
; @Title: RTEMS specific menu
|
|
; @Description: -
|
|
; @Author: DIE
|
|
; @Copyright: (c) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
|
|
; --------------------------------------------------------------------------------
|
|
; $Id$
|
|
|
|
NAME "TASK.RTEMS"
|
|
|
|
IF !MENU.EXIST("TASK.RTEMS")
|
|
(
|
|
|
|
add
|
|
menu
|
|
(
|
|
POPUP "RTEMS"
|
|
(
|
|
menuitem "Display API &Information" "TASK.INFO"
|
|
default
|
|
menuitem "Display All &Threads" "TASK.Thread"
|
|
popup "Display Internal Objects"
|
|
(
|
|
menuitem "Display Threads" "TASK.INTernal.Thread"
|
|
;menuitem "Display Mutexes" "TASK.INTernal.Mutex"
|
|
)
|
|
popup "Display Classic Objects"
|
|
(
|
|
menuitem "Display Tasks" "TASK.CLassic.Task"
|
|
menuitem "Display Timers" "TASK.CLassic.TImer"
|
|
menuitem "Display Semaphores" "TASK.CLassic.Semaphore"
|
|
menuitem "Display Message Queues" "TASK.CLassic.MsgQueue"
|
|
menuitem "Display Partitions" "TASK.CLassic.Partition"
|
|
menuitem "Display Regions" "TASK.CLassic.Region"
|
|
menuitem "Display Ports" "TASK.CLassic.POrt"
|
|
menuitem "Display Periods" "TASK.CLassic.PEriod"
|
|
menuitem "Display Extensions" "TASK.CLassic.Extension"
|
|
)
|
|
popup "Display POSIX Objects"
|
|
(
|
|
menuitem "Display Threads" "TASK.Posix.Thread"
|
|
menuitem "Display Keys" "TASK.Posix.Keys"
|
|
;menuitem "Display Mutexes" "TASK.Posix.Mutex"
|
|
;menuitem "Display Condition Variables" "TASK.Posix.CondVar"
|
|
)
|
|
;popup "Display ITRON Objects"
|
|
;(
|
|
;)
|
|
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 &bYes
|
|
dialog.yesno "Overwrite unused stack space" "with stack fill pattern?"
|
|
entry &bYes
|
|
if !&bYes
|
|
enddo
|
|
)
|
|
TASK.STacK.Init
|
|
)
|
|
)
|
|
)
|
|
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
|
|
)
|
|
Break.Delete /Alpha
|
|
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
|
|
)
|
|
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
|
|
)
|
|
Break.Delete /Alpha /Beta /Charly
|
|
Break.SetFunc
|
|
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
|
|
)
|
|
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
|
|
)
|
|
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 "[:manual]OS Awareness Manual RTEMS" "HELP __RTOS_RTEMS_"
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.info"
|
|
(
|
|
default
|
|
menuitem "Display Open"
|
|
(
|
|
PRIVATE &sKey
|
|
&sKey=track.string()
|
|
TASK.INFO.&sKey
|
|
)
|
|
menuitem "Display Object Table"
|
|
(
|
|
PRIVATE &nAddress &sSymbol
|
|
&nAddress=track.address()
|
|
&sSymbol=sYmbol.NAME(&nAddress)
|
|
Var.View %o &sSymbol
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.info.i"
|
|
(
|
|
default
|
|
menuitem "Display Objects"
|
|
(
|
|
PRIVATE &cmd
|
|
&cmd=track.string()
|
|
print "&cmd"
|
|
&cmd
|
|
)
|
|
menuitem "Display Information struct"
|
|
(
|
|
PRIVATE &nAddress &sSymbol
|
|
&nAddress=track.address()
|
|
&sSymbol=sYmbol.NAME(&nAddress)
|
|
Var.View %o &sSymbol
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.t"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.Thread &nAddress
|
|
)
|
|
menuitem "Display Thread struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Thread_Control*)(&pAddress)
|
|
)
|
|
separator
|
|
menuitem "Display Stack Frame"
|
|
(
|
|
PRIVATE &magic
|
|
&magic=ADDRESS.OFFSET(track.address())
|
|
Var.Frame /Locals /Caller /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 &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.int.m"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.INTernal.Mutex &nAddress
|
|
)
|
|
menuitem "Display Mutex struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (API_Mutex_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Mutex Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.r.ti"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.CLassic.TImer &nAddress
|
|
)
|
|
menuitem "Display Timer struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Timer_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Timer Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.r.s"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.CLassic.Semaphore &nAddress
|
|
)
|
|
menuitem "Display Semaphore struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Semaphore_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Semaphore Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.r.mq"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.CLassic.MsgQueue &nAddress
|
|
)
|
|
menuitem "Display Message queue struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Message_queue_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Message queue Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.r.p"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.CLassic.Partition &nAddress
|
|
)
|
|
menuitem "Display Partition struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Partition_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Partition Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.r.r"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.CLassic.Region &nAddress
|
|
)
|
|
menuitem "Display Region struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Region_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Region Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.r.po"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.CLassic.POrt &address
|
|
)
|
|
menuitem "Display Port struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Dual_ported_memory_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Port Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.r.pe"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.CLassic.PEriod &nAddress
|
|
)
|
|
menuitem "Display Period struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Rate_monotonic_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Period Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.r.e"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.CLassic.Extension &nAddress
|
|
)
|
|
menuitem "Display Extension struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (Extension_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Extension Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.p.k"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &magic
|
|
&magic=address.offset(track.address())
|
|
TASK.Posix.Keys &magic
|
|
)
|
|
menuitem "Display Keys struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %Open (POSIX_Keys_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Keys Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /Dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.p.m"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.Posix.Mutex &nAddress
|
|
)
|
|
menuitem "Display Mutex struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (POSIX_Mutex_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Mutex Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.p.cv"
|
|
(
|
|
default
|
|
menuitem "Display Detailed"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=address.offset(track.address())
|
|
TASK.Posix.CondVar &nAddress
|
|
)
|
|
menuitem "Display Condition Variable struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Var.View %o (POSIX_Condition_variables_Control*)(&pAddress)
|
|
)
|
|
menuitem "Dump Condition Variable Entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=track.address()
|
|
Data.dump &pAddress /Long /dialog
|
|
)
|
|
)
|
|
|
|
)
|