185 lines
4.9 KiB
Plaintext
185 lines
4.9 KiB
Plaintext
; --------------------------------------------------------------------------------
|
|
; @Title: NuttX specific menu
|
|
; @Description: -
|
|
; @Author: DIE
|
|
; @Copyright: (c) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
|
|
; --------------------------------------------------------------------------------
|
|
; $Id: nuttx.m 9021 2023-05-15 13:22:45Z amerkle $
|
|
|
|
NAME "TASK.NUTTX"
|
|
|
|
IF !MENU.EXIST("TASK.NUTTX")
|
|
(
|
|
|
|
ADD
|
|
MENU
|
|
(
|
|
POPUP "NuttX"
|
|
(
|
|
default
|
|
menuitem "Display &Tasks" "TASK.Task"
|
|
menuitem "Display &Builtin Applications" "TASK.BuiLTinApp"
|
|
IF PRACTICE.FUNCtion.AVAILable(SYStem.Option.MACHINESPACES)
|
|
(
|
|
IF !SYStem.Option.MACHINESPACES()
|
|
(
|
|
MENUITEM "[ X X X X X,XXXXXXXXXXXX, XxxxxxxxxXs,XXxxxxxxxxXs, XxxxxxxxxXX,XXxxxxxxxxXs, XxxxxxxxxXX,XXxxxxSSSSSSSS, XxxxxSBBwwwwwS,XXxxxxSBBwwwXwBS, XXXXXSBBwwwwwBB, XsXsXSBBBBBBBBB, SBBWWWWWBB, SBBWWWWWBB, SBBWRRRWBB, BBWWWWWBB]Generate RAM Dump"
|
|
(
|
|
PRIVATE &sPath
|
|
&sPath=OS.FILE.JOINPATH(TASK.GETDIR(),"ramdump.cmm")
|
|
IF OS.FILE("&sPath")
|
|
(
|
|
DO "&sPath" /DIALOG
|
|
ENDDO
|
|
)
|
|
PRINT %ERROR "File ""ramdump.cmm"" not found. Please contact support@lauterbach.com ."
|
|
)
|
|
)
|
|
)
|
|
ELSE
|
|
(
|
|
MENUITEM "[ X X X X X,XXXXXXXXXXXX, XxxxxxxxxXs,XXxxxxxxxxXs, XxxxxxxxxXX,XXxxxxxxxxXs, XxxxxxxxxXX,XXxxxxSSSSSSSS, XxxxxSBBwwwwwS,XXxxxxSBBwwwXwBS, XXXXXSBBwwwwwBB, XsXsXSBBBBBBBBB, SBBWWWWWBB, SBBWWWWWBB, SBBWRRRWBB, BBWWWWWBB]Generate RAM Dump"
|
|
(
|
|
PRIVATE &sPath
|
|
&sPath=OS.FILE.JOINPATH(TASK.GETDIR(),"ramdump.cmm")
|
|
IF OS.FILE("&sPath")
|
|
(
|
|
DO "&sPath" /DIALOG
|
|
ENDDO
|
|
)
|
|
PRINT %ERROR "File ""ramdump.cmm"" not found. Please contact support@lauterbach.com ."
|
|
)
|
|
)
|
|
separator
|
|
popup "&Stack Coverage"
|
|
(
|
|
menuitem "&List Stacks" "TASK.STacK.view"
|
|
menuitem "Add Task" "TASK.STacK.ADD"
|
|
menuitem "Remove Task" "TASK.STacK.RM"
|
|
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 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 "&Help"
|
|
(
|
|
MENUITEM "[:manual]OS Awareness Manual NuttX" "HELP __RTOS_NUTTX_"
|
|
)
|
|
)
|
|
|
|
menu "task.t"
|
|
(
|
|
default
|
|
menuitem "Display task struct"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=TRACK.ADDRESS()
|
|
Var.View %Open %String (struct tcb_s *)(&pAddress)
|
|
)
|
|
separator
|
|
menuitem "Display Stack Frame"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
|
|
Var.Frame /Locals /Caller /TASK &nAddress
|
|
)
|
|
menuitem "Display Registers"
|
|
(
|
|
PRIVATE &nAddress
|
|
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
|
|
Register /TASK &nAddress
|
|
)
|
|
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 task entry"
|
|
(
|
|
PRIVATE &pAddress
|
|
&pAddress=TRACK.ADDRESS()
|
|
Data.dump &pAddress /Long /DIALOG
|
|
)
|
|
)
|
|
)
|