Tool/software: Code Composer Studio
Hi,
I would like to see the change of the variable during the SRR demo operation.
I found that breakpoints can not be used, so I'm trying to get logs using Log_printf on UIA, but it does not work.
After loading the image using CCS, RTOS analyzer
"Printf and Error logs" enabled.
After that, when resume the project and launch the GUI of the SRR demo, the operation stopped after a few seconds.Also log acquisition is stoped at the same time.
The console display at that time is as follows.
**********************************************************************
[C674X_0] Heap L1 : size 16384 (0x4000), free 1216 (0x4c0)
Heap L3 : size 786432 (0xc0000), free 229376 (0x38000)
Heap L2 : size 49152 (0xc000), free 20464 (0x4ff0)
[Cortex_R4_0] Debug: Launched the Initialization Task
Debug: Initialized the mmWave module
Debug: Synchronized the mmWave module
Debug: CLI is operational
Debug: MMWave has been configured for SRR.
Debug: Sensor will start momentarily.
[C674X_0] A0=0x0 A1=0x382
A2=0x78 A3=0x60
A4=0xfffffcd2 A5=0x28
A6=0x5a827999 A7=0x5a827999
A8=0x102 A9=0x7fffffff
A10=0x2 A11=0xf00220
A12=0xf002a0 A13=0x0
A14=0x806ff0 A15=0xf00200
A16=0x5a827999 A17=0xa57d8667
A18=0x5f3 A19=0xd08
A20=0xfffffb5c A21=0xffffffe2
A22=0x261 A23=0x242
A24=0x23a A25=0x17a
A26=0xffffff9a A27=0xec
A28=0x28b A29=0x0
A30=0x6 A31=0x0
B0=0x0 B1=0x6c5
B2=0xffffff50 B3=0x2
B4=0x0 B5=0x0
B6=0xa82 B7=0xe3a
B8=0x0 B9=0xf00218
B10=0x2ba B11=0xfffffa2c
B12=0x30 B13=0x6
B14=0x814de4 B15=0x80e928
B16=0xfffffe08 B17=0x13e
B18=0xffffffd3 B19=0xffffff59
B20=0xfffffe10 B21=0xf00298
B22=0x0 B23=0x7fffffff
B24=0x26f B25=0x2b2
B26=0x31 B27=0x65
B28=0x0 B29=0x901
B30=0xfffffce2 B31=0x270
NTSR=0x1420d
ITSR=0x20d
IRP=0xe00c60
SSR=0x0
AMR=0x0
RILC=0x4
ILC=0x1
Exception at 0xe001f8
EFR=0x2 NRP=0xe001f8
Internal exception: IERR=0x180
Loop buffer exception
Missed stall exception
{module#27}: line 256: error {id:0xb0000, args:[0xe001f8, 0x80e928]}
xdc.runtime.Error.raise: terminating execution
**********************************************************************
Also, the cfg file rewritten to use UIA is as follows.
**********************************************************************
/* * Copyright 2016 by Texas Instruments Incorporated. * * All rights reserved. Property of Texas Instruments Incorporated. * Restricted rights to use, duplicate or disclose this code are * granted through contract. * */ environment['xdc.cfg.check.fatal'] = 'false'; /******************************************************************** ************************** BIOS Modules **************************** ********************************************************************/ var Memory = xdc.useModule('xdc.runtime.Memory'); var BIOS = xdc.useModule('ti.sysbios.BIOS'); var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem'); var Task = xdc.useModule('ti.sysbios.knl.Task'); var Idle = xdc.useModule('ti.sysbios.knl.Idle'); var SEM = xdc.useModule('ti.sysbios.knl.Semaphore'); var Event = xdc.useModule('ti.sysbios.knl.Event'); var Hwi = xdc.useModule('ti.sysbios.family.c64p.Hwi'); var System = xdc.useModule('xdc.runtime.System'); var SysStd = xdc.useModule('xdc.runtime.SysStd'); var EventCombiner = xdc.useModule('ti.sysbios.family.c64p.EventCombiner'); var Load = xdc.useModule('ti.sysbios.utils.Load'); var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup'); System.SupportProxy = SysStd; /* * Enable Event Groups here and registering of ISR for specific GEM INTC is done * using EventCombiner_dispatchPlug() and Hwi_eventMap() APIs */ EventCombiner.eventGroupHwiNum[0] = 7; EventCombiner.eventGroupHwiNum[1] = 8; EventCombiner.eventGroupHwiNum[2] = 9; EventCombiner.eventGroupHwiNum[3] = 10; /* Default Heap Creation: Local L2 memory */ var heapMemParams = new HeapMem.Params(); heapMemParams.size = 16*1024; heapMemParams.sectionName = "systemHeap"; Program.global.heap0 = HeapMem.create(heapMemParams); Memory.defaultHeapInstance = Program.global.heap0; /* Enable BIOS Task Scheduler */ BIOS.taskEnabled = true; /* do not call update for load - Application will call it at inter-frame boundary */ Load.updateInIdle = false; /* Install idle function to sleep the DSP (using IDLE instruction). Note above Load.updateInIdle is false which allows to sleep the DSP in idle. Also, no other book-keeping etc functions should be installed in the idle thread */ Idle.addFunc('&MmwDemo_sleep'); //Load.windowInMs = 1000; /* var Defaults = xdc.useModule('xdc.runtime.Defaults'); var Log = xdc.useModule('xdc.runtime.Log'); var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); var loggerBufParams = new LoggerBuf.Params(); loggerBufParams.numEntries = 1024; var logger0 = LoggerBuf.create(loggerBufParams); Defaults.common$.logger = logger0; var Diags = xdc.useModule('xdc.runtime.Diags'); Hwi.common$.logger = logger0; Hwi.common$.diags_USER1 = Diags.RUNTIME_ON; Hwi.common$.diags_USER2 = Diags.RUNTIME_ON; */ /* Task.common$.diags_USER1 = Diags.ALWAYS_ON; Task.common$.diags_USER2 = Diags.ALWAYS_ON; */ //Program.sectMap[".vecs"] = "VECTORS"; var Log = xdc.useModule('xdc.runtime.Log'); var Main = xdc.useModule('xdc.runtime.Main'); var Diags = xdc.useModule('xdc.runtime.Diags'); var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); LoggerBuf.TimestampProxy = xdc.useModule('xdc.runtime.Timestamp'); /* Trace Log */ var loggerBufParams = new LoggerBuf.Params(); loggerBufParams.bufType = LoggerBuf.BufType_CIRCULAR; //BufType_FIXED loggerBufParams.exitFlush = false; loggerBufParams.instance.name = "_logInfo"; loggerBufParams.numEntries = 100; /*<-- number of messages this will affect memory consumption*/ loggerBufParams.bufSection = ".loggerBufSection"; var _logInfo = LoggerBuf.create(loggerBufParams); Main.common$.logger = _logInfo; /* Turn on USER1 logs in Main module (all non-module functions) */ Main.common$.diags_USER1 = Diags.ALWAYS_ON; /* Turn on USER1 logs in Task module */ Task.common$.diags_USER1 = Diags.RUNTIME_ON; System.maxAtexitHandlers = 0; BIOS.swiEnabled = false; /* We don't use SWIs */ BIOS.libType = BIOS.LibType_Custom; /* Compile BIOS with size optimization at level 0. Note this line must be after "BIOS.libType = " statements (which overrides customCCOpts) to take effect. */ BIOS.customCCOpts += "-ms0"; //print(BIOS.customCCOpts); Task.defaultStackSize = 3000; Task.idleTaskStackSize = 1600; Program.stack = 1048; /* for isr context */ var Text = xdc.useModule('xdc.runtime.Text'); Text.isLoaded = false; LoggingSetup.multicoreEventCorrelation = true; LoggingSetup.loggerType = LoggingSetup.LoggerType_JTAGRUNMODE; LoggingSetup.loadLoggerSize = 512; LoggingSetup.sysbiosLoggerSize = 1024; LoggingSetup.mainLoggerSize = 1024; LoggingSetup.memorySectionName = "L2SRAM_UMAP0";
**********************************************************************
How can I solve the problem?
If we can not use UIA, is there any other way to debug while running the MMWave demo?
Best Regards,
Takuma