This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

System Analyser tutorial 1 does not build

Other Parts Discussed in Thread: SYSBIOS

Hi

I have a recent installation of CCS v6.0.1 with RTOS 2.0.1 and System Analyzer 1.3.1.08.

When I try to follow System Analyzer tutorial 1 I can't build it for the EVM C6748. I've tried importing example code, and creating a new CCS Project, but either way I get this error:

**** Build of configuration Debug for project uiaTutorial_1_EVMC6748 ****

"c:\\ti\\ccsv6\\utils\\bin\\gmake" -k all

'Building file: ../systemAnalyzerTutorial1.cfg'

'Invoking: XDCtools'

"c:/ti/xdctools_3_30_03_47_core/xs" --xdcpath="c:/ti/uia_1_03_01_08/packages;c:/ti/bios_6_35_04_50/packages;c:/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C674 -p xdc.platform.generic -r release -c "c:/ti/ccsv6/tools/compiler/c6000_7.4.11" --compileOptions "-g --optimize_with_debug" "../systemAnalyzerTutorial1.cfg"

making package.mak (because of package.bld) ...

js: "./config.bld", line 10: Error: Can't find the target named 'ti.targets.elf.C674' along the path 'C:/ti/uia_1_03_01_08/packages;C:/ti/bios_6_35_04_50/packages;C:/ti/ccsv6/ccs_base;c:/ti/xdctools_3_30_03_47_core/packages;..;': please check the spelling of the target's name and that it exists along this path.

xdctools_3_30_03_47_core\gmake.exe: *** No rule to make target `.configuro'. Stop.

js: "C:/ti/xdctools_3_30_03_47_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

gmake: *** [configPkg/linker.cmd] Error 1

gmake: Target `all' not remade because of errors.

I am following the instructions at http://processors.wiki.ti.com/index.php/System_Analyzer_Tutorials_(CCSv6), and also the instructions that come with the example project. It's very disappointing that something so simple doesn't just work right away. Especially disappointing as I recently had to get help to run the helloWorld example! (The fix there was to change the output from COFF to ELF, but that doesn't work here.)

Please can you help me figure out what's gone wrong?

Thanks

