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

InitPieVectTable疑惑

在DSP2833x_PieVect.c中

void InitPieVectTable(void)

{

   int16   i;

   Uint32 *Source = (void *) &PieVectTableInit;

   Uint32 *Dest = (void *) &PieVectTable;

   EALLOW;      

   for(i=0; i < 128; i++)

   *Dest++ = *Source++;      

   EDIS;

   // Enable the PIE Vector Table

   PieCtrl.PIECRTL.bit.ENPIE = 1;        

}

Uint32 *Source = (void *)&PieVectTableInit

此句的强制指针转换,在单独的VC编译下显示是错误的:

error: invalid conversion from `void*' to `int*'

为什么在这个地方可以正确使用?

Jones Chen:

你好!

请问

在CCS里面编译有问题么?

在DSP2833x_PieVect.c中

void InitPieVectTable(void)

{

   int16   i;

   Uint32 *Source = (void *) &PieVectTableInit;

   Uint32 *Dest = (void *) &PieVectTable;

   EALLOW;      

   for(i=0; i < 128; i++)

   *Dest++ = *Source++;      

   EDIS;

   // Enable the PIE Vector Table

   PieCtrl.PIECRTL.bit.ENPIE = 1;        

}

Uint32 *Source = (void *)&PieVectTableInit

此句的强制指针转换,在单独的VC编译下显示是错误的:

error: invalid conversion from `void*' to `int*'

为什么在这个地方可以正确使用?

bob:

回复 Jones Chen:

在CCS中编译是没有问题,但是在VC编译中就会报错。

请问是否是CCS的编译环境支持这种强制转换,所以就不会报错,还是其他的原因?谢谢!

在DSP2833x_PieVect.c中

void InitPieVectTable(void)

{

   int16   i;

   Uint32 *Source = (void *) &PieVectTableInit;

   Uint32 *Dest = (void *) &PieVectTable;

   EALLOW;      

   for(i=0; i < 128; i++)

   *Dest++ = *Source++;      

   EDIS;

   // Enable the PIE Vector Table

   PieCtrl.PIECRTL.bit.ENPIE = 1;        

}

Uint32 *Source = (void *)&PieVectTableInit

此句的强制指针转换,在单独的VC编译下显示是错误的:

error: invalid conversion from `void*' to `int*'

为什么在这个地方可以正确使用?

Jones Chen:

回复 bob:

请用TI的CCS进行编译,仿真和调试。

至于VC平台,不是TI推荐的编译平台,我们也不清楚。

赞(0)
未经允许不得转载:TI中文支持网 » InitPieVectTable疑惑
分享到: 更多 (0)