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