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.

CCS/IWR1443: optimization and dependencies

Part Number: IWR1443

Tool/software: Code Composer Studio

Hi,

I have been examining optimizing a program for the iwr1443 sensor.  I do not get any advice notices during compilation regarding optimization settings .  I have tried to use the optimization analysis tool.  When I launch the tool, a window to set the build option variable is blank.  How can I set the option to use the tool?  I am using ccs 7.4.

I assume the optimization tool only performs a global optimization.  Not one that varies individual files, correct?

I'm I correct in believing if I can achieve a better optimization level/ speed configuration, I may be able to have more chirps for a given frame rate?

When I make a change, for example, to the cli utility and make a new clilib, I would have thought this change would be picked up when I do a simple build but it does not.  I have to do a clean/rebuild.  How can insure a dependency is picked up without doing general clean?  I would have thought if a dependency was changed, certain files would be rebuilt.

Thanks.

Al

  • Hi Allen,

    By optimization tool, I assume you're referring to CCS Optimizer Assistant. Are you compiling a TI provided lab example? If so, which one? You're correct, that the optimizer assistant builds the code with globally applied optimization settings. You can apply optimization settings to individual files by right clicking the file in CCS project explorer and selecting build settings to open the file specific build options Window. The following Wiki page provides an overview of the Optimizer Assistant:

    processors.wiki.ti.com/.../Optimizer_Assistant


    It's hard to comment whether you can achieve more chirps per frame by varying optimization options alone. You need do timing budget analysis for the chirp and frame configuration to get an overall picture of the processing time requirements for the processing chain. Then analyze the most critical / time-consuming processing components using code based profiling. The SDK out of box example has profiling code added to various functions so you can use that as a reference on how to get the cycle counts on the ARM or DSP.

    When you edit a source file or change build options for the project, such changes are automatically considered by the build system as dependencies and an incremental build is performed. Compiling a library does not trigger a re-build. You can do so however by deleting the program binaries in which case the build system will invoke the linker again to link the object files and the lib files and effectively use the newly compiled cli lib to re-generate the binary.

    Thanks
    -Nitin
  • Hi Nitin,

    Thank you for the reply.  Yes I am referring to the CCS Optimizer Assistant.  I have modified the TI demo example for two different applications.  During my development, I would get Advice notices for optimizing.  I am done with the development but I get no notices now, which might be good.  I have tried to run the direct method but my pull down selection is gray out (see attachement).

    Thanks.

    Al

  • Hi Allen,

    Could you try this in a new CCS workspace? Also, please let me know which TI lab did you start with so that I can try to run this at my end.

    Thanks
    -Nitin
  • Hi Nitin,

    I imported my final two projects into a new CCS workspace, did a clean and rebuilt both.  No advice notices and still no build varying options in the selection box.  The lab is the 14xx SDK Demo. I am running CCS  Version: 7.4.0.00015 .

    Thanks.

    Al

  • Hi Nitin,

    I assume since I have not heard back with you on this topic,  there is nothing that can be done.  Is it common that the options in the selection box are grayed out?

    Thanks.

    Al

  • Hi Allen,

    I have not been able to try this out yet. Let me look into it tomorrow and get back to you. Thanks for your patience.

    Regards
    -Nitin
  • Nitin,

    Sorry for the bother but any advice on this issue?
    Thanks.

    Al
  • Hi Allen,

    I tried this on my Windows based CCS installation (from your snapshot, it appears that you are using Linux/MacOS so not sure how it behaves on that) and here's what I found. If you already have optimization enabled in the project build settings, the optimizer assistant dialog can come-up empty. However, even in this case, I found that the optimization advice was already present in the Advice window as shown below indicating that the optimization analysis was already done for this program based on the selected optimization settings.

    Here's what I would suggest:

    1. Start in a clean workspace and import your project using the projectspec. Do not copy the pre-imported project from the old workspace.

    2. Turn off optimization under Project Buld Settings -> Build -> Arm Compiler -> Optimization as shown below and save the project.

    3. Open Optimizer Assistant.

    If this doesn't help, I would suggest you to post this in the CCS forum given below as this is a CCS specific issue:

    https://e2e.ti.com/support/tools/ccs/f/81

    Regards

    -Nitin

  • Hi Nitin,

    Thank you for looking into this. I am no CCS/eclipse expert and I only know how to create a zip file to export the project and import that project zip file into a clean project space.

    The mmwave projects do not appear to have a .projectspec file that I could find and somebody asked if a .projectspec file can be created
    e2e.ti.com/.../575754
    If I read the response correctly, it can not but I would assume that one should be able to create a new project based upon an existing project I do not see an easy way to do this. To create a new ccs/rstc project, it appears that one has to define each aspect from scratch.

    This url addresses creating new projects but it requires more appreciation than I have.
    processors.wiki.ti.com/.../Create

    I may just have to let this go.

    My motivation to exercise this feature is to insure I have a reasonable optimized code that I have developed. I am always looking at ways to decrease the frame time. I am using a xwr1443 sensor with hwa. I assume that a xwr1643 with a dsp would provide faster performance. Is this correct?

    I was surprised when I ran my developed code not using CCS debugger, I had to increase my periodicity time since I did not have enough endmargin and the code crashed. Does this seem reasonable to you?

    Thanks.

    Al
  • Allen,

    You can download the 1443 SDK demo CCS projectspecs and many other labs (all of which come with CCS projectspecs) from mmWave Industrial toolbox

    Here's the direct link for 14xx - mmWave SDK Demo

    The included user guide provides step-by-step instructions to import and build the project in CCS. You can use the projectspecs provided with these labs as reference to create your own.

    Thanks

    -Nitin

  • Hi Nitin,

    Thank you for your help.  I now realize what you originally asked me to do.  I attempted to install ccs8.3 but the install script failed due to a java problem.  An error ticket was generated and submitted.  When this gets resolved, finish testing.  I am marking this topic resolved.

    Al