>
首页 » 业界动态 » PIC32编译器提供更快的中断处理

PIC32编译器提供更快的中断处理

作者:  时间:2008-07-15 15:22  来源:

HI-TECH Software公司面向Microchip PIC32系列的“全知”ANSIC编译器今天宣布投放市场。据称,新产品能够将实时性提升25%以上,并且能够提供几近双倍的代码密度。面向PCI32 MCU系列的HI-TECH C® PRO是目前唯一一款能够在目标代码生成之前,在所有代码模块中对堆栈和寄存器分配进行优化的PIC32编译器。代码量的减少使得执行速度更快,而且所需的存储闪存更少,因此更节省成本。

该HI-TECH C PRO编译器具有全知代码生成器(OCG),用于搜集整个程序中每一个寄存器、堆栈、指针、对象和变量声明中的数据,并使用这些信息在整个程序执行过程中对寄存器使用、堆栈分配和指针进行优化。它还能够确保模块间的一致变量和对象声明,并删除不使用的变量和函数。HI-TECH C PRO是目前唯一具有上述能力的PIC 32编译器。

其它的PCI32编译器大多数都基于GCC编译技术,每次针对一个模块产生代码,没有全面的跨模块数据。由于不了解对象在整个程序中如何被使用,所以它无法达到同OCG编译器相同的优化水平。以代码密度为基准,HI-TECH的OCG编译器与目前行业领先的基于GCC的PIC32编译器相比,代码密度提高了40%。更小的代码体积减少了对片上闪存的需求,从而达到了降低器件成本的目的。


寄存器覆盖。此外,基于GCC的PIC32编译器在用于存储被调用函数参数的寄存器方面有缺陷。一旦某个函数被其它代码模块调用,那么这个函数的参数通常会被存储在寄存器中。基于GCC的PIC32编译器通常会保留4个具有该作用的特殊寄存器。如果该函数具有4个以上的参数,那么多出来的参数就必须通过堆栈(在RAM中)进行存储并且转到被调用函数中——这样做增加了一个处理周期,从而降低了性能并增加了对RAM的使用。


利用HI-TECH具有OCG功能的编译器进行编译的中断增强型代码,在典型情况下,PIC32的执行周期较非OCG编译器的代码编译降低了26%。通过减少花在寄存器和堆栈间数据转移的CPU周期,HI-TECH的OCG编译器能够使CPU性能有效提升26%。更为重要的是,被调用函数时常也会调用其它函数,或者可能会依次调用其它函数。对于中断增强型应用来说,情况更是如此。例如,如果代码调用一个函数,后者再调用第二个函数,那么第一个函数的参数将不得不存储在堆栈中,以便为第二个函数的参数留出空间。如果第二个函数调用第三个函数,那么第二个函数的参数也将存储在堆栈中,从而为第三个函数的参数留出空间。这样一来,数据就将在堆栈和寄存器间连续转移。这样做的后果是,数据每转移一次至少需要1个周期;或者向堆栈转移一个四参数函数的数据,并将数据返回到寄存器,需要8个周期。

即使其它寄存器可用,但是一旦四个固定寄存器满了的话,GCC编译器也会将额外的参数分配到堆栈中。这样的程序既浪费周期,又浪费RAM。而且还会导致代码庞大,因为将函数参数存储在堆栈中需要额外的指令。

反之,HI-TECH的OCG编译器对每个函数的寄存器使用情况都有更好的了解。在程序中的任意点,它都对每个寄存器的可使用情况了如指掌,而且能够在没有任何强制约束下对寄存器的使用进行优化。当出现2或3个深层次功能调用时,它会将不同功能的参数分配给不相重叠的寄存器组,通常这样能够完全消除将参数存储在存储器中的需要。这样做的结果,就是能够更好地使用可用寄存器,降低堆栈和寄存器间参数转移所需的周期浪费,并且减少对RAM的使用。此外,通过降低或去除存储寄存器到堆栈所需要的代码,OCG编译器对降低代码尺寸也颇有贡献。

更快的中断处理。既然HI-TECH C PRO了解在整个程序中每个函数的寄存器使用情况,包括中断和被中断代码调用的任何函数,那么它也很清楚地了解每一个中断程序需要对哪个寄存器进行存储和恢复。HI-TECH C PRO编译器只保存那些必须的寄存器,从而降低了中断上下文切换代码的尺寸,并且减少了执行中断程序所需的周期数。

存储器优化实现更好的功率和性能。既然HI-TECH C PRO了解程序中每个变量的使用情况,所以它具有优化在堆栈或寄存器间分配变量的能力。这种优化基于对每个变量的使用频率。变量使用比较集中的会被永久分配到寄存器中,不会耗费周期。所有的寄存器和堆栈分配总是会进行优化,从而使整个程序表现最好的表现。这种存储器的高准确度优化不仅推动了性能,而且通过将经常使用的数据存储在寄存器中(读取时间最少)可以将功耗降至最小。

最优化调试。虽然代码尺寸和性能非常重要,但是目标代码如果不能被调式,那么它就是无用的。开启编译器的调试功能通常会使代码发生改变,从而削弱编译功能。HI-TECH C PRO编译器保留了目标代码和原始C代码之间的所有关系,从而使得调式过程又快又简单。

与MPLAB® IDE兼容。HI-TECH C PRO编译器能够无缝融合到Microchip的MPLAB® IDE,以及大多数第三方开发工具中。HI-TECH C PRO可以在包括Windows (2000, XP, Vista 32/64)、Linux和Mac OS X等多个平台上运行。
 
HI-TECH调试。HI-TECH软件也提供自己的基于Eclipse的IDE——HI-TIDETM 3,该产品包括完整的项目管理、灵活的编辑器以及快速准确的仿真器。HI-TIDE与HI-TECH C JTAG Debug Interface相连,后者随HI-TECH C PRO编译器包免费提供。

包括库代码和运行时间模块。HI-TECH的PRO编译器目前提供完整的源代码以及全部库程序,包括运行时间启动模块(每次编译器运行的时候,都能够自动定制化)。一个PIC32外围库,能够与Microchip的外围库资源完全兼容,因此能够很容易地配置和读取PIC32的片上外围。目前,在可执行库代码的使用上,没有任何限制或约束。

价格与供货信息。面向PIC32 MCU系列的HI-TECH C PRO目前提供现货,到2008年9月30日之前推广价为1,595美元,之后价格将上调至1,995美元。其中包括HI-TECH Priority AccessTM (HPA) 12个月的免费升级和技术支持,以及30天的不满意退款保证。多个用户和教学性质用户可享有一定优惠。。


免费的完整性能评估。面向PIC32 MCU系列的HI-TECH C PRO完整功能45天试验版,可以在HI-TECH的网站http://microchip.htsoft.com 上免费下载。

相关推荐

风河携手英飞凌发力精密车用电子的软件工具

风河  编译器  2012-01-19

风河与英飞凌共同开发车用软件工具

英飞凌  编译器  2012-01-12

element14社区推出技术门户

element14  微处理器  PIC32  MX1  2011-11-22

Microchip第100亿颗PIC单片机交付三星电子

微芯科技  单片机  PIC32  2011-09-21

PortlandGroup推出PGI CUDA编译器

PortlandGroup  编译器  2011-07-01

Microchip与Digilent联合推出32位单片机开发平台

Microchip  PIC32  2011-06-14
在线研讨会
焦点