Roy

  • Hi Roy,

    I would like to suggest to use RTOS forum for your RTOS/SYSBIOS related queries.

    http://e2e.ti.com/support/embedded/tirtos/f/355.aspx

  • Hi,

    Moving your post to right forum to be better answered.

    Thanks & regards,

    Sivaraj K

  • Sorry, I didn't know System Analyzer was part of RTOS.

    Anyway, should I be using System Analyzer 2.0.0 instead of 1.3.1? I can see 2.0.0 is on the hard drive, but it's not showing up in the RTSC config settings dialog, and I can't seem to add it with the Add... button.

    Roy

  • OK, I figured out how to add UIA 2.0.0 but it doesn't help.

    If anyone's interested, it seems you don't add RTSC products with the Add... button in the RTSC Config Settings dialog. You have to go to Window > Preferences > CCS > RTSC > Products and use the Add... button there.

    Roy

  • Can you please try to disable "SYS/BIOS" in this build properties dialog?   The UIA examples still have a stale reference to SYS/BIOS.  You should only need to select TI-RTOS 2.0.1.

  • OK. Different error now!

    ...

    'Finished building: ../tutorial1d.c'

    ' '

    'Building file: ../systemAnalyzerTutorial1.cfg'

    'Invoking: XDCtools'

    "c:/ti/xdctools_3_30_03_47_core/xs" --xdcpath="C:/ti/tirtos_c6000_2_00_01_23/products/uia_2_00_00_28/packages;c:/ti/tirtos_c6000_2_00_01_23/packages;c:/ti/tirtos_c6000_2_00_01_23/products/bios_6_40_01_15/packages;c:/ti/tirtos_c6000_2_00_01_23/products/ipc_3_10_01_11/packages;c:/ti/tirtos_c6000_2_00_01_23/products/ndk_2_23_01_01/packages;c:/ti/tirtos_c6000_2_00_01_23/products/uia_2_00_00_28/packages;c:/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C674 -p ti.platforms.evm6748 -r debug -c "c:/ti/ccsv6/tools/compiler/c6000_7.4.11" --compileOptions "-g --optimize_with_debug" "../systemAnalyzerTutorial1.cfg"

    making package.mak (because of .xdcenv.mak) ...

    configuring systemAnalyzerTutorial1.xe674 from package/cfg/systemAnalyzerTutorial1_pe674.cfg ...

    error: ti.uia.runtime.LoggerStopMode: "C:/ti/tirtos_c6000_2_00_01_23/products/uia_2_00_00_28/packages/ti/uia/runtime/LoggerStopMode.xs", line 53: ti.uia.runtime.LoggerStopMode : The ti.uia.runtime.LoggerStopMode module is no longer supported. Use ti.uia.loggers.LoggerStopMode instead.

    js: "C:/ti/xdctools_3_30_03_47_core/packages/xdc/cfg/Main.xs", line 159: Error: Configuration failed!

    gmake.exe: *** [package/cfg/systemAnalyzerTutorial1_pe674.xdl] Error 1

    js: "C:/ti/xdctools_3_30_03_47_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    gmake: *** [configPkg/linker.cmd] Error 1

    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

    So I switched back to System Analyzer 1.3.1 (instead of 2.0.0) and I'm now down to 2 warnings.

    'Building file: ../systemAnalyzerTutorial1.cfg'

    'Invoking: XDCtools'

    "c:/ti/xdctools_3_30_03_47_core/xs" --xdcpath="c:/ti/uia_1_03_01_08/packages;c:/ti/tirtos_c6000_2_00_01_23/packages;c:/ti/tirtos_c6000_2_00_01_23/products/bios_6_40_01_15/packages;c:/ti/tirtos_c6000_2_00_01_23/products/ipc_3_10_01_11/packages;c:/ti/tirtos_c6000_2_00_01_23/products/ndk_2_23_01_01/packages;c:/ti/tirtos_c6000_2_00_01_23/products/uia_2_00_00_28/packages;c:/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C674 -p ti.platforms.evm6748 -r debug -c "c:/ti/ccsv6/tools/compiler/c6000_7.4.11" --compileOptions "-g --optimize_with_debug" "../systemAnalyzerTutorial1.cfg"

    making package.mak (because of .xdcenv.mak) ...

    configuring systemAnalyzerTutorial1.xe674 from package/cfg/systemAnalyzerTutorial1_pe674.cfg ...

    warning: ti.sysbios.BIOS: "C:/ti/tirtos_c6000_2_00_01_23/products/bios_6_40_01_15/packages/ti/sysbios/BIOS.xs", line 933: ti.sysbios.BIOS getTimestampFreqMeta: WARNING: Timestamp provider xdc.runtime.TimestampNull does not implement getFreqMeta(). BIOS.getTimestampFreqMeta() is returning 0!

    warning: ti.uia.runtime.UIAMetaData: "C:/ti/uia_1_03_01_08/packages/ti/uia/runtime/UIAMetaData.xs", line 1462: [object Object] timestampFreq: BIOS could not determine the timestamp frequency of device. Setting timestamp frequency to cpu frequency.To override this setting, set UIAMetaData.timestampFreq in your configuration (.cfg) file.

    cle674 package/cfg/systemAnalyzerTutorial1_pe674.c ...

    'Finished building: ../systemAnalyzerTutorial1.cfg'

    ' '

    'Building target: uiaTutorial_1_EVMC6748.out'

    'Invoking: C6000 Linker'

    "c:/ti/ccsv6/tools/compiler/c6000_7.4.11/bin/cl6x" -mv6740 --abi=eabi -g --define=c6748 --display_error_number --diag_warning=225 --diag_wrap=off -z --stack_size=0x800 -m"uiaTutorial_1_EVMC6748.map" --heap_size=0x800 -i"c:/ti/ccsv6/tools/compiler/c6000_7.4.11/lib" -i"c:/ti/ccsv6/tools/compiler/c6000_7.4.11/include" --reread_libs --warn_sections --display_error_number --diag_wrap=off --xml_link_info="uiaTutorial_1_EVMC6748_linkInfo.xml" --rom_model -o "uiaTutorial_1_EVMC6748.out" -l"./configPkg/linker.cmd" "./main.obj" "./tutorial1a.obj" "./tutorial1b.obj" "./tutorial1c.obj" "./tutorial1d.obj" -l"libc.a"

    <Linking>

    'Finished building target: uiaTutorial_1_EVMC6748.out'

    ' '

    **** Build Finished ****

    Not sure whether they are significant or not. Possibly not critical though.

    The program runs now. I'm totally baffled by the instructions regarding the gel file and control panel, but I edited the code to make the tutorial run and it seems to work.

    Thanks!  :)

    So should I ignore System Analyser 2.0.0, or try to use it in my project?

    Roy

  • Also, forgot to mention, when I ran the program then tried to view the Log output, the dialog said it couldn't determine whether the code was instrumented or not. But I pressed ahead regardless and it came up with the correct logs. Is that normal?

    Roy

  • Hi Roy,

    Could you please post your .cfg file so we can see how to get rid of your warnings?  There should be minimal changes needed to get the .cfg to build with UIA 2.x, namely, changing 'ti.uia.runtime.LoggerStopMode' to 'ti.uia.loggers.LoggerStopMode'.  You can still use UIA 1.3 with CCS 6, but you will git the "couldn't determine" dialog message, which you can ignore.

    Best regards,

        Janet

  • Here's my config file. I haven't (knowingly) changed it from the tutorial 1 example, but it looks as though you are right about runtime and loggers.

    I am slightly surprised by line 66:

    var LogSnapshot = xdc.useModule('ti.uia.runtime.LogSnapshot');

    because I thought I had read somewhere that 6748 only works in logger stopmode. Maybe this example is for a different processor?

    Thanks

    Roy

    /*
     * Copyright (c) 2012, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     * */
    
    /*
     *  ======== systemAnalyzerTutorial1.cfg ========
     *  This file specifies how the XDC modules used by the
     *  System Analyzer Tutorial 1 project are to be configured.
     *
     * See http://processors.wiki.ti.com/index.php/McsaTutorial1 for more info.
     */
    
    /* ================ XDC Configuration ================ */
    /*
     *  The SysStd System provider is a good one to use for debugging
     *  but does not have the best performance. Use xdc.runtime.SysMin
     *  for better performance.
     */
    var System   = xdc.useModule('xdc.runtime.System');
    var SysStd   = xdc.useModule('xdc.runtime.SysStd');
    System.SupportProxy = SysStd;
    
    /* The xdc.runtime.Log module provides APIs to log prioritized events (errors,
     * warnings, and info) as well as generic APIs to log events (Log_writeN,
     * Log_printN)
     */
    var Log = xdc.useModule('xdc.runtime.Log');
    
    /* The following modules from the ti.uia.events package contain predefined
     * events that can be logged using the Log_write APIs
     */
    var UIAErr = xdc.useModule('ti.uia.events.UIAErr');
    var UIAEvt = xdc.useModule('ti.uia.events.UIAEvt');
    var UIABenchmark = xdc.useModule('ti.uia.events.UIABenchmark');
    var UIAStatistic = xdc.useModule('ti.uia.events.UIAStatistic');
    
    /* the following line is required in order to get Tutorial D to build */
    var LogSnapshot = xdc.useModule('ti.uia.runtime.LogSnapshot');
    
    /* ================ Logger configuration ================ */
    /*
     *  1. Enables events in main and non-XDC modules
     *     and assigns them a logger (size 32768 bytes) that uploads
     *     events when the target halts (e.g. when it hits a breakpoint).
     *
     *  If you are using SYS/BIOS, please refer to the ti.uia.sysbios.LoggingSetup
     *  module for a simpler way to configure loggers and enable SYS/BIOS
     *  real-time software instrumentation features.  (This is covered in
     *  a separate System Analyzer Tutorial).
     *
     */
    var Logger = xdc.useModule('ti.uia.runtime.LoggerStopMode');
    var loggerParams = new Logger.Params();
    loggerParams.transferBufSize = 32768;
    logger = Logger.create(loggerParams);
    logger.instance.name = "Main logger";
    
    
    /* The Diags module provides flags that can be used to control which
     * categories of events are uploaded.  Setting a category to Diags.ALWAYS_OFF
     * will remove any overhead associated with the event logging from the
     * compiled code if the whole_program compile option (-pm) is used.
     */
    var Diags = xdc.useModule('xdc.runtime.Diags');
    
    /* The Main module is used to configure how events logged from non-XDC
     * C and C++ code are handled.  Configure it to use the logger instance
     * created above to log events, and enable all categories of events,
     * configuring them so that they can be dynamically enabled or disabled
     * using the Diags_setMask API. (see the xdc.runtime.Diags module for more
     * information).
     */
    var Main = xdc.useModule('xdc.runtime.Main');
    Main.common$.logger = logger;
    Main.common$.diags_STATUS = Diags.ALWAYS_ON;
    Main.common$.diags_ANALYSIS = Diags.RUNTIME_ON;
    Main.common$.diags_INFO = Diags.RUNTIME_ON;
    
    /* The USER1 and USER2 categories are turned off
     * here for demonstration purposes.  Please see
     * System Analyzer Tutorial 1C for more details.
     */
    Main.common$.diags_USER1 = Diags.ALWAYS_OFF;
    Main.common$.diags_USER2 = Diags.RUNTIME_OFF;
    Main.common$.diags_USER3 = Diags.RUNTIME_ON;
    Main.common$.diags_USER4 = Diags.RUNTIME_ON;
    Main.common$.diags_USER5 = Diags.RUNTIME_ON;
    Main.common$.diags_USER6 = Diags.RUNTIME_ON;
    

  • Hi Roy,

    You are getting the warnings:

    warning: ti.sysbios.BIOS: "C:/ti/tirtos_c6000_2_00_01_23/products/bios_6_40_01_15/packages/ti/sysbios/BIOS.xs", line 933: ti.sysbios.BIOS getTimestampFreqMeta: WARNING: Timestamp provider xdc.runtime.TimestampNull does not implement getFreqMeta(). BIOS.getTimestampFreqMeta() is returning 0!

    warning: ti.uia.runtime.UIAMetaData: "C:/ti/uia_1_03_01_08/packages/ti/uia/runtime/UIAMetaData.xs", line 1462: [object Object] timestampFreq: BIOS could not determine the timestamp frequency of device. Setting timestamp frequency to cpu frequency.To override this setting, set UIAMetaData.timestampFreq in your configuration (.cfg) file.

    because you have BIOS in your package path, so UIAMetaData is trying to get the Timestamp frequency from BIOS.  However, this SystemAnalyzerTutorial1.cfg file has no dependencies on BIOS.  Since you have BIOS, you can get rid of this warning by adding the following line to your .cfg file:

    xdc.useModule('ti.sysbios.BIOS');

    Then BIOS will set up the Timestamp provider to something other than xdc.runtime.TimestampNull.

    LogSnapshot is not actually a logger, but is used for logging blocks of memory and dynamic strings.  It is in the .cfg file for Tutorial 1D, which you can read about here:

    http://processors.wiki.ti.com/index.php/SystemAnalyzerTutorial1D

    Best regards,

        Janet

  • Thanks Janet,

    I've followed your advice about adding BIOS and changing the logger. I also found SPRUH43F section 5.1.1 pretty useful about upgrading from UIA 1.3 to 2.0. Much of it says what you said, but it also recommends adding LoggingSetup to the config which I did. Maybe it isn't necessary for the tutorial1, but I'm sure I'll need it later on anyway.

    At first, System Analyzer wasn't able to determine whether code was instrumented or not, even after I had switched to UIA2.0, but now it says instrumentation status is good. Sorry I can't be sure which change got that to work.

    I think I have also figured out something else that was confusing me. Where there are duplicates in the Available Products window, I need to be using the ones under TI-RTOS. The others are likely to be older versions that are hanging around. Correct?

    Duration Analysis is still giving me a problem though in tutorial 1B. I'm following http://processors.wiki.ti.com/index.php/SystemAnalyzerTutorial1B

    The log shows the start and stop events correctly, as below, but doing r-click Analyze > Duration brings up an empty Duration Summary  window. Any ideas why this would happen?

    I'll post my cfg file again, in case the problem lies in there.

    /*
     * Copyright (c) 2012, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     * */
    
    /*
     *  ======== systemAnalyzerTutorial1.cfg ========
     *  This file specifies how the XDC modules used by the
     *  System Analyzer Tutorial 1 project are to be configured.
     *
     * See http://processors.wiki.ti.com/index.php/McsaTutorial1 for more info.
     */
    
    /* ================ XDC Configuration ================ */
    /*
     *  The SysStd System provider is a good one to use for debugging
     *  but does not have the best performance. Use xdc.runtime.SysMin
     *  for better performance.
     */
    var System   = xdc.useModule('xdc.runtime.System');
    var SysStd   = xdc.useModule('xdc.runtime.SysStd');
    var BIOS = xdc.useModule('ti.sysbios.BIOS');
    var Log = xdc.useModule('xdc.runtime.Log');
    var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
    System.SupportProxy = SysStd;
    
    /* The following modules from the ti.uia.events package contain predefined
     * events that can be logged using the Log_write APIs
     */
    var UIAErr = xdc.useModule('ti.uia.events.UIAErr');
    var UIAEvt = xdc.useModule('ti.uia.events.UIAEvt');
    var UIABenchmark = xdc.useModule('ti.uia.events.UIABenchmark');
    var UIAStatistic = xdc.useModule('ti.uia.events.UIAStatistic');
    
    /* the following line is required in order to get Tutorial D to build */
    var LogSnapshot = xdc.useModule('ti.uia.runtime.LogSnapshot');
    
    /* ================ Logger configuration ================ */
    /*
     *  1. Enables events in main and non-XDC modules
     *     and assigns them a logger (size 32768 bytes) that uploads
     *     events when the target halts (e.g. when it hits a breakpoint).
     *
     *  If you are using SYS/BIOS, please refer to the ti.uia.sysbios.LoggingSetup
     *  module for a simpler way to configure loggers and enable SYS/BIOS
     *  real-time software instrumentation features.  (This is covered in
     *  a separate System Analyzer Tutorial).
     *
     */
    var Logger = xdc.useModule('ti.uia.loggers.LoggerStopMode');
    var loggerParams = new Logger.Params();
    loggerParams.bufSize = 32768;
    logger = Logger.create(loggerParams);
    logger.instance.name = "Main logger";
    
    
    /* The Diags module provides flags that can be used to control which
     * categories of events are uploaded.  Setting a category to Diags.ALWAYS_OFF
     * will remove any overhead associated with the event logging from the
     * compiled code if the whole_program compile option (-pm) is used.
     */
    var Diags = xdc.useModule('xdc.runtime.Diags');
    
    /* The Main module is used to configure how events logged from non-XDC
     * C and C++ code are handled.  Configure it to use the logger instance
     * created above to log events, and enable all categories of events,
     * configuring them so that they can be dynamically enabled or disabled
     * using the Diags_setMask API. (see the xdc.runtime.Diags module for more
     * information).
     */
    var Main = xdc.useModule('xdc.runtime.Main');
    Main.common$.logger = logger;
    Main.common$.diags_STATUS = Diags.ALWAYS_ON;
    Main.common$.diags_ANALYSIS = Diags.RUNTIME_ON;
    Main.common$.diags_INFO = Diags.RUNTIME_ON;
    
    /* The USER1 and USER2 categories are turned off
     * here for demonstration purposes.  Please see
     * System Analyzer Tutorial 1C for more details.
     */
    Main.common$.diags_USER1 = Diags.ALWAYS_OFF;
    Main.common$.diags_USER2 = Diags.RUNTIME_OFF;
    Main.common$.diags_USER3 = Diags.RUNTIME_ON;
    Main.common$.diags_USER4 = Diags.RUNTIME_ON;
    Main.common$.diags_USER5 = Diags.RUNTIME_ON;
    Main.common$.diags_USER6 = Diags.RUNTIME_ON;
    LoggingSetup.benchmarkLogging = true;
    

    Thanks again for your help,

    Roy

  • Hi Roy,

    Probably adding LoggingSetup to your configuration enabled RTOS Analyzer (the new name for System Analyzer in CCS v6) to determine that your code was instrumented.  This is the recommended way to add instrumentation to your code, since LoggingSetup generates metadata about your program, that is needed by RTOS Analyzer.

    I'm not sure why your duration analysis isn't working, since you do have

        LoggingSetup.benchmarkLogging = true;

    Maybe you can try changing the UIABenchmark_startInstanceWithStr and UIABenchmark_stopInstanceWithStr to just UIABenchmark_start and UIABenchmark_stop.  I tried adding benchmark code to the SYS/BIOS mutex example, and had to make this change to get the duration analysis to work.  Here is what I added:

      Log_write3(UIABenchmark_start, (IArg)"Benchmark System_printf", 2,(IArg)"System_printf");
      System_printf("Running task2 function\n");
      Log_write3(UIABenchmark_stop, (IArg)"Benchmark System_printf", 2,(IArg)"System_printf");

    Then the durations showed up in RTOS Analyzer.

    As for the multiple products lying around, it's probably best to just check the TI-RTOS box on your project Properties -> General, under the RTSC tab.  This will ensure that you have compatible versions of dependent products.

    Best regards,

        Janet

  • Janet,

    As usual, your advice hits the spot! I've looked at the definitions of the constants in UIAbenchmark.h (there's _start, _startInstance, _startInstanceWithAdrs, _startInstanceWithStr, and just as  many flavours of _stop  -- all of them different) and I can't begin to imagine why it all needs to be so complicated, nor why they don't all work the same! But hey! I have a working system that I can start to build on.

    Thanks for your help with this, and I hope you'll be around next time things don't go the way I'd expect.

    Best wishes

    Roy

  • Hi Roy,

    I'm glad to hear it's working now.  Looking at the ti.uia.events.UIABenchmark specs, I see that most of those flavors of start/stop are deprecated, so that explains why RTOS Analyzer wouldn't recognize the start/stopInstanceWithStr events.  It looks much simpler in the cdoc, which you can navigate to from <UIA_INSTALL_DIR>/docs/cdoc/index.html.

    Good luck!

        Janet