; ---------------------------------------------------------------------------
; rte_monitor.cmm
; ---------------------------------------------------------------------------
PMACRO.EXPLICIT

; show path and name of this script (present practice file)
ECHO ""
ECHO %COLOR.BLUE "### " OS.PPF() " ###"

IF sYmbol.EXIST(RteMonitorActive)
(
  ; ---------------------------------------------------------------------------
  ; prepare ITM trace unit
//ITM.RESet
//ITM.InterruptTrace OFF
//ITM.ProfilingTrace OFF
  ITM.DataTrace CorrelatedData
//ITM.PCSampler OFF
  ITM.CyclePrescaler 1/1
  ITM.CycleAccurate ON
  ITM.CLOCK 80.MHz
  ITM.TImeMode CycleAccurate+External
  ITM.ON

  ; ---------------------------------------------------------------------------
  ; prepare trace-port
  ; - this is done uC specific in S32K1xx.cmm

  ; ---------------------------------------------------------------------------
  ; prepare more trace settings
//TRACE.METHOD CAnalyzer
//TRACE.Init
//TRACE.AutoArm ON
; TRACE.AutoInit ON
; TRACE.CLOCK 80.MHz
//TPIU.SWVPrescaler 2.
//TRACE.AutoFocus

  TASK.CONFIG rtx
  TASK.STacK.PATtern 0xCCCCCCCC
  Break.Set TASK.CONFIG(magic) /Write  /TraceData

  Break.Set RteMonitorActive /Write /TraceData

//ITMTrace.STATistic DEFault
  ITMTrace.List DEFault TIme.REF TIme.Zero /Track
//ITMTrace.Chart.DatasYmbol /TimeREF /Track /Sort Window
  ITMTrace.Chart.DatasYmbol /TimeREF /Filter address RteMonitorActive /Track /Sort Window
  ITMTrace.Chart.Task /TimeREF /Track /Sort Window

  IF "&cpu"=="S32K148"
  (
    ETM.ON

    Trace.ListNesting DEFault /Track
    Trace.STATistic.TREE DEFault /Track
  )

  Trace
)
ELSE
(
  DIALOG.OK "ERROR: Symbol RteMonitorActive does not exist!"
)

ENDDO

