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/LAUNCHXL2-570LC43:DSS、CCS 编程和写入/读取寄存器值

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/652166/ccs-launchxl2-570lc43-dss-ccs-program-and-writing-reading-register-values

器件型号:LAUNCHXL2-570LC43

工具/软件:Code Composer Studio

好的、我有一个 lucnxl2-570lc43、我尝试通过 DSS (调试服务器脚本)组织数据交换、wen launchpad 和我的 PC。  (想法是:debugSession.writeReg (val、"registerName")-> launchpad 读取它、然后写入另一个寄存器-> dss.readRegister ("registerToReadName")-从第二个寄存器读取数据、所有数据都在这里和那里的无限循环中)

我找到了一些寄存器、在其中写入了值、但 launchpad 不会读取它们。 我编写的代码告诉我、就像 DSS 不对寄存器进行更改一样(我知道、当我通过 DSS 写入寄存器、并且它们通过 DSS 读取寄存器以及更改值时、就是这样)。

当我更改闪存以测试是否可以通过 LaunchPad 本身写入和读取寄存器时、一切都正常。 (这说明我的代码确实读取了寄存器值)。

CCS 中的代码部分如下所示:

while (int i=0){

i=registerRead ();//因为寄存器中的值在开始时始终为0

因此,该代码不会对 DSS 做出反应,并且它始终在我使用 debugSession.writeRegister()时的周期中。

可以帮帮我吗?

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

    您好!

    如果我理解正确:

    DSS 脚本将值写入寄存器

    launchpad 上的-Code 读取该代码、然后将值写入第二个寄存器

    DSS 脚本读取第二个寄存器

    您要做的应该是有效的。 寄存器是什么?  

    [引用 user="Roman Kossiy">我找到了一些寄存器、在其中写入了值、但 launchpad 只是不读取它们。 我编写的代码告诉我、就像 DSS 不在寄存器中进行更改一样

    您是如何验证的? 您是否遇到任何错误或您的 Launchpad 代码返回的寄存器值与 DSS 脚本设置的值不同?

    一个小型、可重现的测试案例也会很有帮助。 此外、请指定您正在使用的 CCS 版本

    谢谢

    Ki  

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

    -DSS 写入值,是(也读取)。 当我写入并读取该精确寄存器时、值是相同的)

    -launchpad 上的代码不读取 DSS 写入的值。

    -DSS 写入和读取两个寄存器。

    launchpad 上的代码写入和寄存器,但仅当我更改了 code composer 代码中的值时(我测试了它).... 并读取它们

    但是、当我通过 DSS 更改值时、launchpad 中的代码不会对寄存器更改做出反应。


    代码应如何工作:首先、DSS 读取 reg1、列印 val、然后我写入 reg writeRegister (reg2、val);launchpad 中的代码应读取此 reg2、退出此无限循环

    while (int i=0){i=registerRead (reg2);//因为寄存器中的值在开始时始终为0}

    并将该 val 写入 reg1。 然后 DSS 中的循环再次启动、DSS 再次读取 reg1。

    但问题是、通过 DSS 读取的 reg1中的值始终为0。 这意味着 launchpad 会将 reg2上的 val 视为0、并且它始终位于上面写入的循环中。

    我使用 CCSv7
    感谢您的回应:)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否为目标上运行的应用程序提供 DSS 脚本以及示例项目? 这两个版本都可以是原稿的拆卸版本(实际上是首选版本)、只要问题可以重现。

    请注意、这里是假日季、许多人(包括我自己)外出度假、因此我提前为论坛回复速度慢而道歉

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

    [引用用户="Ki-Soo Lee "]

    请注意、这里是假日季、许多人(包括我自己)外出度假、因此我提前为论坛回复速度慢而道歉

    [/报价]

    我明白,没有问题,很抱歉打扰到这段时间:)

    [引用用户="Ki-Soo Lee "]

    您能否为目标上运行的应用程序提供 DSS 脚本以及示例项目? 这两个版本都可以是原稿的拆卸版本(实际上是首选版本)、只要问题可以重现。

    [/报价]

    DSS 和 CCS 代码(使用 Java、无异常或错误)

    (无法加载文本代码、论坛错误、这就是我将使用图像的原因)




     

    该程序的输出为:  

    从 Launchpad 999获取数据

    值326已写入 L2ramw_AddrVectTstReg

    从 Launchpad 999获取数据

    值514已写入 L2ramw_AddrVectTstReg

    第二个寄存器的地址和他的名字是正确的、我检查了它

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

    等待回复、只是为了确保)

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

    解决了。

    我每次 需要保存更改时都要关闭 debugSession、这解决了我的问题。

    while (true)


    debugSession.target.connect();

    debugSession.memory.ReadData (0、readBufferReg、32);
    debugSession.memory.writeWord (0、writeBufferReg、RandomValue);

    debugSession.target.disconnect();
     thread.Sleep (1000);


    根据我的理解、打开 debugSession 会停止执行 launchpad 的算法。