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.

[参考译文] 位字段有时与“注册”视图中的“注册”值不匹配

Guru**** 2582405 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1095887/bitfields-sometimes-don-t-match-register-value-in-register-view

您好,

CCS 11.1 使用F2837xD与XDS100v2。

在Register (寄存器)视图中将寄存器值扩展到其组成位字段后,位有时与值不匹配。 例如:

只有在单击刷新后,位才与寄存器值匹配:

另一个示例:

刷新后:

显然,从处理器获取的值是正确的,但在Register (配准)视图中不是位字段渲染。

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

    Kier

    这很奇怪。  在第二次捕获到最后一次捕获时,我还希望0x0006为黄色,并且如果位字段发生变化,则寄存器也会如此。

    例如,它应该如下所示:

    然后单击刷新后,我会看到完全没有黄色。

    我正在尝试看看我是否可以复制。  目前为止,我对28x主板的使用情况不是很顺利。  我有一台F2.8379万D LaunchPad,下周我会找到,也可能KI有一台。  

    这种情况是否持续发生,以便我可以获得您正在使用的项目并在我的LaunchPad上试用?  如果是这样,您可以通过私人消息发送该消息,并大致说明代码中的停止位置。

    此致,

    John

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

    谢谢John。 我会尝试用一个盲目的项目进行复制,并首先发送。

    hongda sun 说:
    在405.9257万在第二次到最后一次捕获中,我还会期待出现黄色[0x0006]

    如果寄存器值已更改,则会出现这种情况,但从我的OP中看不出来的是寄存器值未更改。 所有示例都是初始化时设置的寄存器并保持静态,因此我不会期望任何寄存器值单元格为黄色,实际上它们不是黄色。 我的屏幕截图中的某些位字段单元格为黄色,这一事实仅仅证实了新的位字段显示值已从不正确更改为正确,反之亦然。

    我推断,获取寄存器值并执行“寄存器视图”单元格着色的CCS/Eclipse代码工作正常。 仅更新位字段值的代码似乎是错误的。

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

    我找到了我的F2.8379万D LaunchPad。  还没有运气让它发生。  当您看到ODD状态时,核心是否已停止?  只是想知道这是否是实时访问发生的事情。

    John

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

    感谢您试用John。 我设法通过附加的修改的盲工程看到了问题。 我刚刚添加了一系列ePWM DriverLib调用来在CPU2中配置EPWM5。 我经常在实际项目中看到这个问题。

    我执行以下顺序:

    -重置核心组

    -重新启动Core组

    -恢复核心组。

    选择“注册”视图。

    -单击CPU2。 我在这里的期望是CPU2上下文中的所有寄存器都被采集一次。

    你可以看到我在以下发现了问题,比如,十个序列:

    刷新后:

    e2e.ti.com/.../blinky_5F00_pwm.zip

    我捕获了另一个略有不同的问题,即“注册”视图也与相同注册的表达式视图不同。 因此,有时可能出错的不仅仅是位字段。

    在这种情况下,"刷新"未解决此问题。 仅停止Core才强制注册视图正确更新。

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

    Kier

    感谢您的示例。  我现在正在尝试。

    需要记住的一件事可能是您看到的第二个问题,即如果您在运行时查看,则不会立即进行所有访问。   

    例如, 如果您在核心运行时执行某些操作来触发“寄存器”视图刷新(例如在调试视图中选择不同的核心,或单击“寄存器”视图中的刷新按钮),它将发出一系列读取请求。  在发出这些请求时,内核将继续运行,因此,变量和寄存器的值也将在请求开始处理和完成之间发生变化。

    这并不能解释第一个问题,因为这将是寄存器的1或2个读数,然后是对位字段显示的解释。  希望我能重现这一情况。

    John

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

    您好@Johns:

    问题的进一步证据。 请参阅随附的视频,了解我在使用实际项目时发生的问题。 您可以看到DACHVALS和DACHVALA位字段在其寄存器值(正确)保持静态时发生变化。 另请注意,RAMPSOURCE位字段也会受到影响。

    您可以想象,这在调试时非常分散注意力。

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

    Kier

    感谢您观看视频。  了解实际发生的情况很有帮助。  这个位字段改变了,但寄存器却改变了,这真的很奇怪。  因此,您的预期是,当此应用程序运行时,DACHVALS或DACHVALA都不会发生变化?

    让我将此视频发送给其他人。  基于此,他们可能会尝试与调试器日志关联,以查看实际读取的内容。

    此致,

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    hongda sun 说:
    因此406.6858万因此您的期望是DACALLS或DACALHVA在运行时没有变化?

    正确。 当我调试CMPSSS7的问题时,这些寄存器具有固定值。 注意,但是程序每10秒向DACHVALS连续写入一次,尽管具有相同的值。 登记册将按这一频率更新,以充分应用。 我提到这点,如果是与问题有关的话,但也请记住,这个盲目的工程也显示了问题,与运作的频度完全不一样。

    我认为我们现在有足够的证据来细化问题陈述,如下所示:"在Register (注册)视图中,位字段偶尔会重置"。

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

    谢谢。  如果寄存器写入到的值相同,则不应影响事物。  我会在有需要时记下这点。

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

    顺便说一下,在表达式视图中监视相同寄存器的方式不相同,因此我将其用作一种变通办法。

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

    Kier

    我已提交问题以跟踪此情况。  外部系统不会显示所有捕获的详细信息,但您可以使用ID查看状态。

    https://sir.ext.ti.com/jira/browse/EXT_EP-1.0822万

    此致,

    John