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/IWR6843AOP: How to create a stable debugging project

Part Number: IWR6843AOP
Other Parts Discussed in Thread: IWR6843

Tool/software: Code Composer Studio

For our company's application, I've been attempting to modify the existing automated doors lab included in the industrial toolbox. However, I've been running into several issues during debugging as well as attempting to remove unnecessary components of the lab to better suit our application. Ideally, I'd like to start a new CCS project from scratch and copy over the components I need to get a working setup.

For reference, I am using an XDS110 directly attached to the JTAG lines exposed on the 60 pin connector of an IWR6843AOPEVM using a custom adapter pcb until our final PCB is ready.

During debugging I've run into two issues in particular that dramatically slow me down. The first is that every time I want to rebuild and reprogram the device, I have to start up a new debugging session, connect the CortexR4 and C674x in sequence, load each program binary into each in sequence, and then restart both cores in sequence. If the debugging session is already running, I can let CCS reload the new binary, but then I have to pause the updated core, CPU Reset, and then hope that I don't hit an unrecoverable error that requires me to reset the entire EVM board and start over. On occasion, this also means that CCS can no longer talk with the XDS110 correctly, and I have to restart CCS.

I have been able to create a new project successfully through the New CCS Project option. However, there are a couple issues. First is that hitting debug will only connect to and load the binary into single core (depending on which project was active when I hit debug) Second is that this new project doesn't come with the dependencies that link the two projects, or the code/shell commands to generate the combined bin package usable by the IWR6843's bootloader.

All in all, I'm rather confused and frustrated with just how all over the place project management feels with mmWave projects.

This is what I would like to have: I'd like a simple bare minimum setup with two projects, mss and dss, which are linked together such that when I hit Run/Debug on either one, both binaries are loaded into both cores and started at the same time without running into unrecoverable crashes, and the combined bin is generated in the background. This way I can start copying over the components I need from automated doors. Any guidance or assistance is greatly appreciated.

  • Hello,

    Abram Early said:
    This is what I would like to have: I'd like a simple bare minimum setup with two projects, mss and dss, which are linked together such that when I hit Run/Debug on either one, both binaries are loaded into both cores and started at the same time without running into unrecoverable crashes, and the combined bin is generated in the background. This way I can start copying over the components I need from automated doors. Any guidance or assistance is greatly appreciated.

    One option is to modify the generated Debug Configuration for each project so that it will load the programs for both the ARM and DSP. In the screenshot below, I am modifying the debug configuration for the MSS project so that it will load the DSS program on the DSP when the MSS project is debugged:

    You can also create project dependencies so that when building one project, it will also build other dependent project.

    Another option is to create a DSS initialization script (see section 7.2.2 of the User's Guide) that can be run when a debug session is launched.

    Hope this helps

    ki

  • This is enormously helpful, and greatly appreciated!

    However, I am still running into bizarre inconsistencies that make no sense to me. As near as I can tell, the "New CCS Project" doesn't make a useful project configuration for mmWave devices. These are just the issues and inconsistencies that I've run into so far:

    • It uses 32 bit for --code-state instead of 16bit (thumb) like on every demo/example I can find.
    • I had to copy over the "Target" and "Platform" options from an example project to configure XDCTools because there were no options provided, and no autocomplete.
    • It defaulted to big-endian for the Cortex R4.
    • Nothing would compile until I opened the project settings afterwards and manually selected the linker command file.
    • It doesn't include the predefined symbols "SOC_XWR68XX", "SUBSYS_MSS", or "SUBSYS_DSS" which allow you to use the soc driver in the mmwave SDK.
    • I had to manually include the include path for the mmwave SDK because ${COM_TI_MMWAVE_SDK_INCLUDE_PATH} is empty.
    • The enum type is set to packed which is incompatible with the mmwave SDK, and changing this breaks compatibility with XDCTools and BIOS which is fixed by manually adding the compile flag under XDCTools -> Advanced Options.
    • There are also numerous other predefined symbols included in every example project that aren't included.

    At this point, it seems like the only way forward is to take an existing mmWave project, strip everything out, and start from there. Am I missing something?

  • Abram Early said:
    At this point, it seems like the only way forward is to take an existing mmWave project, strip everything out, and start from there. Am I missing something?

    Honestly, we do not recommend people try to create a new project from scratch... but instead always recommend people start with an existing SDK example which is properly configured. As you found out, the default settings for a new project is often quite lacking depending on the device. CCS relies on some metadata to configure new projects and it appears the metadata for 6843 provided to CCS is very bare bones.

  • Thank you for your time, and sorry for coming off a bit harsh here. That should be all I need to really get going.

  • No worries at all. I do agree that the usability of some of the CCS functionality needs a lot of work so the honest feedback is appreciated. While we inherited a lot of good things from Eclipse, we also inherited some of the usability issues also. We hope to clean things up when we refresh our IDE environment in the future.

    ki