打印
[Kinetis]

【经验分享】CW10.6 PE中TSI_LDD 生成代码的些许注意点

[复制链接]
3251|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 FSL_TICS_A 于 2014-10-21 15:28 编辑

【经验分享】CW10.6 PETSI_LDD 生成代码的些许注意点
一,问题描述
        为什么要讲CW10.6 PETSI_LDD 生成代码的些许注意点这个话题,该问题还是要追溯到一个客户遇到的问题,他的问题是为什么使用平台TWR-K60N512平台,CW10.6,编译CW根目录下面TSIPE代码会出现很多的错误,该代码的默认路径为:C:\Freescale\CW MCU v10.6\MCU\CodeWarrior_Examples\Processor_Expert\Kinetis\TWR-K60N512\TSI
编译之后,是这个样子的:
1
100多个错误,是多么的壮观。然后当使用低版本的CW的时候,比如CW10.4,编译却一点问题都没有。所以,可以肯定是两个CW版本生成的代码有区别导致的。于是,本人按照例程的配置,自己又使用CW10.6重新做了一个TSI的代码,一模一样的配置,但是第一次编译的结果如下:

2
    看内容属于函数变量个数不匹配!看来CW10.6PE生成的代码还是有些毛病的。
二,问题解决
      鉴于上面问题的表象,下面进入问题的分析阶段。根据错误提示,点进去查看内容。
可以看到在TSI1.C里面报错的如下:
LDD_TError TSI1_Enable(LDD_TDeviceData *DeviceDataPtr)
{
  TSI1_TDeviceDataPtr DeviceDataPrv = (TSI1_TDeviceDataPtr)DeviceDataPtr;
  if (DeviceDataPtr == NULL) {
    return ERR_VALUE;
  }
  /* Enable Device */
  TSI_PDD_EnableDevice(DeviceDataPrv->BaseAdress); //报错部分
  return ERR_OK;
}
而实际的TSI_PDD_EnableDevice函数定义如下:
  #define TSI_PDD_EnableDevice(PeripheralBase, Source) ( \
      setReg32Bits(TSI_GENCS_REG(PeripheralBase), TSI_GENCS_TSIEN_MASK) \
    )
#endif
可以看到,这个函数在这里生成的变成了两个形式参数,而source并没有用到,所以在调用函数的时候,还是需要给source传个数据,保证格式的匹配。这个问题在CW10.4里面是没有的,应该是为了以后的扩展使用。
所以将原来调用的部分修改如下:
  TSI_PDD_EnableDevice(DeviceDataPrv->BaseAdress,1);
一共两个部分需要修改,修改后再次编译,就没有错误了。
图 3
三,测试结果
通过点击开发板上对应小灯的触摸块,可以实现小灯的亮灭。
附件附上了修改后的CW10.6 TSI PE代码,供大家使用。
TSI.rar (2.26 MB)

【经验分享】CW10.6 PE中TSI 生成代码的些许注意点.pdf (623.14 KB)

相关帖子

沙发
FSL_TICS_ZJJ|  楼主 | 2014-5-7 14:40 | 只看该作者
不足之处,欢迎指正。同时也欢迎大家分享自己的经验!

使用特权

评论回复
板凳
870205766| | 2014-5-9 11:01 | 只看该作者

使用特权

评论回复
地板
exel| | 2014-6-5 17:24 | 只看该作者
感觉10.6比10.4改进了不少地方,起码库的编译效率高了几倍,可能是做了多核心多线程支持把

使用特权

评论回复
5
jiahongjian| | 2014-6-6 08:40 | 只看该作者

感谢楼主分享!

使用特权

评论回复
6
FSL_TICS_ZJJ|  楼主 | 2014-6-6 17:23 | 只看该作者
exel 发表于 2014-6-5 17:24
感觉10.6比10.4改进了不少地方,起码库的编译效率高了几倍,可能是做了多核心多线程支持把 ...

得去,CW10.6克服了很多之前版本的bug,现在这个CW10.6的问题,我也通知了CW部门报bug了,以后版本会更新掉。

使用特权

评论回复
7
FSL_TICS_Robin| | 2014-6-9 09:37 | 只看该作者
exel 发表于 2014-6-5 17:24
感觉10.6比10.4改进了不少地方,起码库的编译效率高了几倍,可能是做了多核心多线程支持把 ...

exel 你好
你可以在 飞思卡尔论坛支持小组【经验分享】总汇 里找到一篇  最新版本 CodeWarrior v10.6已发布 - 新特性,兼容性等介绍

使用特权

评论回复
8
FSL_TICS_Robin| | 2014-6-9 09:39 | 只看该作者
FSL_TICS_Robin 发表于 2014-6-9 09:37
exel 你好
你可以在 飞思卡尔论坛支持小组【经验分享】总汇 里找到一篇  最新版本 CodeWarrior v10.6已发 ...

CodeWarrior10.6也是对于Kinetis新产品支持的最后一版了,以后新的Kinetis产品将在完全免费的Kinetis Design Studio 软件中支持。


使用特权

评论回复
9
bestray| | 2014-9-3 09:45 | 只看该作者

使用特权

评论回复
10
wangyangele| | 2014-10-5 14:10 | 只看该作者
HAO DONGXI

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

165

主题

5069

帖子

88

粉丝