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.
在 main.c flie 程序中、我需要 通过 DSS 脚本语法读取变量的地址。 请建议读取变量地址的语法。
例如、我的 main.c 程序
空 main (void)
{
INT A=2;
INT b=5;
INT I;
i=a+b;
}
在读取符号的地址期间、我们可以使用以下语法:
//获取该符号的地址
var address = debugSession.symbol.getAddress ("main")
五颗星 与我需要的内容类似 //获取该 变量的地址
请参阅 DSS 的 API 文档:
您好 Govinda:
对于此类主题、我们没有直接指定的专家、因此请让我花点时间看看我能否找到更熟悉 DSS 的人。
此致、
阿米尔·奥马尔
在读取符号的地址期间、我们可以使用以下语法:
//获取该符号的地址
var address = debugSession.symbol.getAddress ("main")五颗星 与我需要的内容类似 //获取该 变量的地址
[/报价]您可以使用相同的 API 来获取变量的地址。
请注意、变量"a"、"b"和"i"均为示例中的局部变量。 因此、在尝试获取变量的地址时、这些变量需要处于范围内。
谢谢
小
HII
我遇到了有关 DSS 脚本的查询。
概述
我们正在尝试从 ECU 测试工具中自动执行 DSS 脚本(读取或写入软件变量)
ECU 测试工具不具有自动执行 DSS 脚本的直接兼容性、因此我们尝试使用 LabVIEW 或 Python 界面来创建 DSS 脚本
我们需要两个查询支持
1. DSS 脚本应持续运行以读取和写入软件变量。
2如何从 Python 或 LabVIEW 中将数据传递到 DSS 脚本?
谢谢!
1. DSS 脚本应持续运行以读取和写入软件变量。 [/报价]请解释您的确切用例。 您是否希望脚本在目标运行时持续读取/写入变量?
2如何从 Python 或 LabVIEW 将数据传递到 DSS 脚本?我对 LabVIEW 没有任何经验、因此无法对此进行评论。 但可以将 python 与 DSS 一起使用:
https://software-dl.ti.com/ccs/esd/documents/dss_python_dss_scripting.html
[/quote]
hii ki
1.是的,在目标运行时不断执行脚本以读写变量,您可以详细解释一下吗?
2.谢谢我们来研究一下。
1. 是的、在目标运行时持续执行脚本以读取和写入变量、您可以详细解释一下吗? [/报价]C2000默认支持实时存储器访问。 因此、DSS 脚本可以异步运行程序、然后继续进行 memory.read 和 memory.write 调用以在目标运行时访问内存。
HII Ki 感谢您的确认
我们在 Jython 中还有其他查询
我们正在尝试运行 Jython 脚本、可以 设置环境变量、设置文件位置(ccxml、.out 文件)来运行脚本、但当在脚本中设置断点时、输出中的内存地址未显示为正数(与我们预期的相反)。 我在前面提到了断点脚本、
#设置断点
address = debugSession.symbol.getAddress ("ReadNextData")
BP = debugSession.breakpoint.add(address)
您能说明一下这个脚本和解决方案吗?
谢谢
#设置断点
address = debugSession.symbol.getAddress ("ReadNextData")
BP = debugSession.breakpoint.add(address)
[/报价]这个执行是没有问题的。 请记住、要获取"ReadNextData"的正确地址、调用 getAddress API 时、它必须处于调试范围内。
您可以在源代码行或地址上设置断点。 您可以查找符号的地址。 "ReadNextData"是一个函数(不是变量)、因此示例是获取函数 start 的地址并在其中设置断点。
请说明您具体要做什么。 您究竟是在哪里设置断点?
HII Kii
实际上我们需要 基于断点的 Jython 脚本、这些断点已经过修改、我们试图执行但目前无法正常运行、您可以提供这种脚本吗?
Jython 断点代码
从 java.lang 导入*
从 java.util 导入*
从 com.ti.debug.engine.scripting 导入*
来自 com.ti.ccStudio.scripting.environment 导入*
#创建我们的脚本环境对象-它是任何脚本的主要入口点,
#创建其他可脚本服务器和会话的工厂
脚本= ScriptingEnvironment.instance ()
#在当前目录中创建日志文件以记录脚本执行
script.traceBegin ("BreakpointsTestLog_python.xml"、"DefaultStylesheet.xsl")
#设置超时
script.setScriptTimeout(15000)
#记录所有内容
script.traceSetConsoleLevel (TraceLevel.all)
script.traceSetFileLevel (TraceLevel.all)
#获取调试服务器并启动调试会话
debugserver = script.getServer ("DebugServer.1")
debugServer.setConfig("C:\\ti\\ccs1240\\ccs\\eclipse\\workspace\\LaunchpadC2000\\targetConfigs\\TMS320F28027.ccxml");
debugSession = debugServer.openSession ("*"、"*")
debugSession.target.connect()
#加载程序
#脚本环境有一个工作文件夹的概念和所有的 API ,这些 API
#路径名作为参数,您可以传递相对路径或绝对路径)
debugSession.memory.loadProgram ("C:\\ti\\ccs1240\\ccs\\eclipse\\workspace\\Launchpadc2000\\Debug\\Launchpadc2000.out")
#设置断点
address_main = debugSession.symbol.getAddress ("main")
BP = debugSession.breakpoint.add(address)
#检查程序的状态
print ("a:"、debugSession.expression.evaluate ("a"))
#Run 如果未在 main 处自动停止。 应在第一个 BP 处停止
if (debugSession.expression.evaluate ("PC")!=地址):
script.traceWrite ("PC 值等于主值。")
其他:
script.traceWrite ("PC 值不等于主值。")
#运行目标。 应该在断点处停止。
debugSession.target.run()
#使用表达式获取当前的 PC 值
NPC = debugSession.expression.evaluate ("PC")
#Verify 我们在正确的地址停止。
如果(NPC ==地址):
script.traceWrite ("成功:在正确的位置停止")
其他:
script.traceWrite ("Fail:Expected halt at 0x"+ long.toHexString (address)+"、实际在0x"+ long.toHexString (NPC))停止
script.traceSetConsoleLevel (TraceLevel.info)
script.traceWrite ("测试失败!")
script.traceEnd()
system.exit(1);
#全部已完成
#debugSession.target.disconnect();
#debugSession.terminate()
#debugServer.stop()
script.traceSetConsoleLevel (TraceLevel.info)
script.traceWrite ("测试成功!")
debugSession.target.run()
#停止日志记录并退出。
script.traceEnd()
您还可以给我"LaunchpadC2000.out"可执行文件吗? 我将尝试从头开始运行脚本、看看我是否遇到任何问题。
我无法 在此聊天框中更新.out 文件 Ki
您只需将文件拖放到编辑框即可。
如果问题与隐私有关、您可以通过 E2E 私人消息进行发送
你好,kii
我们需要将 CCS 工具与用于自动化的 ECU 测试工具 tractics 一起实施
能 与 ECU 测试工具集成并提供最佳方法
因为 CCS 不与 ECU 测试工具直接兼容
我们需要将 CCS 工具与用于自动化的 ECU 测试工具 tractics 一起实施
能 与 ECU 测试工具集成并提供最佳方法
因为 CCS 不与 ECU 测试工具直接兼容
[/报价]我没有 ECU 测试工具的相关经验、因此无法对此提供任何见解。
我们能否获得安装在本地 PC 中的 CCS 工具的 TCP 端口号!
此信息的用途是什么?
HII Kii
在通过 DSS 脚本调试和写入 CCS 变量期间、.out 文件不会更新。
但在使用 CCS 工具进行手动调试和写入期间、.out 文件将更新为
请尽快澄清疑问!
DSS 调试和编写脚本如下所示。
//将 DSS 软件包导入我们的命名空间以在键入时保存
正在导入软件包(Packages.com.ti.debug.engine.scripting)
正在导入软件包(Packages.com.ti.ccstudio.scripting.environment)
导入软件包(Packages.java.lang)
//创建我们的脚本环境对象-它是任何脚本的主要入口点,
//创建其他可脚本服务器和会话的工厂
var script = ScriptingEnvironment.instance ()
//在当前目录中创建日志文件以记录脚本执行
script.traceBegin ("BreakpointsTestLog.xml"、"DefaultStylesheet.xsl")
//设置超时
script.setScriptTimeout(15000)
//记录所有内容
script.traceSetConsoleLevel (TraceLevel.all)
script.traceSetFileLevel (TraceLevel.all)
//获取调试服务器并启动调试会话
debugserver = script.getServer ("DebugServer.1")
debugServer.setConfig("C:\\ti\\ccs1240\\ccs\\eclipse\\workspace\\LaunchpadC2000\\targetConfigs\\TMS320F28027.ccxml");
debugSession = debugServer.openSession ("*"、"*")
debugSession.target.connect();
//加载程序
//(脚本环境有一个工作文件夹的概念,并且对于所有将
//路径名作为参数,您可以传递相对路径或绝对路径)
debugSession.memory.loadProgram ("C:\\ti\\ccs1240\\ccs\\eclipse\\workspace\\Launchpadc2000\\Debug\\Launchpadc2000.out")
script.traceSetConsoleLevel (TraceLevel.info)
Script.traceWrite ("调试会话已启动!!!!!!! ")
VAR BP1 = debugSession.breakpoint.add('main.c',11);
debugSession.target.run()
var address = debugSession.symbol.getAddress ("A")
var address2 = debugSession.symbol.getAddress ("b")
script.traceSetConsoleLevel (TraceLevel.info)
script.traceWrite (地址)
script.traceWrite (addresss2)
script.traceWrite ("地址已读取!!!!!!! ")
//写入数据
debugSession.memory.writeData (Memory.Page.program、address、[0x02]、16)
//写入数据
debugSession.memory.writeData (Memory.Page.program、address2、[0x05]、16)
script.traceWrite ("写入的值!!!!!! ")
//全部完成
debugSession.target.disconnect();
debugServer.stop()
我已经在您的私人消息中共享了 Java 脚本,请检查。
另一个支持。
您能为 DSS 提供 Java 脚本库包吗?我们需要使用 ECU 测试工具实现自动化,使用这些 Java 脚本包在 ECU 测试工具中实现库吗? 它将会很有帮助。
HII kii 我在您的私信中共享了 Java 脚本请检查。
我将在这里回答。
提供 Java 脚本库包您可以为 DSS
有:
感谢您发送编修。
从您身边再提供一个支持
您能否在 LabVIEW.vi 中提供闪存程序。
您可以在 LabVIEW.vi 中提供闪存程序。 [/报价]对不起、我不知道 LabView 的任何信息。
HII Kee 感谢更新
目前我使用的是 XDS 200 JTAG 仿真器、目标是 TMDSEMU200-U、但使用 XDS 200调试探针目标创建新项目时未显示也未显示。 我在下面附上了图片。 请尽快回复!
"target"是指您使用的器件、而不是调试探针(称为"连接")
HII Kii
在通过 DSS 脚本调试和写入 CCS 变量期间、.out 文件不会更新。
但在使用 CCS 工具进行手动调试和写入期间、.out 文件将更新为
请尽快澄清疑问!
DSS 调试和编写脚本如下所示。
//将 DSS 软件包导入我们的命名空间以在键入时保存
正在导入软件包(Packages.com.ti.debug.engine.scripting)
正在导入软件包(Packages.com.ti.ccstudio.scripting.environment)
导入软件包(Packages.java.lang)//创建我们的脚本环境对象-它是任何脚本的主要入口点,
//创建其他可脚本服务器和会话的工厂
var script = ScriptingEnvironment.instance ()//在当前目录中创建日志文件以记录脚本执行
script.traceBegin ("BreakpointsTestLog.xml"、"DefaultStylesheet.xsl")//设置超时
script.setScriptTimeout(15000)//记录所有内容
script.traceSetConsoleLevel (TraceLevel.all)
script.traceSetFileLevel (TraceLevel.all)//获取调试服务器并启动调试会话
debugserver = script.getServer ("DebugServer.1")
debugServer.setConfig("C:\\ti\\ccs1240\\ccs\\eclipse\\workspace\\LaunchpadC2000\\targetConfigs\\TMS320F28027.ccxml");
debugSession = debugServer.openSession ("*"、"*")
debugSession.target.connect();//加载程序
//(脚本环境有一个工作文件夹的概念,并且对于所有将
//路径名作为参数,您可以传递相对路径或绝对路径)
debugSession.memory.loadProgram ("C:\\ti\\ccs1240\\ccs\\eclipse\\workspace\\Launchpadc2000\\Debug\\Launchpadc2000.out")
script.traceSetConsoleLevel (TraceLevel.info)
Script.traceWrite ("调试会话已启动!!!!!!! ")VAR BP1 = debugSession.breakpoint.add('main.c',11);
debugSession.target.run()
var address = debugSession.symbol.getAddress ("A")
var address2 = debugSession.symbol.getAddress ("b")script.traceSetConsoleLevel (TraceLevel.info)
script.traceWrite (地址)
script.traceWrite (addresss2)
script.traceWrite ("地址已读取!!!!!!! ")//写入数据
debugSession.memory.writeData (Memory.Page.program、address、[0x02]、16)//写入数据
debugSession.memory.writeData (Memory.Page.program、address2、[0x05]、16)script.traceWrite ("写入的值!!!!!! ")
//全部完成
[/报价]
debugSession.target.disconnect();
debugServer.stop()感谢您的输出文件。 我能够运行上面的脚本。 它似乎完美地运行。 在调试模式下运行脚本时、可以看到"a"和"b"的变量分别使用正确的值2和5写入(双击图像以显示全尺寸):
您是说在运行脚本时没有看到这种情况吗?
是的、Kii 在运行 DSS 脚本.out 文件时未更新、但在手动测试中.out 文件正在更新。
你好,Kii 感谢更新!
如何在 Code Composer Studio 中设置 TMDSEMU200-U 目标 CCS 项目?
Unknown 说:DSS script .out 文件未更新
这到底意味着什么? 当我运行您的 DSS 脚本时、从我的角度来看、它运行得很好。 我不明白哪里有问题。
如何在 Code Composer Studio 中设置 TMDSEMU200-U 目标 CCS 项目?
在"Connection"下、如下所示:
你好、Kii
在手动调试.out 文件时其更新、我们可以在工作区的调试文件夹中看到 update .out 文件
在 Debug Server Scripting (DSS)中、我们在命令提示符执行中成功完成、但在执行 DSS 执行时.out 文件未在调试文件夹中更新
请帮助解决此问题。
,但执行 DSS 时.out 文件未在调试文件夹中更新 [/报价]再说一次、我不明白这意味着什么!
为什么要更新.out 文件? 我只需由 CCS 加载。
DSS 脚本仅在文件中工作。
在手动调试.out 文件时其更新,我们可以在工作区的调试文件夹中看到更新.out 文件
或许视频有助于解释您的期望。 我想看看您所说的"在调试文件夹中查看 update .out 文件"的含义
嗨、Kee、我有疑问
在 Code Composer Studio 中手动设置断点时,我们可以找出断点时间(例如执行所需的时间为毫秒)。
在 code composer studio 中手动设置断点时,我们是否能够找出断点时间(例如执行所需的时间(以毫秒为单位)
请注意、此问题与原始问题完全无关。
我们建议您为新主题创建新主题。
我现在将回答这个问题、但下次请创建新主题。
至于您对基准测试的问题、我建议使用配置文件时钟:
https://dev.ti.com/tirex/explore/node?node=A__ACh7aaTRwDWC-8ORL0EHMg__ccs_devtools__FUz-xrs__LATEST
现在我们关闭该主题帖、您可以根据需要创建新主题帖。
谢谢
小