良许Linux教程网 干货合集 SEGGER编译器会是一个新的“Clang”吗?

SEGGER编译器会是一个新的“Clang”吗?

有许多编译工具可供开发微控制器单元(MCU)产品使用,其中GCC是一个免费的通用编译器,广泛应用于许多集成开发环境,例如:STM32CubeIDE、RT-Thread Studio等,它们都内置了GCC工具。

此外,我们还知道一些IDE工具如Keil和IAR也都集成了特定的编译器,供开发者选择使用。这些IDE提供了更多的功能和特性,可以满足开发者对编译工具的个性化需求。

image-20231213185735505
image-20231213185735505

下面讲述一下SEGGER编译器,以及围绕它周边的内容。

一、关于SEGGER编译器

可能很多人都知道SEGGER有一个集成开发工具,叫做Embedded Studio,这个工具使用的编译器就是Clang / LLVM和GCC C/C++编译器。

SEGGER编译器其实是一个很神秘的东西,至今尚未公开正式版。但从官方信息猜测他们的编译器指的就是一个“Clang交叉编译器”。

image-20231213185732545
image-20231213185732545

官方一篇博文指出:SEGGER编译器它不仅仅只是另一个GCC工具链。

Clang具有更现代的设计,并且通常被认为比GCC更先进。除此之外,Clang还获得了更为宽松的许可,该许可允许制造可商购的衍生物。ARM / Keil从Clang派生了一个编译器,从而停止了其先前专有编译器的开发。考虑到所有这些,我们决定更深入地研究Clang,以使用它创建我们自己的编译器为目标。

该编译工具链包含:

  • 即可运行的GCC和LLVM / Clang交叉编译器
  • SEGGER 运行时库和浮点库,替换了GLibC或Newlib
  • SEGGER Linker解除了GNU Linker的限制
  • 除GNU和Clang汇编程序外,还有SEGGER汇编程序
  • 带有版本控制集成的多功能项目管理
  • 适用于大多数流行微控制器的支持包和闪存编程算法
  • 专用且紧密集成的调试器
  • 使用GDB协议直接支持J-Link,J-Trace和DAP-Link以及其他调试器

SEGGER将所有内容打包到一个易于下载的“软件包”中,完全集成并且可以立即使用。

Clang和GCC都有非常先进的前端,可以将源代码转换为中间表示(IR),并且都可以生成出色的代码。

到目前为止,SEGGER一直专注于针对基于Cortex-M微控制器的ARM Thumb-2代码的代码生成器的更改。

下一步将包括改善与其他编译器的兼容性,而不仅仅是GCC和Clang(针对实用程序和其他专业),以使其易于切换。

二、Embedded Studio

Embedded Studio是SEGGER下面的一款集成开发环境(IDE),和与Keil、 IAR类似,是一款大众化的IDE,相信很多人都知道,并使用。

Embedded Studio目前使用的编译器就是Clang / LLVM和GCC C/C++编译器,并没有真正使用SEGGER编译器。,可免费用于任何非商业用途。

image-20231213185729183
image-20231213185729183

之前硬汉哥对比了Embedded Studio与MDK和IAR优缺点:

优点:

  • 编辑器功能比MDK和IAR强劲太多倍,几乎可以媲美notepad++,VSCode,SI等编辑器,像代码格式化,文件比较,代码提示,专业的代码高亮,各种风格主题等。
  • 超快速的工程启动,现在MDK5和IAR8开机都得反应会,特别是超大工程时,使用Embedded Studio的效果非常明显。同时编译速度也飞快,不比IAR差,比MDK强很多。编译个HAL库,带browse info,速度也是嗖嗖的。
  • 调试工具方面,Embedded Studio简直不要太丰富,因为有JLINK的支撑,像JScope,RTT,SystemWiew,embOSView等都很好用。
  • 个人使用免费,支持全功能, 含Windows, macOS 和 Linux版本。
  • 已经率先支持RISC-V内核。

缺点:

  • 仅支持自家的JLINK
  • Embedded Studio的配置用的不顺手,配置选项多,不像MDK那种直接图形化配置。
image-20231213185726039
image-20231213185726039

三、ARM Embedded Studio

ARM Embedded Studio是ARM公司开发的一款用于开发ARM处理器的集成IDE,使用ACC编译器。

image-20231213185723384
image-20231213185723384

据悉,SEGGER编译器的beta版本已用于ARM Embedded Studio之中,AEGGER编译器免费将其用于非商业用途和评估。

最后,SEGGER编译器就是一个Clang吗,它可免费用于非商业用途,你看好吗?

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部