查看: 1408|回复: 0
打印 上一主题 下一主题

使用英飞凌 Tricore 1782时遇到 的一个C语言问题

[复制链接]
跳转到指定楼层
沙发
发表于 2015-10-27 18:01:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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上就出现这个问题.....大神们帮忙看看,谢谢了!!转载

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表