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.

[参考译文] DSS writeData 命令

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1211781/dss-writedata-command

主题中讨论的其他器件:TMS320F28335

我们刚刚设置了一个链接到 CCS 实例的 DSS 测试服务器。  使用来自 DSS 客户端的 writeData 设置标志时、CCS 暂停。  但是、当我们使用 CCS 设置该标志时、它不会暂停。  有什么想法导致了这种情况?

谢谢

斯蒂芬

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid="556813" url="~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1211781/dss-writedata-command 通过 DSS 客户端使用 writeData 来设置标志时、CCS 暂停

    "CCS 暂停"是什么意思? 您是说目标在写入发生时停止吗?

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

    是的。  它会停止。

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

    您使用的是什么器件?  

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

    我们正在使用的 MCU 是 TMS320F28335。 调试器为 XDS100V3。 如果您需要更多信息、请告诉我。

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

    此器件支持实时模式、默认情况下应允许实时存储器访问。 写入 eData 时、目标是保持停止还是临时停止、然后目标在之后快速恢复?  

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

    它保持停止状态

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

    我无法重现此行为。 运行测试服务器时、我启动了 IDE、并且在发出 writeData 命令时未看到目标停止。 数据写入成功、目标从不会停止。 我确实使用了不同的器件、但行为不应因器件而异。

    查看我的视频示例:

    e2e.ti.com/.../testserver.mp4

    我的 writeData 命令只是将值"2"写入地址0x20000300。 您可以看到、当值写入时(和写入后)、目标仍在运行。

    除了启动 IDE 的调用之外、您是否对 TestServer 脚本进行了任何其他修改?

    您是否能够在 writeData 命令执行后通过 Rhino 单步执行测试服务器脚本、并查看目标是否在命令执行后立即停止?  

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

    更改的目录项与我们的目录项匹配、因此我们加载了.out 文件。  我明天下午会再次检查一下、然后再回到您的身边。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更改目录条目以匹配我们的,因此我们加载了.out 文件。

    这些更改不是对 TestServer.js 进行的,对吗?

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

    可能是调用 TestServer.js 的 test_server.js、但我无法访问实验室 ATM。  我明天会检查并确认。

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

    此外、请检查当您像在我的视频中一样执行命令时越过 js 源代码行会发生什么情况。 然后、查看目标是否停止。

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

    随附的是该问题的视频。  请注意、我们使用批处理文件来设置各种脚本/代码。  请注意、在视频中、一旦我们运行了服务器、python 代码就会调用一个将我们的程序加载到器件内存中的简短 javascript 文件。  稍后、当我们写入标志(将值从0更改为1)时、程序将暂停、我们必须点击左上角的"恢复"。   

    e2e.ti.com/.../Coshatt_5F00_DSS_2D00_Issue.mp4

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

    附加的是 javascripts。   Rhino 有一些问题。  似乎存在许可问题、正在与我们的学校 IT department.e2e.ti.com/.../Coshatt_2D00_Files.zip 进行协调

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    附件为该问题的视频。  [/报价]

    好的、本视频中还会发生一些事情。 我需要一些时间来讲解。

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

    请注意、这是一个假期、办公室关闭。 我会在下星期的某个时候试着去看看这件事。

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

    您是否也可以尝试将 writeData 命令添加到 perl_load_program.pl、看看这是否也会导致目标停止?

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

    如果我从 perl_load_program.pl 写入、值会发生变化、但程序不运行。  如果在写入前在脚本中添加运行命令、该值将无法写入、也无法在脚本中或通过调用其他值来写入任何其他值。  这里是事情变得陌生的地方。  我在没有运行或写入的情况下运行加载程序脚本、但从 CCS 点击"运行"、我可以根据需要多次写入值、但会暂停、并且我必须在每次写入后点击"恢复"。  我可能会尝试稍后运行异步,看看这是否会产生影响。

    下面是代码:

    开始
      #添加@INC 路径 DSSClient 模块所在的目录。
      #push ("/Users/by51849/workspace_v12/Control_ACIM_F28335_v1 /"、"DSS");
    }
    使用严格的;
    使用警告;
    使用 DSSClient;



    my $client = new DSSClient ("127.0.1"、4444);
    我的$cmd = UNDEF
    我的$RESULT = UNDEF

    #连接到 CCS json 服务器。
    $CLIAL->OPEN()

    向 DSS 测试服务器发送命令
    #----------------

    #连接到目标。
    $cmd ={
      "name"=>"connect"
    };
    execut_command ($cmd);

    #将程序加载到内存
    $cmd ={
      "name"=>"load"
      "program"=>"C:/TestBed/Control_ACIM_F28335_v1/Debug/Control_ACIM_F28335_v1.out
    };
    execut_command ($cmd);

    $cmd ={
      "name"=>"run"
    };  
    execut_command ($cmd);

    #向内存写入32位值
    $cmd ={
      "name"=>"writeData"
      "page"=> 0、
      "地址"=> 0x0000C00C、
      "Value"=> 1、
      "typeSize"=> 32、
    };
    execut_command ($cmd);

    #我们现在已经完成了。
    #$CLIAL->CLOSE();

    #执行命令
    执行命令
      $result =$client->execute ($_[0]);
      
      如果(定义的$result){
        打印"$_[0]{name}:"$Result->{"status"}"\n";  
        #如果有消息,请打印它
        如果(存在$result ->{"message"}){      
          打印" 消息:"$Result->{"message"}"\n";
        }
        #如果返回值,请打印它
        如果(存在$result ->{"value"}){      
          打印" 值:"$Result->{"value"}。 "\n";
        }
      }其他{
        打印"$_[0]{name}执行失败\n";
      }
    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试了与上述类似的客户端脚本、但仍然无法重现问题。 writeData 不会停止目标。 对我来说、我设置了超时设置、以便同步运行返回。 然后、后续 writeData 命令可正确执行、而无需停止目标。

    能让 Rhino 调试器正常工作吗? 当您观察到目标暂停时、查看 js 服务器脚本中具体的行位于哪个位置将非常有用。  

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

    是的、我们一直在使用调试器。  仍然不清楚程序为什么在执行命令后停止。  您是否有时间可能设置缩放会议?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我们一直在使用调试器。  仍然不清楚为什么程序在执行命令后停止。

    您知道停止发生在哪条线路上吗? 它与我的视频中的线路是相同的吗?

    您有时间可能设置缩放会议吗?

    我下周可能会有一些时间。 我会告诉你

    另一个注意事项是、我们开发了 python 客户端示例。 我记得您对纯 python 客户端实施感兴趣。 如果希望试用、可以将随附的 zip 文件解压到 DSS TestServer 文件夹中。 与 perl 示例类似、有一个客户端脚本示例和一个利用的 DSSClient.py 文件。

    e2e.ti.com/.../3872.TestServer.zip

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

    明天早上试一下。

    谢谢

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

    python 代码比 perl 代码效果更好。  当我们运行脚本并在使用 RPC 命令(run 或 runASYNC)加载程序后运行程序时、该程序将不接受来自客户端的写入。  如果我们从打开的 CCS 控制台手动运行程序、它将接受写入命令、并且不会像 perl 脚本那样停止执行。

    有什么想法、为什么从 CCS 运行我们的程序的行为与我们尝试使用客户端命令运行程序的行为不同?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有没有人知道为什么从 CCS 运行我们的程序的行为与尝试使用客户端命令运行程序时不同?

    在支持实时存储器存取的器件上、调试器 通常能够 以非插入方式存取存储器。 在一些特殊情况下、存储器访问会被阻止。 例如、当在代码的关键段中时、在状态/控制寄存器中设置 DBGM (调试屏蔽)位将阻止访问。 但在您的环境中可能不是这种情况。

    您是否从调试器收到有关写入尝试被阻止的消息?