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.

[参考译文] TMS320F28388D:特殊的执行问题

Guru**** 2606725 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1002605/tms320f28388d-peculiar-execution-issue

器件型号:TMS320F28388D

各位专家、您好!

我有一个特殊的问题。

我有两组代码片段。 一个用于读取原始 ADC 数据、另一个用于根据提供的计算将读取的 ADC 计数转换为校准值。

我注意到的问题是、当我步入并执行代码时、我会看到执行校准的数学运算。 然而、当同样的作为独立运行时、校准值显示为0。

这个问题不一致、只在特定软件中发生、但是软件之间的代码中断没有变化。

此致、

Mohan

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

    大家好、Mohan、

    您如何控制何时读取 ADC 结果?  是否确定在独立情况下、代码 在继续执行校准之前已等待 ADC 结果首次可用?  

    每次新结果可用时、代码是否会从寄存器读取一次 ADC 结果?  代码是否记录校准片段的输入内容?   

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

    ADC 每50微秒准备就绪、由 PWM 触发。

    我看到 ADC 计数正在填充。 但是、从计数计算模拟的下一行代码显示为0。

    数学代码正在使用 ADC 结果变量、在某些项目中、它正在工作、在少数项目中、我看到它不工作。

    不确定从何处开始调试此类问题。

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

    大家好、Mohan、

    我将其分成两部分: 计算代码和代码输入。  对于计算、重点是确保在给定不同输入的情况下结果正确。  对于代码的输入、请确保在正确的时间填充 ADC 结果变量并获得正确/预期的结果。   

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

    我找到了一个原因。 这种情况发生在内核2中

     我的中间 值为零、我发现了下面列出的原因

    如果结构体有数据、则将数据从闪存结构体复制到 RAM 结构体

    再次将 RAM 结构复制到另一个本地 RAM 结构、一次位于主程序中

    当独立执行时、第二个副本在 main 中不起作用。

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

    大家好、Mohan、

    [引用 userid="463781" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1002605/tms320f28388d-peculiar-execution-issue/3704930 #3704930"]在 main 中再次将 RAM 结构复制到另一个本地 RAM 结构[/引用]

    您如何处理数据以及源地址和目标地址是什么? 您之前还提到过、问题不一致、是随机的? 是这样的情况、还是您现在有一个始终失败的代码?

    此致、

    Vivek Singh

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

    我们有参数数据项、保存在其中一个扇区中。 从该扇区中、我们将其复制到 RAM、然后在应用中使用。

    当我在运行时循环中复制数据时、数据可用。

    我将尝试重新创建一个简单的项目来重现问题并返回给您。

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

    谢谢 Mohan。 将等待示例项目。 如果示例工程不依赖于外部输入、则可以轻松运行(如果可能)。

    此致、

    Vivek Singh

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

    您好、Vivek、

    我进行了详细分析、以了解出现这种情况的原因、并确定在实际执行之前有一段代码、这清除了本地副本的内容。

    这不再是一个问题

    感谢您的支持。