生产厂商:ASH产品类别:开发工具
ASH WAREeTPU C Compiler Toolkit
CCross-Compiler(C交叉编译器)与Preprocessor(预处理器)
Symbolic Macro Assembler(符号宏汇编器)
Optimizer(优化器)、Analyzer(分析器)与Linker(链接器)
概述
兼容模式——完全支持现有的遗留代码,基本上按原状编译您现有的code base(代码基数)。
C编译器基于C99(ISO/IEC9899:1999)与“嵌入式C”(ISO/IEC TR1803)规范草案。
支持eTPU与eTPU2目标。
Windows命令行工具集可与以下IDE集成,例如Eclipse、PSPad、DeveloperStudio等等。ETEC还可运行于安装在Linux/UNIX平台上的WINE Windows仿真程序之下。
ASH WAREInc,的理念就是:最糟糕的问题就是您不了解的问题。我们的公共站点交叉引用所有发布版本的一切已知问题。请注册问题通知来了解所有最新发现的问题。最新发现的问题都会进行回归测试,并对所有支持的发布进行完整报告。
支持的目标
对Freescale旗下MPC55xx、MPC56xxPower Architecture微处理器与MCF52xx ColdFire微处理器的完全eTPU/eTPU2支持。
对STMicroelectronics/Freescale SPC563Mxx系列的完全eTPU2支持——用于自动化应用程序的32-位微控制器。
Perennial测试
ETEC编译器工具套装V1.10A现已采用行业标准的PerennialCVSA测试套具进行了广泛的测试。Perennial的授权协议禁止我们将测试结果放置在我们的网站上(即使我们非常希望这样做),当然这些结果确实非常,非常出色。所有较新的发布都经过Perennial的回归测试,以此来确保不断的改进。请致电我们进行讨论。
代码大小与Freescale eTPU代码库
在使用ETEC编译时,FreescaleSet 1 - Set 4类似(较少代码)。ETEC已编译的代码与现有的主机端接口与应用程序代码无缝工作。这些端口都可下载(按原状提供,无担保)。
最近版本中的新功能与改进
支持静态WorstCast Thread Length(WCTL)分析功能!在Analyses(分析)文件中提供WCTL,包括“steps(步骤)”与“RAM-accesses(内存访问)”。
#pragmaverify_wctl
虽然默认的ETEC编程模型/调用约定是基于堆栈的(以此来防止两个eTPU相一致的问题),ETEC确实提供使用全局临时存储模型进行编译的选项。
尽管应慎用此选项,某些案例表明它简化了现有代码的移植,并/或能生成严密的代码。
至于eTPU2,提供临时存储型引擎编程模型/调用约定。其优点在于提供全局临时存储方式的同时不会出现两个eTPU相一致的问题(仅eTPU2)。
在使用共享代码时,片段支持改进了WCTL。片段改进了结构与可读性,并在众多情况下避免了对于麻烦的“goto(转至)”的需求。
快速的“switch(切换)”减小了代码大小并改进了“C”切换的WCTL。link-time(链接时)生成的计数大体上避免了从“dispatch(调度)”进行跳跃,这样的话,dispatch-offset(调度-偏移)就是最终目标位置(非常酷!)。
公开一套内函数,允许用户访问所有源于C代码的ALU/MDU操作。
功能详细信息
- 可以在所有的Windows平台下运行命令行界面。
- 运行于安装在Linux/UNIX平台上的WINE Windows仿真程序之下。
- 与ASH WAREInc,的eTPU/eTPU2模拟器与Lauterbach的eTPU调试器完全兼容。
- 若干与GNU Make集成的演示高亮显示FreescaleSet1,完整的引擎演示等等。
- Long TermRelease Support(长期发布支持)——10年可用性,并支持所有拥有活跃客户群的发布版本。
- 生成高度优化的eTPU代码,众多情况下,在WorstCase Thread Length(WCTL)、Latency(执行速度)、CodeDensity(代码密度)、DataRAM(数据内存)使用、以及减少的Data RAM访问计数(影响Latency)这些方面胜过现有的解决方案。
- 支持双eTPU引擎模型。引擎间只能共享实际全局变量;代码在两个引擎上运行时不会发生冲突。(这修复了大量用户代码基数中的固有问题,而且没有更改代码!)
- 不会生成静态已知“dead code(死码)”,有助于符合DO178B100%代码覆盖要求(用于航空电子应用程序)。
- 遇到次级最优代码时发出性能警告(例如:次级最优位置中的8或16位变量,有/无号数除法等等)。
- 支持以现有的汇编语言语法进行内嵌汇编与单独汇编。
- 自动生成主机集成所需的一切:
- 所有全局与通道框架变量的位置信息。
- 函数号码与条目表类型信息。
- 全局与通道框架初始化数据。
- 代码阵列与已计算的MISC。
- 大量报告文件——例如.map、.lst。我们的分析文件提供详细信息,例如最大堆栈深度与最糟情况线程长度
- 性能验证包括对于关键指标的验证,例如WCTL验证。
- 内置错误处理库。
- 支持多种数据打包模式,帮助用户编译减小的数据内存(SDM)大小,或者可能消耗更多SDM使用率的更小更快速的代码。
- 代码和调试信息既可输出成目标中实际内容的适用格式,还可输出成标准的ELF/DWARF2.0格式用于eTPU模拟器与其它调试工具。
- 包含带有少量超越C99额外语法的增强模式,为重要的eTPU硬件提供更直观、更不易失败的Windows事件/软件的响应样式映射(eTPU函数、线程、数据)。
- 以下为支持的基本数据类型(根据情况签署或未签署):
- _Bool、char (未签署int8)、short(int16)、int(int24)、longint (int32)、longlong int (与int32同义)
- fract8、short_Fract (fract16)、_Fract(fract24)
- 支持EmbeddedC Specification(内嵌式C规范TR18037)命名寄存器。
- LegacyMerging(遗留合并)——使用ASH WARE的eTPUDevelopment Tool Suite将现有的生成代码按原状(.COD文件)与新编写的代码合并。将旧代码向前合并到新代码。
- ETEC库函数为编程人员提供方法来显式控制他们代码中的原子数、同步性与一致性。
- 使用“典型”二级编译/链接构建进程的翻译单元正交性(不过为了兼容性,所有代码仍可包含在单个翻译单元中)
- 完全支持现有的eTPU C编程模型,用于通道硬件访问、条件代码访问与条目表定义。
- Eclipse集成软件包含有集成版本与单击错误编辑器(我们的网站即将提供下载)
- Ash-Print——利用您的代码来提供用户定义与格式化的模拟跟踪文件。
- 汇编器支持现有客户的“内嵌”与“单独”语法。