本帖最后由 freebsder 于 2017-12-19 18:43 编辑
再接上。之前对本次评测的小板进行了简单的解析,对我个人觉得有意思的功能点进行了简要概述,最后这部分来看看英飞凌的DAVE开发环境。
如果没有继续往下看的精力,那么我这边一句话概括后面的内容:DAVE是我用过的最强、最完善的原厂开发环境。
如果有精力问一句我为什么这样说,那下面就我的角度来看社区、生成、应用等方面是否可以证明以上断言。
1、社区
最新4.3.2版的DAVE是基于行业内最强开发平台Eclipse衍生而出。熟悉开发模式的朋友应该知道作者是四个人,Eclipse就是其中一位的作品。大师作品保证了极强的适用性、扩展性和适应性。如果因为被自以为是的某些前辈FUD Java 20年前的弱点就不假思索的拒绝Eclipse,那一定会错过一个很强大的工具。
基本的代码编辑功能无疑比常用的keil、iar之流强大的很多,这点无需赘述。keil、iar的编辑器之烂有目共睹。较小代码量的工程无需多少功能性支撑便可很好的完成。然而随着MCU应用要求的不断提高,其所配备的flash,ram的不断增大,代码工程量也随之越来越大,到一定规模之后,简单的环境只会成为生产限制。Eclipse强大的功能包括但不限于在线宏处理、上下文解析、代码智能补充、代码结构解析、重构等等不逐一而述,这个工作几乎需要一本书来进行。
选取几个简单的功能点看看热闹。
有效宏提示:
显而易见中间的宏是当前的有效定义。需要说明的是根据当前上下文的引用路径和配置手段,有效宏并不能作为确定性条件,只能作为辅助参考,比如命令行参数,这里就无法预知你的实际数值。file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image002.png
大部分宏定义,包括不少复杂的宏定义都可以在线展开,当然,只是大部分,而不是全部,太复杂的文本宏解析器还是不能让人类下岗。
调用路径file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image006.pngfile://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image004.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image008.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image010.png
值得注意的是如上图所示,调用路径不限于直接()形式调用,也可以分析出如上的指针结构形式,也可以解析数据域使用路径。
重构
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image012.png
重构是一个很深入的话题,eclipse提供基本支持。
头文件引用路径:
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image014.png
文件结构
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image016.png
除英飞凌外,其他各大厂的原生开发环境除一之外都是衍生自Eclipse,这不是偶然。那一个例外就是基于Java Netbeans 收购了基于微软visual studio(此处不好说名字),而这个厂的环境烂的也是有目共睹。
强迫症患者治愈剂,格式化:
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image018.png
格式化可以配置成自己习惯或者要求的样式,可以以文件为单位也可以以目录为单位,总之,这是一个强迫症患者工具。
2、代码生成
以上都是Eclipse自身带来的福利。
针对每个MCU的代码生成,这只能依赖于英飞凌自身的扩展能力,设计模式大师的作品本身就为扩展提供强力保证。
DAVE的扩展称之为APP,毫无搜索关键字的名字,和王建国一样普遍。
目前发布的APP有如下一些:
重要的不是那些诸如I2C,SPI,SDMMC驱动,这部分工作每一个MCU厂都会提供。file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image026.pngfile://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image024.pngfile://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image022.pngfile://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image020.png
简单的看名字,就可以发现我最前面的那个说法并不是空穴来风。英飞凌这个环境强大的地方是将不少应用也做进了代码生成器。相比较大部分其他厂只是驱动、时钟的代码生成器,无疑英飞凌的DAVE更完善更面向开发。
挑选一个PMSM应用为例,一起看看基于应用的代码生成器。但是手里没有驱动部分无法实际运行,只能评测DAVE的APP的方便性。以下截图从上到下所示为生成步骤。
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image028.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image030.png
双击下面依赖树中的PMSM_FOC和PWM_SVM,可以看到如下。具体参数不解释了,主要是给大家看看面向应用的强大代码生成能力。
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image032.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image034.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image036.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image038.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image040.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image042.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image044.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image046.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image048.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image050.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image052.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image054.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image056.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image058.png
然后,分配管脚:
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image060.png
然后生成代码。
不光是PMSM这种工业应用。再添加一个HTTPSERVER进去如下:
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image062.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image064.png
参数也有不少,不一一展示。
以上仅看到冰山一角,如前所说,能针对应用生成代码,绝对可以秒杀市面上现有的绝大多数环境。至于绝少数,那是我见识少没见过的。
3、应用
除了APP之外,英飞凌还在DAVE中提供了大量基于应用的Example。重点仍然是基于应用,而不是基于驱动。
首先要安装:
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image066.png
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image068.png
然后导入:
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image070.png
过程不表。只看有些什么东西。
file://localhost/Users/ldc/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/clip_image072.png
这些例子,包括modbus,http,usb虚拟串口等应用,很完整,可以直接借鉴来用。安装的时候推荐把这一系列的器件都选上,不限于xmc4700,可以有更多的应用示例参考。
这些示例很规整,改掉底层驱动,完全可以作为其他硬件的实现参考。