因仑“3+1”工程特种兵精英论坛

标题: 使用英飞凌 Tricore 1782时遇到 的一个C语言问题 [打印本页]

作者: 张衍波    时间: 2015-10-27 18:01
标题: 使用英飞凌 Tricore 1782时遇到 的一个C语言问题
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上就出现这个问题.....大神们帮忙看看,谢谢了!!转载






欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4