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.

Compiler/TMDSDOCK28379D: msg 'this task cannot be accomplished with the existing AET resources'

Part Number: TMDSDOCK28379D
Other Parts Discussed in Thread: UNIFLASH

Tool/software: TI C/C++ Compiler

According to ticket CS0051159:

Dear TI team,

I am trying to set breakpoints with DSS .js scripting after compiling with option -g, see screenshot below. Method debugSession.target.run() does work.

However, I am getting an error message ('this task cannot be accomplished with the existing AET resources') when I am trying to use Breakpoints.Add on some different C function than main in start.obj. - What's the matter? Can you help, please?

The build in the CCS project is done with these options:

On the command line, we are using uniflash.bat from the scripting examples in the CCS installation.

This .js script will branch into a slightly modified uniFlash_operation.js which roughly contains this:

 debugSession.breakpoint.add( "main");
- works

debugSession.breakpoint.add( "C$$EXIT");
- works

debugSession.breakpoint.add( "set_breakpoint_here");
- does not work

where set_breakpoint_here() is any C function implemented in start.c or in a different translation unit built with the options depicted above.

According to some thread back from Jul, 8th, 2018, I am requiring a means to set HW breakpoints by .js scripting. With regards to AET resources, I have read about a difference between software and hardware breakpoints which might play a role. But if so, do I need to understand how to set Breakpoint.Properties first to let the DSS .js script set HW breakpoints properly?

Thanks!

  • I can't help with the scripting side, but I can tell you why you are seeing this message.  When you set a break-point on a memory location in flash, the debugger must use hardware to trap the PC.  The C28x has an AET module (Advanced Emulation Trigger) with two address comparators to trap on a program memory address.  Therefore you are limited to placing two break-points in flash memory (there is no limitation on RAM break-points).  If you attempt to set more than two, you will see this error.

    Regards,

    Richard

  • Please let us know if the information was sufficient or if you are still in difficulty with this issue.  Thanks.

    Regards,

    Richard

  • Hi Richard

    thanks for asking. Well, I am still requiring help wrt the scripting part. - If I just script this:

    debugSession.breakpoint.add( "set_breakpoint_here");
    - it won't work.

    Apparently, because I am missing to set some properties of the breakpoint object to be 'hardware breakpoint'. I don't know yet how to set the property for the class debugSession.breakpoint, as described here:

    software-dl.ti.com/.../sdto_dss_handbook.html

    including the examples. - I see there is a command for GEL files here:

    http://software-dl.ti.com/ccs/esd/documents/users_guide/gel/GEL_HWBreakPtAdd.html?highlight=hardware%20breakpoint#

    GEL_HWBreakPtAdd( “main” );

    However, I can't use this in my python scripting because I require the callback to some script function whenever the BP is reached.

    Please feel free to refer me to the right resource, or to the people on the right forum to ask. - Thanks a lot.

  • Hello,

    QA Systems said:

    debugSession.breakpoint.add( "set_breakpoint_here");
    - it won't work.

    Apparently, because I am missing to set some properties of the breakpoint object to be 'hardware breakpoint'. I don't know yet how to set the property for the class debugSession.breakpoint, as described here:

    software-dl.ti.com/.../sdto_dss_handbook.html

    Yes, the "add" method will always default to a SW breakpoint.

    You will need to use breakpoint properties.

    Example of setting a HW breakpoint on line 25 of main.c:

    var bpProps2 = debugSession.breakpoint.createProperties(1);

    bpProps2.setString("Miscellaneous.Name", "Breakpoint");
    bpProps2.setString("Hardware Configuration.Type", "Breakpoint");
    bpProps2.setSourceLocation("Hardware Configuration.Type.Location", "main.c", 25);
    bpProps2.setString("Debugger Response.Action","Remain Halted");

    bpProps2  = debugSession.breakpoint.add(bpProps2); // add breakpoint

    Thanks

    ki