在外扩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自身的寄存器都是这么定义的,一点问题没有。
TI中文支持网



