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/LUNCHTXL-F2.8377万S:内存浏览器刷新在调试中取消阻止程序

Guru**** 2487425 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/619460/ccs-launchxl-f28377s-memory-browser-refresh-un-blocks-the-program-in-debug

部件号:LAUNCHXL-F2.8377万S

工具/软件:Code Composer Studio

我正在对C2000上的一些软件进行调试,当我使用CCS7中的“内存浏览器”刷新/读取内存区域时,遇到了一个似乎已解决的问题。  它似乎不是特定内存位置的特定内容,但一旦刷新它,它将解锁我的代码(在持续刷新中,它将完美运行)

我的程序涉及一些不太直接的握手,我在SPI ISR中处理,我认为根本问题就在其中(我最猜测的是,在正确的时间,我没有清除中断标志)。  SPI具有的标志数, 事实上,我的许多调试环境都使代码正常工作,我很想知道是否有人确切了解内存浏览器刷新的功能,例如,它是否阻止了某些ISR被处理/清除SPI和FIFO中的某些标志?  参考资料:我正在将内置JTAG仿真器与LAUNCHLL-F2.8377万S配合使用:XDS100v2。

如有任何帮助,我们将不胜感激。

-Galen

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

    Galen Church 说:
    它似乎不是特定于特定内存位置的,但一旦刷新它,它将解锁我的代码(并且在连续刷新过程中,它运行良好)[/QUOT]当内存浏览器解锁您的程序时,您是否尝试执行该程序?

    询问的原因是,在默认情况下,CCS在汇编程序步进或源代码步进时禁用中断,如果Say尝试步过等待中断的函数调用,则会导致程序挂起。

    有关  CCS禁用中断时控制的选项,请参阅“程序/内存加载选项”。

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

    感谢您的响应,并向我介绍调试手册(看起来是非常有用的资源)。  我不是步进,但它让我认为问题一定与我的SPI ISR中的中断标志有关...

    我现在似乎已经开始工作了: 作为两个设备之间握手的一部分,有一个实例,我希望SPIx_RX_ISR由于RXFFINT而被调用,但不关心读取缓冲区SPIRXBUF中的值,我只需返回GPIO STE低电平。  我仅将此状态用于传输,因此清除中断标志我只是简单地设置RXFFINTCLR。  设置RXFFINTCLR实际上并没有清除RXFFINT标志,但我可以通过添加SPIRXBUF的虚拟读取来解决这一问题,从而可靠地清除该标志。

    我不知道这与我在启用FIFO时从数据表中对SPI中断操作的解释相符,但它是有效的。