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/TMS320F2.8379万D:示例Buffdac_sine_cpu01在闪存中运行时工作不好

Guru**** 2526700 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/630091/ccs-tms320f28379d-example-buffdac_sine_cpu01-does-not-work-well-running-from-flash

部件号:TMS320F2.8379万D

工具/软件:Code Composer Studio

您好,

我正在从CPU2运行Buffdac_sine_cpu01示例,当从RAM运行正常时,当从闪存运行时,正弦波被破坏,如附图所示。

正弦波频率为600 Hz。

我查断中断的时间,在RAM和闪存模式中都是一样的。

我尝试了很多从闪存运行的瘦,但从RAM加载和运行interrrupt例程,结果相同。

有人知道发生了什么

此致

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

    你好,萨尔瓦多,

    在CPU1闪存中运行示例时,我没有看到任何问题。 请记住,Buffdac_sine_cpu01是为在CPU1上运行而编写的。 要在CPU2上运行它,您必须对代码,项目和支持文件进行大量更改。

    使用的一种调试策略是绘制数据记录数组。 由于数据记录阵列包含对DAC的写入,因此它至少有助于缩小原因范围。

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

    您好,Frank,

    我按照您的建议进行调试,我发现问题是 sgen.OUT1 函数的输出。

    我尝试在sgen.h文件中查看,以了解为什么sgen.OUT1函数的输出值是错误的,但对我来说太难了。

    我不能低估为什么在RAM模式下CPU2也能正常工作,但在闪存模式下输出错误,我检查堆和堆栈大小,但两种配置都是相同的。

    另外,在RAM和闪存模式下,我有以下内容:警告#1.0247万-D:创建不带节的输出节"SINTBL"

    此致

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

    好的,这是合理的。 您将需要将SINTBL放置在一个足够大的内存位置以容纳它。 我想这是一个256长的字数组。 如果您查看CPU1 -> 2837xD_RAM_SGEN_Lnk_CPU1.cmd和2837xD_FLASH_SGEN_Lnk_CPU1.cmd的RAM和闪存链接器命令文件,您将注意到SINTBL分别被放置在RAMGS2和FLASHN中。 对CPU2链接器命令文件执行相同操作,并查看是否有效。 您至少不会再看到警告。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Frank

    您说得对,现在在CPU2上的闪存模式下工作正常

    非常感谢

    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴听到它在工作! 如果您还有任何疑问,请务必告知我们。