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.

[参考译文] 编译器/TMS320F28035:C++编译器问题

Guru**** 2609945 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/687988/compiler-tms320f28035-issue-with-c-compiler

器件型号:TMS320F28035

工具/软件:TI C/C++编译器

大家好

我需要推导正弦信号。 然后、我确实生成了一个表、其中包含我将加载到 ePWM 模块的 CMPA 寄存器中的值。 负载将为每33us、并控制 ePWM 的中断子系统。 我在 main.c 文件中定义了表、并且该表的数据已加载到闪存中。 我的程序构建正常运行、 但在处理中断的例程中 、我包含以下代码行" EPwm4Regs.CMPA.half.CMPA=SinTable[j]"时、构建过程生成以下错误消息"标识符"SinTable"未定义"。

提前感谢

Sebastián μ A

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

    您是否包含了所需的所有标题? 您是否在适当的范围内定义了 SinTable?
    您是否正在使用 C++? 我不太熟悉这一点、查看 C++指南可能会有所帮助、以确保您按应有的方式对其进行设置。

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

    你(们)好,Christopher

    我在 main.c 文件和 file.cmd 中定义了该表、我在其中定义了闪存存储器部分、并放置了表的数据。 我使用的框架是 A 研讨会的一个示例。 您是否认为有必要尝试使用汇编语言进行编程?

    非常感谢

    Sebastián μ A

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

    不需要、无需使用汇编语言。 您是否看到该表未填充到闪存中? 确保将其定义为"const"。
    提供一些代码 snip-its 会有所帮助。

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

    您好 Christopher
    我可以在闪存中看到我计算出的值。 我发送3个程序的屏幕截图。

    非常感谢您的帮助。

    Sebastián μ A

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

    您好 Christopher
    我可以在闪存中看到我计算出的值。 我发送3个程序的屏幕截图。

    非常感谢您的帮助。

    Sebastián μ A

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

    你好

    SinTable 声明为与使用的源文件不同的源文件、因此在 ISR 的源文件中、您需要将其置于文件顶部的"extern "。

    示例:extern const unsigned long SinTable[];

    此外,您还需要在 i 和 j 之间使用"*"进行乘法运算。

    此致

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Chris
    我可以毫无错误地构建我的程序。 非常感谢。 Sebastián μ A