共查询到19条相似文献,搜索用时 453 毫秒
1.
在嵌入式系统仿真开发环境中,为了能够对嵌入式系统的硬件环境和单片机CPU进行仿真,就必然需要对硬件环境以及CPU作形式化的描述.在硬件描述语言标准VHDL语言基础上,结合C++语言的语法规则,设计并实现了嵌入式系统前端开发工具EHDL语言.本文介绍了EHDL语言的设计思想及编译器实现的主要技术首先介绍了EHDL语言的设计模型和程序结构,然后介绍EHDL语言编译器的主要实现技术. 相似文献
2.
3.
堆栈处理器是一种面向嵌入式控制领域的处理器,其执行过程不依赖于通用寄存器而是硬件堆栈。文中以一款基于FPGA设计的16位堆栈处理器为平台,研究如何将一个C源代码转换成能够被目标处理器汇编器识别的汇编指令。为了能够迅速有效地实现代码生成器,文中选用LCC。LCC是一款可变目标的C编译器,通过重新书写目标处理器的描述文件,LCC可以生成特定处理器的汇编指令。文章的最后通过一个简单的测试证明了C语言是可以移植到堆栈处理器上的。 相似文献
4.
在嵌入式系统仿真开发环境中,为了能够对嵌入式系统的硬件环境和单片机CPU进行仿真,就必然需要对硬件环境以及CPU作形式化的描述。在硬件描述语言标准VHDL语言基础上,结合C 语言的语法规则,设计并实现了嵌入式系统前端开发工具EHDL语言。本文介绍了EHDL语言的设计思想及编译器实现的主要技术。首先介绍了EHDL语言的设计模型和程序结构,然后介绍EHDL语言编译器的主要实现技术。 相似文献
5.
6.
基于GCC的交叉编译器研究与开发 总被引:1,自引:1,他引:0
随着日前越来越多嵌入式系统的飞速发展,必须快速有效地为之开发合适的交叉编译器。因为GCC(GNU Compiler Collection)是非常优秀的交叉编译器而且具有很好的可移植性,所以移植GCC是一个非常正确的方法。以交叉编译系统ZLTCG的开发为背景,详细分析了交叉编译系统GCC的体系结构,对其高度可移植性所依赖的中间表示和机器描述技术进行了深入研究,并在此基础上阐述了如何基于GCC构造用于嵌入式系统开发的交叉编译器。介绍了GCC的内核和工作机制,特别是RTL(Register Transfer Language)代码和汇编代码的生成以及解释GCC的移植方法和移植实例,对测试方法进行了探讨。 相似文献
7.
编译器后端移植是目前嵌入式系统研究的重要领域,如何快速实现编译器后端移植仍然是嵌入式系统研究的热点。采用新的编译器架构LLVM,移植NiosⅡ处理器来分析LLVM快速后端移植架构。使用LLVM后端移植架构的TableGen描述NiosⅡ体系结构例如指令、寄存器等,使用完备LLVM C++函数库实现复杂或特殊的操作。TableGen与C++函数库互相配合,最终实现LLVM架构对NiosⅡ后端的支持。实验结果表明与GCC编译器后端移植方法相比,基于LLVM架构的编译器后端移植方法的工作量减少了64.2%~83.9%,大大节省后端移植时间。 相似文献
8.
首先提出了一种嵌入式编译器测试验证方法,即基于串口传输的变量值验证法,在此基础上设计了一款针对嵌入式C编译器测试的测试用例生成工具ECPAG.该工具根据嵌入式C语法,采用随机算法产生符合规则的任意语法组合,采用概率算法限定各语法要素的生成概率,成功地将基于深度优先搜索的有向图拓扑排序方法应用于函数随机调用中的递归问题的解决.工程应用表明:该自动化工具生成的测试用例集合能够较好地覆盖嵌入式C语法,达到75%以上的块测试覆盖率. 相似文献
9.
《单片机与嵌入式系统应用》2006,(6):76-76
Altera公司为NiosII系统开发人员提供新的NiosII C语言至硬件加速(C2H)编译器效能工具,该工具能够有效的提高嵌入式软件的性能。由于越来越多的嵌入式设计使用了FPGA,因此,NiosII C2H编译器的目的是帮助嵌入式系统开发人员提高效率,实现成功的设计。作为NiosII C2H编译器的一部分,Ahera还允许第三方工具供应商使用其系统级基本结构,包括QuartusII SOPC Builder工具,以促进多种电子系统级(ESL)设计工具的开发。 相似文献
10.
基于汇编代码的指令调度器的设计与实现 总被引:1,自引:0,他引:1
随着嵌入式处理器在各个领域的广泛应用,嵌入式软件的复杂度越来越高.充分发掘嵌入式处理器的性能,需要高级编译优化技术的支持.指令调度是编译器发掘程序指令级并行性的关键技术之一.设计并实现了一个基于汇编代码的指令调度器.实验结果表明,在TECC嵌入式编译器中集成指令调度器后可显著提高程序的性能. 相似文献
11.
为了解决空间辐射对嵌入式计算机系统正确性的影响越来越明显的问题,基于典型的编译级容错技术,在编译器LCC上实现了基于有向无环图的编译级容错检测方法VarBIFT.该方法可以有效的保护由于粒子效应所引起的瞬时硬件故障,并可针对不同的目标机自动生成容错代码.实验结果表明,VarBIFT使源程序的平均段错误率从32.3%降到了13.9%,平均错误输出率从28.6%降到了9.2%;而其时间开销和空间开销仅为0.7%和36%. 相似文献
12.
一个基于DAG图的指令调度优化算法 总被引:1,自引:0,他引:1
指令调度是优化编译技术中一项关键技术,对于VLIW体系结构的CPU,指令调度显得尤为重要。指令调度是在保证语义正确的前提下,改变指令的执行顺序,减少流水线中的空闲周期,从而提高CPU性能的一种优化方法。文章着重分析了优化编译中的指令调度问题,提出了一个指令调度算法和DAG图的一种化简方法,证明了算法的正确性,分析了算法的效率,比较了生成的新指令序列和最优的指令序列总的执行时间的差别。同时,针对目前流行的编译器GCC的指令调度算法中存在的问题,提出了一个较好的解决途径。 相似文献
13.
This paper defines an abstract data type on which a solution to the name analysis subproblem of a compiler can be based. (Name analysis uses the scope rules of a language to associate uses of identifiers with their definitions.) We give a state model for the ADT, and show how to implement that model efficiently. The implementation is independent of any particular name analysis, so it is possible to create a library module that can be used in any compiler. Such a library module has been incorporated into the Eli compiler construction system. 相似文献
14.
15.
A system based on the notion of a flow graph is used to specify formally and to implement a compiler for a lazy functional language. The compiler takes a simple functional language as input and generates C. The generated C program can then be compiled, and loaded with an extensive run-time system to provide the facility to experiment with different analysis techniques. The compiler provides a single, unified, efficient, formal framework for all the analysis and synthesis phases, including the generation of C. Many of the standard techniques, such as strictness and boxing analyses, have been included. 相似文献
16.
17.
饶伟 《数字社区&智能家居》2006,(8)
通常的C/C 预处理器是一个宏处理器,在编译前自动地把源文件转换为编译器可识别的形式。传统的预处理方法基于文本行替换,没有考虑到具体的上下文环境。这种预处理机制在文件包含、宏作用域、头文件关系上存在着一些缺陷,会影响工程项目代码重用,降低程序的可维护性、可扩展性等。通过从分析c预处理器缺陷出发,并利用FOG[1]及其语言可以得到一种基于元变量和元函数的语法替换机制的解决方案。 相似文献
18.
同步数据流语言(如Lustre)近年来在航空、高铁、核电等安全攸关领域得到广泛应用.这些领域对相关开发工具本身的安全性有着相当高的要求.为尽力解决好”误编译”问题,近期人们借助reliable-by-construction辅助定理证明器实现常规命令式语言编译器的构造和验证取得了很大的成功,如CompCert C编译器.L2C是基于这种方法开发的可信编译器,它以扩展的Lustre语言为源语言,以Clight (CompCert中的C语言子集)为目标语言.就我们所知,L2C是同类工作中唯一面向实际工业应用的同步数据流语言编译器.本文重点介绍L2C编译器的核心翻译步骤及其设计与实现过程中考虑的主要问题和相关经验. 相似文献
19.
Tegawend F. Bissyand Laurent Rveillre Julia L. Lawall Yrom‐David Bromberg Gilles Muller 《Software》2015,45(2):177-196
Domain‐specific languages (DSLs) are well‐recognized to ease programming and improve robustness for a specific domain, by providing high‐level domain‐specific notations and checks of domain‐specific properties. The compiler of a DSL, however, is often difficult to develop and maintain, because of the need to define a specific treatment for a large and potentially increasing number of language constructs. To address this issue, we propose an approach for specifying a DSL compiler using control‐flow sensitive concrete‐syntax based matching rules. These rules either collect information about the source code to carry out checks or perform transformations to carry out compilation. Because rules only mention the relevant constructs, using their concrete syntax, and hide the complexity of control‐flow graph traversal, it is easy to understand the purpose of each rule. Furthermore, new compilation steps can be added using only a small number of lines of code. We explore this approach in the context of the z2z DSL for network gateway development and show that it is beneficial to implement the core of its compiler in this manner.Copyright © 2013 John Wiley & Sons, Ltd. 相似文献