IDE为Eclipse for TriCore Version: 1.2.0.3826-201107110925
调试工具为UAD 2 PRO
在CCPPAR.h中定义了CCP_STATION_ID,
#define CCP_STATION_ID "TC1782" /* Plug&Play station identification */
在CCP.c中将该字符串的首地址给一个数组
CCP_BYTE ccpStationId[] = CCP_STATION_ID;
但是发现,ccpStationId[] 中存放的数据全是0。
验证
unsigned char k;
unsigned char testtab[8];
for(k=0;k<7;k++)
{
testtab[k]= ccpStationId[k];
}
for(i=0;ccpStationId!=0;i++) ;
通过watch窗口看到testtab数组全0!
后来添加了条语句测试:
想观察ccpStationId和testpointer 的值,是否一样。
ccpStationId的值为0xD0000014
testpointer(CCP_STATION_ID ) 的值为0xD0000010
结果不一样!
继续验证,注释CCP_BYTE ccpStationId[] = CCP_STATION_ID;这一条语句
// CCP_BYTE ccpStationId[] = CCP_STATION_ID;//
CCP_BYTEPTR ccpStationId= CCP_STATION_ID;//(指针)
ccpStationId从数组改为一个指针。则testtab数组就存放了TC1782字符串,程序功能就正常。
但是奇怪的是,,该程序在CodeWarrior for MPC ,CodeWarrior IDE for s12,MC9S12DP512,MC9S12P64,MPC5604上没这个问题
(#define CCP_STATION_ID "TC1782" /* Plug&Play station identification */
CCP_BYTE ccpStationId[] = CCP_STATION_ID;这么写是正常的)
移植到Infineon上就出现这个问题.....大神们帮忙看看,谢谢了!!转载
|