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

302 lines
6.8 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: Menu File for TRACE32 uC/OS-II Awareness
; @Description: -
; @Keywords: ucos menu awareness
; @Author: DIE
; @Copyright: (C) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: ucos.m 8967 2023-04-25 07:27:01Z rdienstbeck $
NAME "TASK.UCOSII"
IF !MENU.EXIST("TASK.UCOSII")
(
add
menu
(
popup "uCOS-II"
(
if y.exist(T32OUT)
(
menuitem "&RTOS Terminal" "TERM T32OUT 0"
separator
)
default
menuitem "Display &Tasks" "TASK.Task"
menuitem "Display &Events" "TASK.Event"
menuitem "Display &Flags" "TASK.Flag"
menuitem "Display &Timers" "TASK.TImer"
menuitem "Display &Memory Partitions" "TASK.Memory"
if task.par.avail()==1
(
menuitem "Display &Space Partitions" "TASK.PARTition"
)
if task.proc.avail()==1
(
menuitem "Display &Processes" "TASK.PROCess"
)
separator
popup "&Stack Coverage"
(
menuitem "&List Stacks"
(
if !ice()
TASK.STacK.PATtern 0
TASK.STacK
)
menuitem "Add Task" "TASK.STacK.ADD"
menuitem "Remove Task" "TASK.STacK.ReMove"
menuitem "Reset Coverage"
(
PRIVATE &yes
DIALOG.YESNO "Overwrite unused stack space" "with stack fill pattern?"
ENTRY &yes
IF !&yes
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
)
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 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
)
)
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 "µC/OS RTOS Debugger Manual" "HELP __RTOS_UCOS_"
)
)
menu "task.task"
(
default
menuitem "Display Detailed"
(
PRIVATE &magic
magic=address.offset(track.address())
TASK.Task &magic
)
menuitem "Display TCB"
(
PRIVATE &address &machid &table &struct
&address=track.address()
&machavail=PRACTICE.FUNCtion.AVAILable(SYStem.Option.MACHINESPACES)
IF &machavail
&machavail=SYStem.Option.MACHINESPACES()
IF &machavail
(
&machid=address.machineid(&address)
&table=task.table(TCB)
&struct="typeof(*"+symbol.name(&machid:::&table)+")"
)
else
(
&struct=task.struct(tcb)+"*"
)
Var.View %Open %String (&struct)(&address)
)
separator
menuitem "Display Stack Frame"
(
PRIVATE &address
&address=address.offset(track.address())
Frame /Locals /Caller /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 TCB"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address
)
)
menu "task.event"
(
default
menuitem "Display Detailed"
(
PRIVATE &magic
&magic=address.offset(track.address)
TASK.Event &magic
)
menuitem "Display ECB"
(
PRIVATE &address &machavail &machid &table &struct
&address=track.address()
&machavail=PRACTICE.FUNCtion.AVAILable(SYStem.Option.MACHINESPACES)
IF &machavail
&machavail=SYStem.Option.MACHINESPACES()
IF &machavail
(
&machid=address.machineid(&address)
&table=task.table(Event)
&struct="typeof(*"+symbol.name(&machid:::&table)+")"
)
else
(
&struct="struct os_event*"
)
Var.View %Open %String (&struct)(&address)
)
menuitem "Dump ECB"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address
)
)
menu "task.e.q"
(
menuitem "Display QCB"
(
PRIVATE &address
&address=address.offset(track.address())
v.v %m (struct os_q*)&address
)
default
menuitem "Dump QCB"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address
)
)
menu "task.flag"
(
default
menuitem "Display Detailed" "TASK.Flag track.address()"
menuitem "Display FCB"
(
PRIVATE &address
&address=address.offset(track.address())
Var.View %m %s (struct os_flag_grp*)&address
)
menuitem "Dump FCB"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address
)
)
menu "task.timer"
(
default
menuitem "Display Detailed" "TASK.TImer track.address()"
menuitem "Display Tmr CB"
(
PRIVATE &address
&address=address.offset(track.address())
Var.View %m %s (struct os_tmr*)&address
)
menuitem "Dump Tmr CB"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address
)
)
menu "task.par"
(
default
menuitem "Display Detailed" "TASK.PARtition track.address()"
menuitem "Display partition struct"
(
PRIVATE &address
&address=address.offset(track.address())
Var.View %m %s (PAR_PARAM_T*)&address
)
menuitem "Dump partition struct"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address
)
)
)