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/MSP430FR5994:CCS/MSP430FR5994

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/912747/ccs-msp430fr5994-ccs-msp430fr5994

器件型号:MSP430FR5994

工具/软件:Code Composer Studio

如何解决此警告?

说明资源路径位置类型
#515-D 无法将类型为"void *"的值分配给类型为"__SFR_FARPTR"的实体 AES256.c /Gemini/source 第205行 C/C++问题?

代码的 linr 如下所示; DMA0DA =(void *) encrypted_data;        

Craig      

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

    对于获得此诊断的源文件、请按照文章 如何提交编译器测试用例中的说明进行操作。

    谢谢、此致、

    乔治

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

    TI 和 Craig、

    我有相同的问题、它在 IAR 上工作正常。 我要做的就是将地址放入 DMA 寄存器的源地址和目的地址中、以便进行 AES 加密。 这似乎是使警告消失的唯一方法是使用 DriverLib 调用。 这确实是一个不便之处!

    这里是包含注释掉的代码行、以避免警告。 请注意、代码与警告一起工作、并且正确设置了正确的地址、但编译器不喜欢它。

    //设置 DMA0:通道0
    // DMA0SA =(空*)&AESADOUT; //设置 src 地址
    DMA_setSrcAddress (DMA_CHANGE_0、(AES256_BASE + OFS_AESADOUT)、DMA_DIRECTION 不变);
    
    // DMA0DA =加密数据; //设置目标地址 dma_setDstAddress (dma_channel_0、(uint32_t) encrypted_data、dma_direction 递增);

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

    我使用:

    。
    __data20_write_long ((uintptr_t)&DMA4DA、(uintptr_t)&UCB2TXBUF);//__SFR_FARPTR 胡说
    。 

    [编辑:忽略".."-s、这是我唯一能够使代码格式器正常运行的方法。]

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

    什么是 uintptr 类型?

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

    表述为:

    。
    typedef unsigned long uintptr_t;
    . 

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

    感谢 Bruce、

    我希望这一点能记录在某个地方。 如果是、我找不到它。

    这似乎也起作用。

    // IAR 方式... 
    // DMA0SA =(空*)&AESADOUT; /set the src address // DMA0DA = encrypted_data; //设置目标地址 //编译,需要检查寻址
    __data20_write_long ((uintptr_t)&DMA0SA、(uintptr_t)&AESADOUT); __data20_write_long ((uintptr_t)&DMA0DA、(uintptr_t)Encrypted_data);
    //使用 DriverLib。 这起作用了。 已验证寻址 DMA_setSrcAddress (DMA_CHANGE_0、(AES256_BASE + OFS_AESADOUT)、DMA_DIRECTION 不变); dma_setDstAddress (dma_channel_0、(uint32_t) encrypted_data、 dma_direction 增量);

    此致、 
    -Jim