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