Diab Compiler: 嵌入式性能提升的长期记录
现代计算机仅理解二进制代码,这一概念可追溯至1937年约翰·文森特·阿塔纳索夫设计的首台实用数字电子计算机原型。由于电子设备更容易可靠地区分饱和(ON)和截止(OFF)状态,二进制系统成为硬件驱动的选择,但其在表示数值时需要更多位数,且人类难以阅读。
为解决二进制代码的阅读困难,1947年出现了低级汇编语言,随后高级语言(如Autocode、COBOL、C和Swift)逐步简化编程,提高效率。编译器作为翻译软件,将高级语言代码转换为机器可读代码,其工作流程包括词法分析、语法分析、语义分析、优化和代码生成等阶段。
Diab编译器自1980年代创建以来,持续发展近40年,最初采用统一架构和架构特定表文件设计,支持跨编译。1990年代,Diab扩展了对m68k、PowerPC、ColdFire、MIPS、ARM等多种处理器的支持,广泛应用于汽车、网络、工业和航空航天等关键领域。2000年被Wind River收购后,Diab持续维护并增强,现分为5.9x和7.x两个版本,其中7.x版本采用LLVM技术,支持32位和64位Cortex-A、M和R处理器。
Diab工具链包含驱动、编译器、汇编器、链接器、GNU Arm®链接器支持、库、链接时优化(LTO)、未定义行为检查器(UBSan)、内存泄漏检查器、指令集模拟器、Eclipse CDT插件等组件。Diab编译器针对嵌入式市场特点,提供数百种优化选项,包括全程序优化(WPO)、小数据区优化、代码因子优化、反向内联、中断处理优化、位置无关代码生成、结构格式控制、内存映射控制、多对象模块格式支持等。
Diab编译器支持代码验证,提供Wind River WindISS和QEMU模拟器,允许开发者在无目标硬件的情况下进行高效验证。在安全性和可靠性方面,Diab编译器通过TÜV SÜD认证,支持ISO 26262、IEC 61508、DO-178C、IEC 60880和EN 50128等安全标准,并确保与第三方工具的互操作性。
Diab编译器由Wind River支持,提供标准支持、遗留支持和冻结分支支持等多种服务,支持周期至少为7年。Wind River凭借其技术、服务和合作伙伴生态系统,推动各行业数字化转型,Diab编译器作为其核心产品之一,持续支持嵌入式市场,特别是汽车和工业领域的 mission-critical 应用。