HI-TECH C COMPILER (Cypress PSOC) Pro V9.61PL4及其破解

上传者: freechinaren | 上传时间: 2021-11-09 16:56:16 | 文件大小: 4.8MB | 文件类型: -
Cypress与HI-TECH发布最新编译器,加倍PSoC器件的存储能力 Cypress半导体公司和HI-TECH Software日前宣布了一项新的编译技术,能够扩展动态可配置PSoC混合信号阵列的存储容量和性能。这款新的ANSI C编译器,即面向PSoC混合信号阵列的HI-TECH C PRO,开拓了HI-TECH的Omniscient Code Generation(全知代码生成,OCG)技术,能够从根本上降低PSoC的代码量。 PSoC混合信号阵列集成了可编程的模拟和混合功能,带有一个8位MCU内核,高达32KB闪存和高达2KB的SRAM。能够广泛用于成本敏感、空间受限的消费类应用,包括触摸屏接口、电动机控制以及近感探测及其它。PSoC设备能够进行动态重配,在相同硅片上执行多个独立的功能,因此能够减少元器件数量、缩减电路板空间,并降低功耗。 虽然在PSoC器件上增加可重置功能并不会增加对硅芯片的需求量,但是每一个可重置功能都需要额外的程序代码。在一些应用中,附加功能的增加将导致程序代码量大于片上闪存。此外,较大的软件栈和变量需求也可能使片上SRAM达到极限,从而增加未发现的栈溢出的可能性。截至目前,解决SRAM和闪存局限的做法是:1)限制终端产品的功能,2)将应用移植到更为昂贵、带更多SRAM和闪存的PSoC器件,或者3)手动进行代码的汇编工作,从而减少程序、栈和变量所占空间-一个非常麻烦且耗时的任务,在很大程度上会限制编程代码的可移植性。但是事实上,所有这些选择都不具备足够的吸引力。 面向PSoC混合信号阵列的HI-TECH C PRO编译器使用OCG技术,可以在编译前检查所有的程序模块,从而优化指针、寄存器和栈分配,并减少冗余代码。这款编译器还能够释放SRAM,并通过直接编译可寻址的优化功能栈(面向所有非递归和不可重入代码),达到减少对PSoC器件变址寄存器的资源争夺。由于代码量减少使执行周期变少,所以新编译器能够提高PSoC器件的性能。 与那些宣称“全局优化”,但是却仅在单独的程序模块中运行的寄存器有所不同,Omniscient Code Generation会检查全部程序中的每个模块,并对所有编程模块进行优化。PSoC器件中的C语言代码(使用OCG技术进行编译)量,仅仅是其它竞争型编译器所产生代码量的50%,从而使任意PSoC器件片上闪存的程序代码有效存储量翻番。既然执行的代码数量得到减少,那么性能自然得以提升。 SRAM的使用率更是得到了提高,因为OCG了解并且对变量和编译栈所需要的存储容量进行准确分配,甚至能够决定指针变量的范围,并在可能的情况下分配单字节指针。这样做的效果,就是编译器增加了SRAM的可用性,有的时候甚至能提高相当大的百分比。此外,通过对程序所需的最大深度静态设置栈,OCG潜在阻止了灾难性的栈溢出。 基于所有程序模块的调用关系图和指针引用图。在进行编译的准备过程中,OCG编译器会针对程序中的每个模块生成部分编译过的代码库。然后,它会针对所有这些库功能(在程序中随处进行引用)进行寻找,并建立一个“调用关系图”。一旦调用关系图完成,那些从来不被调用的功能被移除,编译器对那些被称为可重入(re-entrantly)的功能进行辨别和标注,例如来自主代码行的功能以及中断功能。 OCG编译器还能够在每个程序模块中生成任意指针的指针引用图。由于编译器知道指针指明的对象大小,所以它能够发现任意对静态分配对象的访问,从而提醒编程人员可能的无效存储访问。那些从来没有初始化的指针会被发现,并在编译过程中给予适当警告。此外,该编译器为开发人员提供了一个有价值的调试工具,能够显示所有指针和其指定目标的报告。 该款编译器还能够识别不同源文件中的变量或对象的不相符的声明,并对使用者发出警告。 通过优化变量和栈释放SRAM。传统的编译器通常会对变量所占空间做最坏打算,这样一来就导致了SRAM资源的利用不足。既然编译器知道所有变量的大小,那么它就能够根据每个变量实际需要的内存大小进行分配,根据应用的不同,释放10%甚至更多的SRAM空间。 就像许多低成本的8位可编程产品,PSoC混合信号阵列使用相同的SRAM空间储存软件功能栈和数据变量。如果为动态栈的最大深度分配的SRAM空间不足,那么栈就会溢出到数据变量空间,从而导致程序出错。 多数功能都是不可重入和非递归的,而且可以借助一个可预测的静态编译栈实现。该编译器的OCG技术检查所有的程序模块,识别所有的不可重归和非递归功能,并且利用恰如其分的内存容量来编译和优化一定大小的功能栈,从而容纳每一个功能的最大深度。既然已经确定了调用关系图,那么在不同时间内执行的功能可以针对其静态编译栈分享相同的SRAM空间。这样的特性将栈空间降低到必需的绝对极小值,从而为数据

文件下载

评论信息

  • sdv :
    很好,虽然常用的还是汇编,但会慢慢学习C的,这个工具很好。
    2017-03-21
  • wuxianglin2000 :
    我这边不知道怎么一直装不上,老是报错
    2014-11-09
  • c786292776 :
    非常不错,正好上班要用,就不用求别人了
    2014-09-22
  • qqa111111 :
    挺好的,刚好需要
    2014-08-08
  • liyong1999 :
    现在在使用psoc ,需要修改程序,希望新工具可以用上。
    2014-02-28

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明