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/TMDSCNCD28335:未选中 CCS[调试]的"&quot";"Continuous Refresh&quot";函数时、I/O 冻结

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/968190/ccs-tmdscncd28335-i-o-freeze-when-the-continuous-refresh-function-of-ccs-debug-is-unchecked

器件型号:TMDSCNCD28335

工具/软件:Code Composer Studio

各位学员好、

在我的 CCS 项目中会发生令人惊叹的行为。

当 JTAG 调试器在选中"Continuous Refresh"函数的情况 下加载并启动代码时、会考虑输入、但速度非常慢(我是指秒)。

但我在运行期间未选中此函数、代码对输入没有反应。 如果代码在加电后自启动、则行为相同。

如果有人能提出任何想法来理解这种令人惊叹的行为、我将不胜感激。

此致。

硬件:

CCS v8.3.1

JTAG:TMS320-XDS100V3+

DSC:TMDSCNCD28335

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

    Corentin、

    感谢您在 E2E 上与我们联系。  您能评论写入的存储器地址、这些地址是代码的"输入"吗?  我假设这是您的意思、但如果您是指 GPIO 或物理引脚输入、请纠正这一点。

    假设这些是存储器位置/变量、您还可以包括如何将它们转换到 C 源代码中?  我不确定为什么连续刷新会影响这一点、但如果您尚未将变量声明为"volatile"、并且没有要更改的显式代码、编译器将优化任何"读取"、因为它不会看到任何本地修改。

    最棒的
    Matthew

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

    Matthew、

    感谢您的提问。

    到目前为止、代码有2个条目、一个在 GPIO63上连接的开关和一个在 ADCINB7上连接的模拟输入。

    我使用宏来询问交换机状态:

    如果(isRun_switch)...

    #define isRun_switch           (GpioDataRegs.GPBDAT.bit.GPIO63 = 1)

    (实际上这两条语句之间有5个#define 步骤)

    我将此代码用于 ADC 输入:

    浮点 DCDC_PHASE;

    中断空 ISR-Fun (空)

    (笑声)

       DCDC_Phase = OND3KW_GetMesRes (OND3KW_PIN_REF3)*OND3KW_GAIN_REF3;

    //宏定义:OND3KW_GetMesRes (OND3KW_PIN_REF3)-->*(&AdcMirror.ADCRESULT0)

    希望我能正确回答您的问题。

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

    Corentin、

    感谢您的观看。  我知道 GPIO 结构被定义为易失性、因此编译器应强制执行读取。

    我假设这是争用点、即不连续运行代码不会进入 if 语句、即使 GPIO63为高电平、对吧?

    是否可以将宏语句更改为以下内容:

    如果(isRun_switch)...  

    更改为

    IF (GpioDataRegs.GPBDAT.bit.GPIO63)

    由于我们正在读取单个位、因此这应该执行相同的操作。  如果它为高电平、则您将进入环路。  我认为当前代码是相同的、只是想简化一点。

    如果上述情况不起作用、我可能会要求您向我发送当前"IF"语句的拆分。  

    最棒的

    Matthew

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

    Matthew、

    我更好地理解我的问题。 我的代码被困在中断中、并要求一个可由 JTAG 恢复的变量、该变量在某些期间他可以读取输入。

    感谢您的关注、我希望此帖子能帮助其他人。