Files
Gen4_R-Car_Trace32/2_Trunk/demo/arm/compiler/gnu/snoop.cmm
2025-10-14 09:52:32 +09:00

98 lines
2.9 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: SNOOPer Demo
; @Description:
; Loads simple example application in SRAM, then samples periodically variables
; and displays their value graphical over time
; @Author: HLG
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: snoop.cmm 18850 2022-01-26 18:41:29Z bschroefel $
DO "~~~~/demo_sram.cmm"
WAIT !STATE.RUN()
Go func_sin
PRINT "Please wait we're starting soon..."
SCREEN.display
Go.Up
WAIT !STATE.RUN()
// Configure the snooper to record the course of the variables plot1 and plot2 (in a non-intrusive way)
SNOOPer.RESet
SNOOPer.SELect Var.RANGE(plot1) Var.RANGE(plot2)
SNOOPer.Rate 500.us
IF INTERFACE.SIM()
(
SYStem.MemAccess Enable
Var.set period=9000
)
ELSE IF SYStem.CPU()=="EPXA"
(
Var.set period=9000
IF Data.Long(D:0x7fffc008)==0x081010DD // EPXA1 ?
Var.set period=500
SNOOPer.Rate 50.ms
)
SNOOPer.Mode StopAndGo OFF
SNOOPer.AutoArm ON
SNOOPer.Init
SNOOPer.Arm
WinCLEAR
SCREEN.ALways
LOCAL &options
IF INTERFACE.SIM()
&options="/MarkedVector" // Show sampling point on rather slow Simulator
// SNOOPer.DRAW.channel ist the old tricky style
WinPOS 0% 0% 50% 50%
SNOOPer.DRAW %Decimal Data.W /Filter Address plot1
WinPOS 50% 0% 50% 50%
SNOOPer.DRAW %Decimal Data.W /Filter Address plot2
// SNOOPer.DRAW.channel getting really tricky if you want to draw more than one value in the same window
Var.Break.Set plot1 /Alpha
Var.Break.Set plot2 /Beta
WinPOS 0% 50% 50% 50%
SNOOPer.DRAW %Decimal Data.W /Color
// SNOOPer.DRAW.Data availalbe since Nov 2012.
// It is the right choice to draw the course of any value in memory without symbol information.
// If the data you'd like to draw corresponds to a C/C++ variable (like in this example) better use SNOOPer.DRAW.Var (see below)
IF VERSION.BUILD.BASE()>39912.
(
WinPOS 51% 51% 50% 50%
SNOOPer.DRAW.Data %Decimal.Word plot1++1 plot2++1 &options
)
// SNOOPer.DRAW.Var available since Jan 2013 is the easiest and recommend way to draw the course of a C/C++ variable
IF VERSION.BUILD()>41354.
(
WinPOS 50% 50% 50% 50%
SNOOPer.DRAW.Var %DEFault plot1 plot2 &options
// SNOOPer.DRAW.Var (-90.)--(-50.),100.0,-16000.0,plot1 plot2 /MarkedVector
// | | | |
// | | | +-- Option to show sampling points
// | | +-- Optional lower start value: Lowest value shown immediately is -16000.0
// | +-- Optional Y scaling: 100.0units = 1px
// +-- Optional time scaling: Show immediately only samples -90 to -51
)
WinPOS ,,,,,,"snoop"
SNOOPer.state
PRINT "Please wait 10 seconds..."
Go
WAIT 10.s
Break
WinCLEAR "snoop"
ENDDO