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.
工具/软件:Code Composer Studio
我有一个具有180 Piccolo F280049的大型模块化转换器。 对于编程和调试、我有18个 XDS110。 每个 XDS110通过 JTAG 链连接到10个微控制器。 所有控制器都使用相同的软件。 因此、我使用 Code Composer 调试服务器脚本(脚本控制台)中的 Java 脚本加载程序。
开始时,我使用了以下 Java 脚本:
debugSession1 = debugServer.openSession("RK_111_Probe"、"C28xx_CPU1_1"); debugSession1.target.connect(); debugSession1.memory.loadProgram( programToLoad ); debugSession1.target.runAsynch();
这适用于10、20或30个器件、没有任何问题。 但我注意到、当我增加器件数量时、会变得越来越慢。
因此我添加了2行:
debugSession1.target.disconnect(); debugSession1.terminate();
现在、对90个器件进行编程大约需要10分钟。 这完全没问题。
问题是、现在我再也看不到我的转换器的任何信息了。 那么、我的第一个问题是:如何通过调试服务器脚本加载符号并连接到正在运行的器件?
我发现了如下内容:
debugSession1.Symbol.load( programToLoad );
但这不起作用。
旁边有第二个问题:如何将 Java 脚本中的文本输出到 CCS 中的控制台窗口?
我尝试了:
var script = ScriptingEnvironment.instance(); //"traceWrite" script.traceSetConsoleLevel (TraceLevel。all) script.traceWrite ("test traceWrite!") //“println” System.out.println (“测试 println!” );
但没有什么工作。
我忘记添加一个完整的示例文件。 在示例中、我对30个器件进行了编程。 文件的原始名称是 LoadProgram_ti.js、但结束的 js 不受此论坛支持、因此我使用了"JSL"。
e2e.ti.com/.../LoadProgram_5F00_ti.jsl
而不是。 要´m 此 Java 脚本和大目标配置、请使用 python 脚本。
PS:无法使用 Firefox 下载文件的方式是什么?
您好、Ludwig、
[引用用户="Ludwig Schlegel"]
那么、我的第一个问题是:如何通过调试服务器脚本加载符号并连接到正在运行的器件?
我发现了如下内容:
1
|
debugSession1.Symbol.load( programToLoad ); |
但这不起作用。
[/报价]
这应该起作用。 以上行将仅将符号加载到调试器中。 然后、您应该能够在之后调用 target.connect。 您是否收到一些失败消息? 如果不是、则生成详细的 DSS 日志以查看 API 调用是否成功。
[引用 USER="Ludwig Schlegel"]旁边有第二个问题:如何将 Java 脚本中的文本输出到 CCS 中的控制台窗口?
DSS traceWrite、javascript 打印和 Java println 会将消息打印到 CCS Scripting Console。 它们不会进入 CCS 调试控制台(也不能像这样重定向)。 调试器消息、C/IO、GEL 就会打印出来。
谢谢
Ki
关于"加载符号":
我得到以下错误:
TypeError:无法调用未定义(... connect_111_mod.js#54)
第54行包含:
debugSession1.Symbol.load( programToLoad );
其中:
VAR 程序加载="... F280049/CPU1_RAM/base_F280049.out";
我用于使用其他脚本加载程序的相同变量"programToLoad":
debugSession1.memory.loadProgram( programToLoad );
关于打印文本:
仅在脚本n´t 中查看消息不会有问题、但我看不到任何消息。 没有错误。
[引用用户="Ludwig Schlegel"]
我忘记添加一个完整的示例文件。 在示例中、我对30个器件进行了编程。 文件的原始名称是 LoadProgram_ti.js、但结束的 js 不受此论坛支持、因此我使用了"JSL"。
[/报价]
此文件的链接已断开。 您可以重新发布吗? 尝试使用*。txt 扩展名
[引用用户="Ludwig Schlegel"]
我得到以下错误:
TypeError:无法调用未定义(... connect_111_mod.js#54)
第54行包含:
debugSession1.Symbol.load( programToLoad );
[/报价]
符号中的"s"应为小写:
debugSession1.symbol.load( programToLoad );
[引用用户="Ludwig Schlegel"]
关于打印文本:
仅在脚本n´t 中查看消息不会有问题、但我看不到任何消息。 没有错误。
[/报价]
使用 javascript "print"调用
print("string to print");
谢谢
Ki
您好!
"print"-命令正在工作。 谢谢你!!
如果我用小写的"s"在符号中使用、则不会出现错误、但调试会话不起作用。 在 CCS 的调试窗口中、我可以看到与控制器有一个开放的连接。 但没有绿色的三角形、这表明控制器正在运行。 只有文本"0x3FB02A (未定义符号)"。
我的一个控制器脚本:
//将 DSS 软件包导入我们的命名空间以保存在键入 importPackage (Packages.com.ti.debug.engine.scripting) importPackage (Packages.com.ti.ccstudio.scripting.environment) importPackage (Packages.java.lang) //可配置参数 var deviceCCXMLFile ="C:/SVN/Software/F280049/targetConfigs/TMS320F280049_converter1_all.ccxml; var programToLoad ="C:/SVN/Software/F280049/CPU1_RAM/Basis_F280049.out; //创建我们的脚本环境对象-这是任何脚本的主要入口点, //创建其他脚本服务器和会话的工厂 var script = ScriptingEnvironment.instance(); //创建调试服务器 var debugServer = script.getServer ("DebugServer.1"); //设置器件 ccxml debugServer.setConfig (deviceCCXMLFile); //打开调试会话 debugSession1 = debugServer.openSession("RK_111_Probe"、"C28xx_CPU1_1"); //连接到目标 debugSession1.target.connect(); //仅加载符号 debugSession1.symbol.load( programToLoad ); //运行程序 debugSession1.target.runAsynch();
如果我按 F8键使控制器运行、则消息将停止1秒、然后再次出现 Rised。
也许"debugSession1.target.runAsynch();"错了。 有趣的是、当我细分这条线时、行为不会改变。
[引用 USER="Ludwig Schlegel">但调试会话不起作用。 在 CCS 的调试窗口中、我可以看到与控制器有一个开放的连接。 但没有绿色的三角形、这表明控制器正在运行。 只有文本"0x3FB02A (未定义符号)"。
您能否发布这方面的屏幕截图?
尝试运行后、地址中的指令是什么? 它看起来像遇到一个异常。 如果打开 模块视图、您是否看到已成功加载的符号?
符号已成功加载。 我可以在 Moules 视图中找到 main()等。 但不幸的是,我在这个女演员找不到任何东西。
顺便说一下:如果我加载程序并使用 我在2020年5月29日发布的脚本运行它、那么在编辑器视图中会打开一个新窗口。 和以下文本。
在地址"0x3fc7a5"处中断、没有可用的调试信息、或者在程序代码之外。
这就是所谓的"源代码未找到编辑器"。
[引用 USER="Ludwig Schlegel"]在地址"0x3fc7a5"处或程序代码之外没有可用调试信息的中断。
该地址在 ROM 中的某个位置。 请参阅以下 Devin 文章:
他提供了有关启动手动调试启动和手动加载代码的分步说明。 我不确定这是否会对您的案例有所帮助。 但关键是程序遇到了一些异常。 我无法解释为什么需要进行一些调试。 但这超出了我的专业知识范围。
我建议在 C2000论坛中开始新的主题。 那里的专家可以提供最好的帮助。
谢谢
Ki
有关如何在脚本控制台中打印文本的问题只是一个偶然的问题。 我刚刚将您的重播标记为"已恢复"、以标志重要的一步。
此帖子的主要目的是连接到 runnig 器件。 这还没有解决。 您能否通过将此主题转发给该领域的专家来运行此主题?
Devin 的帖子与我的想法没有太大关系。 有人提出了一些一般性问题、以使调试运行。
[引用用户="Ludwig Schlegel">此帖子的主要目的是连接到 runnig 设备。 这还没有解决。 您能否通过将此主题转发给此领域的专家来运行此主题?
这主要是什么问题? 是否要以非插入方式连接到目标(并使其保持运行)? 或者、当您连接并且目标停止时、是否会在上述意外位置停止?
您好!
我希望以非插入式方式连接到目标并使其保持运行。 n´t、如上所示、当我尝试执行此操作时、我不会获得正在运行的调试连接。 在屏幕截图中所示的状态下、器件仍处于运行状态。 但我n´t 获取调试信息。 我n´t 知道一些变量的值、但我看不到它们。
如何获得完全运行的调试连接?
而不是。 我只是注意到寄存器值已更新。 我在控制器上有一个切换引脚。 我可以看到"GpioDataRegs.GPADAT.bit.GPIO8"是如何切换的。 但所有变量都是零、不会更新。
路德维希
[引用 user="Ludwig Schlegel"]我希望以非插入式方式连接到目标并使其保持运行
默认情况下、CCS 将在连接时停止目标。 另请注意、GEL 启动文件中可能存在一些 GEL 操作、这些操作会在连接时停止目标。 要确保它是非侵入式连接、请执行以下操作:
1) 1)修改默认调试器行为以禁用连接时的自动停止:
如何从 DSS 执行此操作? 请参阅 :https://software-dl.ti.com/ccs/esd/documents/users_guide/sdto_dss_handbook.html#debugger-properties
2) 2)从目标连接中删除 GEL 文件: https://software-dl.ti.com/ccs/esd/documents/users_guide/gel/targetconfig.html
谢谢
Ki
您好!
感谢你的答复。
关于您的第一点:
我尝试了以下选项之一或组合:
debugSession.options.setBoolean("HaltOnConnect",false) debugSession.options.setBoolean("ClearBreakpointsOnLoad",true); debugSession.options.setBoolean("AutoRunToLabelOnRestart",false); debugSession.options.setBoolean("AutoRunToLabelOnReset",false); debugSession.options.setString("AutoRunToLabelName","");
但没有什么能帮助我。
关于您的第二点:
我n´t 移除 GEL 文件。 因为目标配置文件中没有 GEL 文件。 此信息位于 f280049.xml 中。 此文件位于 C:\ti\ccs920\ccs\ccs_base\con\targetdb\devices 中。
您说:"我建议在 C2000论坛中开始新的主题。 那里的专家可以提供最好的帮助。"
我做到了。 => https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/913519/3375704
路德维希
是的、删除 GEL 文件会有所帮助、因为 GEL 文件可以执行需要暂停 targetd 的所有类型的目标操作。
查看我在另一个主题中的回复、了解示例脚本和视频。
但斯克
Ki
好的、那么我们可能会将所有对话转换为新主题: https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/913519/3382908
´s 我和其他人阅读此内容更容易...