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 时、它必须处于调试范围内。
你好 Ki 感谢更新
但对于 Jython、Address 不会被视为用于获取确切存储器地址和设置断点的变量。 因此、在这种情况下、我需要将 address 视为变量可以提供 Jython 脚本来设置该变量。
大家好、ki 我们还有更多关于 Jython 脚本的问题
我们能否将电话会议与团队联系起来、以便我们也能够快速澄清我们的疑问?
您可以在源代码行或地址上设置断点。 您可以查找符号的地址。 "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 端口号!
我们能否获得安装在本地 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()
使用*。out 文件将会有所帮助。 您能给我提供一下吗? 如果您愿意、可以通过专有 E2E 消息发送。 只需进行 zip 压缩、然后拖动以编辑框以附加
我已经在您的私人消息中共享了 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 项目?
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
现在我们关闭该主题帖、您可以根据需要创建新主题帖。
谢谢
小