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.
我们刚刚设置了一个链接到 CCS 实例的 DSS 测试服务器。 使用来自 DSS 客户端的 writeData 设置标志时、CCS 暂停。 但是、当我们使用 CCS 设置该标志时、它不会暂停。 有什么想法导致了这种情况?
谢谢
斯蒂芬
"CCS 暂停"是什么意思? 您是说目标在写入发生时停止吗?
我们正在使用的 MCU 是 TMS320F28335。 调试器为 XDS100V3。 如果您需要更多信息、请告诉我。
此器件支持实时模式、默认情况下应允许实时存储器访问。 写入 eData 时、目标是保持停止还是临时停止、然后目标在之后快速恢复?
我无法重现此行为。 运行测试服务器时、我启动了 IDE、并且在发出 writeData 命令时未看到目标停止。 数据写入成功、目标从不会停止。 我确实使用了不同的器件、但行为不应因器件而异。
查看我的视频示例:
我的 writeData 命令只是将值"2"写入地址0x20000300。 您可以看到、当值写入时(和写入后)、目标仍在运行。
除了启动 IDE 的调用之外、您是否对 TestServer 脚本进行了任何其他修改?
您是否能够在 writeData 命令执行后通过 Rhino 单步执行测试服务器脚本、并查看目标是否在命令执行后立即停止?
更改的目录项与我们的目录项匹配、因此我们加载了.out 文件。 我明天下午会再次检查一下、然后再回到您的身边。
更改目录条目以匹配我们的,因此我们加载了.out 文件。
这些更改不是对 TestServer.js 进行的,对吗?
可能是调用 TestServer.js 的 test_server.js、但我无法访问实验室 ATM。 我明天会检查并确认。
此外、请检查当您像在我的视频中一样执行命令时越过 js 源代码行会发生什么情况。 然后、查看目标是否停止。
随附的是该问题的视频。 请注意、我们使用批处理文件来设置各种脚本/代码。 请注意、在视频中、一旦我们运行了服务器、python 代码就会调用一个将我们的程序加载到器件内存中的简短 javascript 文件。 稍后、当我们写入标志(将值从0更改为1)时、程序将暂停、我们必须点击左上角的"恢复"。
附件为该问题的视频。 [/报价]好的、本视频中还会发生一些事情。 我需要一些时间来讲解。
请注意、这是一个假期、办公室关闭。 我会在下星期的某个时候试着去看看这件事。
您是否也可以尝试将 writeData 命令添加到 perl_load_program.pl、看看这是否也会导致目标停止?
如果我从 perl_load_program.pl 写入、值会发生变化、但程序不运行。 如果在写入前在脚本中添加运行命令、该值将无法写入、也无法在脚本中或通过调用其他值来写入任何其他值。 这里是事情变得陌生的地方。 我在没有运行或写入的情况下运行加载程序脚本、但从 CCS 点击"运行"、我可以根据需要多次写入值、但会暂停、并且我必须在每次写入后点击"恢复"。 我可能会尝试稍后运行异步,看看这是否会产生影响。
下面是代码:
我尝试了与上述类似的客户端脚本、但仍然无法重现问题。 writeData 不会停止目标。 对我来说、我设置了超时设置、以便同步运行返回。 然后、后续 writeData 命令可正确执行、而无需停止目标。
能让 Rhino 调试器正常工作吗? 当您观察到目标暂停时、查看 js 服务器脚本中具体的行位于哪个位置将非常有用。
是的、我们一直在使用调试器。 仍然不清楚程序为什么在执行命令后停止。 您是否有时间可能设置缩放会议?
是的,我们一直在使用调试器。 仍然不清楚为什么程序在执行命令后停止。
您知道停止发生在哪条线路上吗? 它与我的视频中的线路是相同的吗?
您有时间可能设置缩放会议吗?
我下周可能会有一些时间。 我会告诉你
另一个注意事项是、我们开发了 python 客户端示例。 我记得您对纯 python 客户端实施感兴趣。 如果希望试用、可以将随附的 zip 文件解压到 DSS TestServer 文件夹中。 与 perl 示例类似、有一个客户端脚本示例和一个利用的 DSSClient.py 文件。
python 代码比 perl 代码效果更好。 当我们运行脚本并在使用 RPC 命令(run 或 runASYNC)加载程序后运行程序时、该程序将不接受来自客户端的写入。 如果我们从打开的 CCS 控制台手动运行程序、它将接受写入命令、并且不会像 perl 脚本那样停止执行。
有什么想法、为什么从 CCS 运行我们的程序的行为与我们尝试使用客户端命令运行程序的行为不同?
有没有人知道为什么从 CCS 运行我们的程序的行为与尝试使用客户端命令运行程序时不同?
在支持实时存储器存取的器件上、调试器 通常能够 以非插入方式存取存储器。 在一些特殊情况下、存储器访问会被阻止。 例如、当在代码的关键段中时、在状态/控制寄存器中设置 DBGM (调试屏蔽)位将阻止访问。 但在您的环境中可能不是这种情况。
您是否从调试器收到有关写入尝试被阻止的消息?