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/MSP432P401R:编译器警告#824-D:pragma DATA_ALIGN

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/673103/ccs-msp432p401r-compiler-warning-824-d-pragma-data_align

器件型号:MSP432P401R

工具/软件:Code Composer Studio

您好!  

我正在使用 MSP432P401R 黑色开发板和 Resource Explorer 上的 boostxl_edumki_microphonefft_msp432p401r 演示代码。  

我收到一条编译器警告: 警告#824-D:pragma DATA_ALIGN 只能应用于文件级符号定义、而不能应用 来自代码这一部分的"MSP_EXP432P401RLP_DMAControlTable"--

/* DMA 控制表*/
#if defined (__TI_Compiler_version__)
#pragma DATA_ALIGN (MSP_EXP432P401RLP_DMAControlTable、(SAMPLE_LENGTH*2))
#Elif defined (_IAR_systems_icc_)
#pragma DATA_ALIGN =(SAMPLE_LENGTH*2)
#Elif defined (_GNU_)
__attribute__((对齐(sample_length*2)))
#Elif defined (_CC_ARM)
__align (sample_length*2)
#endif
静态 DMA_ControlTable MSP_EXP432P401RLP_DMAControlTable[32];

在此代码片段之前、我将 SAMPLE_LENGTH 定义为512。  

在 FFT 运行时、我没有看到任何问题、但我想看看这个警告是不是我应该担心的、还是可能会消除的?

谢谢你。

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

    Jacob、

      要求针对1K 边界、如 TRM 中所述:

    所以,512*2不应该有任何问题。  我正在查看 Resource Explorer 上当前可用的内容、"1024"显式:

    /* DMA 控制表*/
    #if defined (__TI_Compiler_version__)
    #pragma DATA_ALIGN (MSP_EXP432P401RLP_DMAControlTable、1024)
    #Elif defined (_IAR_systems_icc_)
    #pragma DATA_alignment=1024
    #Elif defined (_GNU_)
    __attribute__((对齐(1024)))
    #Elif defined (_CC_ARM)
    _align (1024)
    #endif
    静态 DMA_ControlTable MSP_EXP432P401RLP_DMAControlTable[32];

    您是否尝试过此操作以查看是否有任何差异?

    此致、
    Chris  

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

    Chris、

    我刚刚尝试过、但它没有解决问题。我将示例代码分成了一个头文件和一个初始化源文件、以便更轻松地包含在我的主项目中。 我想知道、在分隔代码时、我是否执行了一些操作来创建警告。 我必须仔细检查它、看看可能是什么导致它。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jacob、
    可能是因为您已通过将符号移到文件之外来更改了符号的范围? 此外、我认为这篇文章具有类似的错误非常有趣-尽管原因不同:

    e2e.ti.com/.../561866

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chris、
    因此、我导入了演示代码、但没有收到该警告。 因此、一定要围绕代码移动、我更改了一个过程的顺序、或者正如您所说的那样、更改了符号的范围。 我将继续查看我是否可以计算出它。 我可以将代码重新结构为一个文件、使其正常工作、与演示类似。

    您认为这一警告很重要吗? 正如我说过的、FFT 看起来运行正常、我没有注意到 LCD 上的频谱分析仪上发生了任何怪异的事情。 我对 Pragma、数据对齐和 DMA 控制表完全不熟悉、因此我必须查看手册并更适应它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为这并不是一个大问题、但请务必从 IDE 中的内存查看器中确认数据根据 TRM 真正对齐。

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在程序上做了一个干净的构建、警告消失了。 不太确定问题是什么。 如果出于任何原因返回、我将使用您建议的内容对其进行更多调试。