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.

[参考译文] 编译器/MSP432P401R:类型转换错误

Guru**** 2587345 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/604144/compiler-msp432p401r-type-conversion-error

部件号:MSP432P401R

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

您好,

我正在使用TI代码根工具v Cortex.0.LTS来开发即将推出的基于16.9 M4的器件。  

armcl编译器为以下代码片段提供了一个错误:  

typedef结构_dmaMode{
UINT32_t A:1;
uINT32_t b:1;
uINT32_t b:3;
UINT32_t预留4:3;
uINT32_t d:1;
UINT32_t预留3:2;
uINT32_t e:1;
uINT32_t f:3;
UINT32_t保留2:1;
uINT32_t g:2;
UINT32_t预留1:14;
} dmaMode;

#define HWREG(x) (*((volatile UINT32_t *)(x)))

void ethernet_setDMAMode(UINT32_t base,  
dmaMode dmaMode)

 HWREG (BASE +_O_DMA_MODE)=(UINT32_t)dmaMode;

}

此函数中的赋值导致错误“错误#173:无效类型转换”  

这种转换有什么问题? 如何完成?  

此致,

Sudharsan

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

    不能将像dmaMode这样的结构变量转换为像UINT32_t这样的整数类型  这种方法通常是用一种称为冲压的技术来完成的。  对这种类型的全面讨论超出了本论坛的范围。  我建议您对该术语执行Internet搜索以了解所有详细信息。  请理解,打错类型可能会导致问题。

    谢谢,此致,

    -George