PSoC动态配置能力实用.pdf
2021-11-11 17:10:10 101KB
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空间。这样的特性将栈空间降低到必需的绝对极小值,从而为数据
2021-11-09 16:56:16 4.8MB Cypress
1
这是在psoc上开发的 跑马灯应用程序 里面包含工程文件
2021-10-28 22:00:40 2.02MB 跑马灯
1
嵌入式开发实例,流水灯基于psoc5lp cortex M3,,,,,
2021-10-28 20:47:32 78KB psoc 流水灯
1
清华大学PSOC(ARM CMO+以及CM4双核)课程指导书,能帮你快速入门PSOC,资料包括收集的PSOC中文资料
2021-10-09 21:25:19 88.25MB psoc 清华大学 ARM STM32
1
PSoC 相当于MCU+可编程模拟外围电路+可编程数字外围电路。FPGA是可编程数字外围电路。现在的单片机一般是mcu+有限的固定的模拟或数字外围。PSoC 的最大特点就是集成度高,设计灵活。可以看成是MCU,FPGA/CPLD,ispPAC集合。
2021-09-22 17:41:54 35KB 单片机 PSoC FPGA 区别
1
capsense_电容感应介绍 CyFi101-CyFi Low-power RF 入门 EZ-Color 100 培训模块:HB LED和色彩学介绍 EZ-Color 101 培训模块:PSoC Express设计和温度反馈
2021-07-22 21:04:28 159.63MB PSOC Cypress 嵌入式电容测量设计开发
1
PSoC_Designer_Module_4 PSoC入门培训模块:如何使用PSoC Express和FirstTouch入门工具 第一次感应设计视频演示和指导 第一次感应设计视频演示和指导
2021-07-22 21:04:28 65.05MB PSOC Cypress 电容传感器开发设计
1
基于 PSoC 的步进电机的控制 基于 PSoC 的无刷直流电机(BLDC)控制 几分钟内可完成的触摸感应设计- CapSense Express 如何使用 PSoC Designer 5.0 设计电容式触摸感应项目
2021-07-22 21:04:27 76.73MB PSOC Cypress 电容传感器测量开发
1
PSoC 培训课程高级模 拟电路设计 PSoC_Designer_Module_2 PSoC_Designer_Module_2
2021-07-22 21:04:27 22.65MB PSOC Cypress 电容传感器测量设计开发
1