282 lines
6.6 KiB
Plaintext
282 lines
6.6 KiB
Plaintext
; --------------------------------------------------------------------------------
|
|
; @Title: µC/OS-III specific menu
|
|
; @Description: -
|
|
; @Author: DIE
|
|
; @Copyright: (c) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only
|
|
; --------------------------------------------------------------------------------
|
|
; $Id: ucos3.m 7861 2022-07-29 13:45:42Z amerkle $
|
|
|
|
NAME "TASK.UCOSIII"
|
|
|
|
IF !MENU.EXIST("TASK.UCOSIII")
|
|
(
|
|
|
|
add
|
|
menu
|
|
(
|
|
popup "uCOS-III"
|
|
(
|
|
if y.exist(T32OUT)
|
|
(
|
|
menuitem "&RTOS Terminal" "TERM T32OUT 0"
|
|
separator
|
|
)
|
|
default
|
|
menuitem "Display &Tasks" "TASK.Task"
|
|
menuitem "Display &Semaphores" "TASK.SEMaphore"
|
|
menuitem "Display &Mutexes" "TASK.Mutex"
|
|
menuitem "Display &Event Flags" "TASK.eventFLAG"
|
|
menuitem "Display &Message Queues" "TASK.Queue"
|
|
menuitem "Display &Memory Partitions" "TASK.MEMory"
|
|
menuitem "Display &Timers" "TASK.TiMeR"
|
|
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 "&Help"
|
|
(
|
|
menuitem "[:manual]µC/OS RTOS Debugger Manual" "HELP __RTOS_UCOS_"
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.task"
|
|
(
|
|
default
|
|
menuitem "Display Detailed" "TASK.Task track.address()"
|
|
menuitem "Display TCB"
|
|
(
|
|
PRIVATE &address &struct
|
|
&address=address.offset(track.address())
|
|
&struct=task.struct(tcb)
|
|
Var.View %Open %String (&struct)*&address
|
|
)
|
|
menuitem "List Task Body"
|
|
(
|
|
PRIVATE &address &struct
|
|
&address=address.offset(track.address())
|
|
&struct=task.struct(tcb)
|
|
Data.List v.value(((&struct)*&address).TaskEntryAddr)
|
|
)
|
|
separator
|
|
menuitem "Display Stack Frame"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
Var.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.sem"
|
|
(
|
|
default
|
|
menuitem "Display Detailed" "TASK.SEMaphore track.address()"
|
|
menuitem "Display Semaphore struct"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
v.v %m (struct os_sem*)&address
|
|
)
|
|
menuitem "Dump Semaphore"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
Data.dump &address
|
|
)
|
|
)
|
|
|
|
menu "task.mutex"
|
|
(
|
|
default
|
|
menuitem "Display Detailed" "TASK.MUTEX track.address()"
|
|
menuitem "Display Mutex struct"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
v.v %m (struct os_mutex*)&address
|
|
)
|
|
menuitem "Dump Mutex"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
Data.dump &address
|
|
)
|
|
)
|
|
|
|
menu "task.flag"
|
|
(
|
|
default
|
|
menuitem "Display Detailed" "TASK.eventFLAG track.address()"
|
|
menuitem "Display Event Flag struct"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
v.v %m (struct os_flag_grp*)&address
|
|
)
|
|
menuitem "Dump Event Flag"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
Data.dump &address
|
|
)
|
|
)
|
|
|
|
menu "task.q"
|
|
(
|
|
default
|
|
menuitem "Display Detailed" "TASK.Queue track.address()"
|
|
menuitem "Display Queue struct"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
v.v %m (struct os_q*)&address
|
|
)
|
|
menuitem "Dump Queue"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
Data.dump &address
|
|
)
|
|
)
|
|
|
|
menu "task.mem"
|
|
(
|
|
default
|
|
menuitem "Display Detailed" "TASK.MEMory track.address()"
|
|
menuitem "Display Memory Partition struct"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
v.v %m (struct os_mem*)&address
|
|
)
|
|
menuitem "Dump Memory Partition"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
Data.dump &address
|
|
)
|
|
)
|
|
|
|
menu "task.tmr"
|
|
(
|
|
default
|
|
menuitem "Display Detailed" "TASK.TiMeR track.address()"
|
|
menuitem "Display Timer struct"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
v.v %m (struct os_tmr*)&address
|
|
)
|
|
menuitem "Dump Timer"
|
|
(
|
|
PRIVATE &address
|
|
&address=address.offset(track.address())
|
|
Data.dump &address
|
|
)
|
|
)
|
|
|
|
)
|