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.

[参考译文] 编译器/TMDSDOCK28379D:MSG 和#39;这个任务不能用现有的 AET 资源完成#39;

Guru**** 2511985 points
Other Parts Discussed in Thread: UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/832071/compiler-tmdsdock28379d-msg-this-task-cannot-be-accomplished-with-the-existing-aet-resources

器件型号:TMDSDOCK28379D
主题中讨论的其他器件:UNIFLASH

工具/软件:TI C/C++编译器

根据 TT CS0051159:

尊敬的 TI 团队:

在使用选项-g 进行编译后、我尝试使用 DSS .js 脚本设置断点、请参阅下面的屏幕截图。 方法 debugSession.target.run()起作用。

但是、当我尝试使用 Breakpoints.add 时、我会收到一条错误消息("使用现有的 AET 资源无法完成此任务")、该函数与 start.obj 中的 main 不同。 怎么了? 可以帮帮我吗?

CCS 工程中的编译通过以下选项完成:

在命令行上、我们使用 CCS 安装中脚本示例中的 uniflash.bat。

这个.js 脚本将分支到一个稍作修改的 uniFlash_operation.js 中、该 uniFlash_operation.js 大致包含以下内容:

 debugSession.breakpoint.add ("main");
-工作正常

debugSession.breakpoint.add ("C$$EXIT");
-工作正常

debugSession.breakpoint.add ("set_breakpoint_here");
-不奏效

其中 set_breakpoint_here()是在 start.c 或使用上述选项构建的不同转换单元中实现的任何 C 函数。

根据2018年7月8日之前的某些线程、我需要一种通过.js 脚本设置硬件断点的方法。 关于 AET 资源、我已经了解了软件和硬件断点之间可能起作用的差异。 但是、如果是、我是否需要了解如何设置 Breakpoint.Properties、以便 DSS .js 脚本正确设置硬件断点?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在脚本编写方面无能为力、但我可以告诉您为什么会看到这条消息。  当您在闪存中的存储器位置设置断点时、调试器必须使用硬件来陷阱 PC。  C28x 有一个带有两个地址比较器的 AET 模块(高级仿真触发器)、此比较器捕捉一个程序存储器地址。  因此、您只能在闪存中放置两个断点(对 RAM 断点没有限制)。  如果您尝试设置两个以上的值、您将看到此错误。

    此致、

    Richard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请告知我们这些信息是否足够、或者您是否仍有此问题的困难。  谢谢。

    此致、

    Richard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好 Richard

    感谢您的提问。 嗯、我仍然需要脚本部分的帮助。 -如果我只是编写这样的脚本:

    debugSession.breakpoint.add ("set_breakpoint_here");
    -这不奏效。

    很明显、因为我缺少将断点对象的某些属性设置为"硬件断点"。 我还不知道如何设置类 debugSession.breakpoint 的属性,如下所述:

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

    包括示例。 -我看到这里有一个用于 GEL 文件的命令:

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

    GEL_HWBreakPtAdd(“main”);

    但是、我不能在 python 脚本中使用它、因为只要达到 BP、我就需要对某些脚本函数进行回调。

    请随时向我推荐合适的资源、或向合适论坛上的人员咨询。 非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    [报价用户="QA 系统"]

    debugSession.breakpoint.add ("set_breakpoint_here");
    -这不奏效。

    很明显、因为我缺少将断点对象的某些属性设置为"硬件断点"。 我还不知道如何设置类 debugSession.breakpoint 的属性,如下所述:

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

    [/报价]

    是的、"add"方法将始终默认为 SW 断点。

    您将需要使用断点属性。

    在 main.c 的第25行设置硬件断点的示例:

    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);//添加断点

    谢谢

    Ki