SEGGER編譯器會是一個新的“Clang”嗎?
素材來源:SEGGER、網(wǎng)絡(luò)
編輯整理:strongerHuang
開發(fā)MCU產(chǎn)品的編譯工具很多,GCC是一個免費通用的編譯器,應(yīng)用于很多集成開發(fā)環(huán)境,比如:STM32CubeIDE、 RT-Thread Studio都集成GCC工具。
然后,還有我們知道Keil、 IAR等IDE都集成了特定的編譯器。
下面講述一下SEGGER編譯器,以及圍繞它周邊的內(nèi)容。
一、關(guān)于SEGGER編譯器
可能很多人都知道SEGGER有一個集成開發(fā)工具,叫做Embedded Studio,這個工具使用的編譯器就是Clang / LLVM和GCC C/C++編譯器。
SEGGER編譯器其實是一個很神秘的東西,至今尚未公開正式版。但從官方信息猜測他們的編譯器指的就是一個“Clang交叉編譯器”。
官方一篇博文指出:SEGGER編譯器它不僅僅只是另一個GCC工具鏈。
Clang具有更現(xiàn)代的設(shè)計,并且通常被認為比GCC更先進。除此之外,Clang還獲得了更為寬松的許可,該許可允許制造可商購的衍生物。ARM / Keil從Clang派生了一個編譯器,從而停止了其先前專有編譯器的開發(fā)。考慮到所有這些,我們決定更深入地研究Clang,以使用它創(chuàng)建我們自己的編譯器為目標(biāo)。
該編譯工具鏈包含:
即可運行的GCC和LLVM / Clang交叉編譯器
SEGGER 運行時庫和浮點庫,替換了GLibC或Newlib
SEGGER Linker解除了GNU Linker的限制
除GNU和Clang匯編程序外,還有SEGGER匯編程序
帶有版本控制集成的多功能項目管理
適用于大多數(shù)流行微控制器的支持包和閃存編程算法
專用且緊密集成的調(diào)試器
使用GDB協(xié)議直接支持J-Link,J-Trace和DAP-Link以及其他調(diào)試器
SEGGER將所有內(nèi)容打包到一個易于下載的“軟件包”中,完全集成并且可以立即使用。
到目前為止,SEGGER一直專注于針對基于Cortex-M微控制器的ARM Thumb-2代碼的代碼生成器的更改。
下一步將包括改善與其他編譯器的兼容性,而不僅僅是GCC和Clang(針對實用程序和其他專業(yè)),以使其易于切換。
二、Embedded Studio
Embedded Studio是SEGGER下面的一款集成開發(fā)環(huán)境(IDE),和與Keil、 IAR類似,是一款大眾化的IDE,相信很多人都知道,并使用。
Embedded Studio目前使用的編譯器就是Clang / LLVM和GCC C/C++編譯器,并沒有真正使用SEGGER編譯器。,可免費用于任何非商業(yè)用途。
之前硬漢哥對比了Embedded Studio與MDK和IAR優(yōu)缺點:
優(yōu)點:
編輯器功能比MDK和IAR強勁太多倍,幾乎可以媲美notepad++,VSCode,SI等編輯器,像代碼格式化,文件比較,代碼提示,專業(yè)的代碼高亮,各種風(fēng)格主題等。
超快速的工程啟動,現(xiàn)在MDK5和IAR8開機都得反應(yīng)會,特別是超大工程時,使用Embedded Studio的效果非常明顯。同時編譯速度也飛快,不比IAR差,比MDK強很多。編譯個HAL庫,帶browse info,速度也是嗖嗖的。
調(diào)試工具方面,Embedded Studio簡直不要太豐富,因為有JLINK的支撐,像JScope,RTT,SystemWiew,embOSView等都很好用。
個人使用免費,支持全功能, 含Windows, macOS 和 Linux版本。
已經(jīng)率先支持RISC-V內(nèi)核。
缺點:
僅支持自家的JLINK
Embedded Studio的配置用的不順手,配置選項多,不像MDK那種直接圖形化配置。
三、ARM Embedded Studio
長按前往圖中包含的公眾號關(guān)注
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!