TI中文支持网
TI专业的中文技术问题搜集分享网站

报错error: a value of type "volatile UBYTE *" cannot be assigned to an entity of type "UBYTE *"

在外扩RAM中定义spc3结构体

程序如下:

DSP281x_GlobalVariableDefs.c中:

#ifdef __cplusplus
#pragma DATA_SECTION("Spc3File")
#else
#pragma DATA_SECTION(spc3,"Spc3File");
#endif
volatile SPC_3 spc3;

头文件中:结构体很长,就不全贴出来了:

typedef struct {

union {

           UWORD w;
           UBYTE b[2];

           } int_req; 

}SPC_3; 

extern volatile SPC_3 spc3;

主函数:

UBYTE * loesch;

loesch = spc3.int_req.b;

报错:error: a value of type "volatile UBYTE *" cannot be assigned to an entity of type "UBYTE *"

求指教

Martin Yu:

extern volatile SPC_3 spc3;

建议把volatile 去掉,你为什么要定义成volatile 型的?

在外扩RAM中定义spc3结构体

程序如下:

DSP281x_GlobalVariableDefs.c中:

#ifdef __cplusplus
#pragma DATA_SECTION("Spc3File")
#else
#pragma DATA_SECTION(spc3,"Spc3File");
#endif
volatile SPC_3 spc3;

头文件中:结构体很长,就不全贴出来了:

typedef struct {

union {

           UWORD w;
           UBYTE b[2];

           } int_req; 

}SPC_3; 

extern volatile SPC_3 spc3;

主函数:

UBYTE * loesch;

loesch = spc3.int_req.b;

报错:error: a value of type "volatile UBYTE *" cannot be assigned to an entity of type "UBYTE *"

求指教

user4398176:

回复 Martin Yu:

因为这相当于外扩的芯片的寄存器,我自己试了一下,改成这样就可以了

 loesch = (UBYTE *)spc3.int_req.b; 

2812自身的寄存器都是这么定义的,一点问题没有。

赞(0)
未经允许不得转载:TI中文支持网 » 报错error: a value of type "volatile UBYTE *" cannot be assigned to an entity of type "UBYTE *"
分享到: 更多 (0)