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