国产MCU经历几年的大洗牌,格局基本稳定下来,很多厂商已经发力从兼容逐渐拓展自己的版图,IDE(Integrated Development Environment,集成开发环境)就是其中一环。
最近,工程师发现雅特力搞了个IDE。可以说,对于MCU厂商而言,IDE似乎又是一个发力点。那么,国产的IDE到底怎么样,现在IDE的格局又如何?
IDE的三种类型
所谓IDE,正如其名,其中囊括了编辑器、编译器、调试器和图形用户界面等工具,是一个集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套件。IDE主要分成三种类型。
第一种是通用IDE,也被称作是第三方IDE。顾名思义支持STM32、PIC32、GD32等各种不同厂家MCU的IDE,主要包括Keil、IAR、Embedded Studio、Arm Development Studio、Mbed Studio、QT Creator、CrossWorks、Embeetle、RT-Thread Studio、TASKING、Arduino IDE等。
通用IDE通常支持各种厂商的各种架构的MCU,也会与MCU不断加强合作,以支持更多MCU。
举几个常见IDE来说,Arm官方推出的Keil是大部分工程师接触最多的IDE。根据内核它分为MDK(微控制器开发工具套件)、C51、C166、C251,其中MDK分为社区版和商用版,Keil简单易用、功能强大,编译速度在大型项目上具备优势,编出来的代码大小较小且运行更为安全,而且官方出品兼容性最好,备受开发者青睐。
IAR Systems开发的IAR Embedded Workbench则支持多种单片机芯片和处理器架构,如Arm、RISC-V、Renesas MCU、STM MCU、NXP MCU、Microchip MCU、TI MSP430、Nuvoton。老工程师比较喜欢用它,在很多benchmark跑分测试中同颗芯片的运行结果效率都更高一些,编译的代码也比Keil占用内存空间更小一些。
Segger开发的Embedded Studio也支持Arm和RISC-V架构,合作厂商包括兆易创新、先楫半导体、NORDIC、芯驰等。该工具具有类似Visual Studio的外观,比较直观简单。
Qt Creator是跨平台的集成开发环境(IDE),专为最大限度地提高开发者的工作效率而定制。同时还支持在编程过程中使用GitHub Copilot等编码助手。
RT-Thread Studio是一站式的RT-Thread开发工具,主要推荐使用RT-Thread这款RTOS。主要包括工程创建和管理,代码编辑,SDK管理,RT-Thread配置,构建配置,调试配置,程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率。
第二种是专用IDE。就是厂商针对自己旗下产品推出的IDE,基本上MCU厂商都会推出自己配套的IDE,同时不断在此基础上不断扩展工具链。主要包括STM32CubeIDE、MCUXpresso IDE、Code Composer Studio、e² studio、AURIX Development Studio、MPLAB IDE等。
这些IDE都针对自家MCU进行了全面的优化,能够发挥出MCU最大性能,也会与上面通用IDE的IAR、Segger进行合作,将功能全部集成到一起。
更重要的是,这些工具一般都是免费的,在用厂商的MCU时候一般都不用再申请License。可以说,这既算是MCU厂商对于自己产品的一种推广,也算是一种售后。
第三种是搭建IDE,也就是说工程师自己根据免费开源的工具搭建的IDE。主要组成包括Eclipse、VS Code、GCC等,因为需要一定基础,而且搭建出来的效果可能不如现成的产品,属于发烧友和个人习惯的一种选择。
VS Code可以说是最受欢迎的开发环境,无需多言。GCC拥有开源、免费、资料多等优势,更重要的是可以跨平台。尽管使用GCC对编译后造成的不良后果负全责,比如编译后代码量庞大,程序跑飞致使板级器件烧毁,系统死机崩溃导致关键数据丢失之类情况。
Eclipse则是很多个人开发者和小型企业的选择,如NXP、ST、TI的专用IDE,多数也开源基础上开发的,相当于IDE界的安卓。不过,虽然它很强大,但是搭建开发环境比较麻烦,开发环境也是看MCU是否支持,所以MCU厂商针对自己MCU做的IDE会更好用一些。
国外IDE已经很成熟
IDE想要做好其实很费时间、人力和资金。国外的MCU厂商基本都有自己的IDE,这些IDE已经经历了很多年的迭代,同时也有很多与其它软件厂商的合作。以下列举几个最常见的国外IDE:
STM32CubeIDE是ST推出的官方IDE工具,适用于追求完整、免费STM32开发环境的用户,同时也适用已经拥有IDE(包括Keil、IAR)的用户,可以在其中轻松集成各种组件。有了它,开发STM32的MCU和MPU基本和“开挂”一样。
它基于 Eclipse/CDT框架和GCC工具链进行开发,并基于GDB进行调试,允许集成数百个插件,以完善了Eclipse IDE功能。
MCUXpresso IDE是NXP推出的官方IDE工具,适用于基于Cortex-M内核的恩智浦MCU,包括通用、跨界和无线MCU。MCUXpresso IDE提供高级编辑、编译和调试功能,增加了MCU专用的调试视图、代码跟踪和分析、多核调试和集成配置工具。
MCUXpresso IDE调试连接采用来自恩智浦、P&E Micro和SEGGER优化的开源和商用硬件调试器,支持Freedom、塔式系统、LPCXpresso、基于i.MX RT的EVK,以及定制开发板。
Code Composer Studio是TI推出的官方IDE工具,包含一整套用于开发和调试嵌入式应用的工具。
它将Eclipse和Theia框架的优势与TI先进的功能相结合,提供了一种功能丰富的优异开发环境。基于云的Code Composer Studio无需下载和安装大量软件即可在云中进行开发。
e² studio是瑞萨推出的官方IDE工具,它是面向瑞萨电子MCU的基于Eclipse的集成开发环境 (IDE),有点类似Keil MDK和STM32CubeIDE,可以图形化配置,只需要点点即可生成工程,是快速入门瑞萨的捷径。
除了Eclipse自身强大的代码编辑器外,e² studio还提供了丰富的扩展功能。E² Studio涵盖了从下载示例代码到调试的所有开发过程。
AURIX Development Studio是英飞凌2019年推出的官方IDE工具,支持英飞凌TriCore内核AURIX系列MCU,包括Eclipse IDE、C编译器、多核调试器、英飞凌低级驱动程序 (iLLD),它没有时间和代码大小限制,可以编辑、编译和调试应用程序代码。
MPLAB X IDE是Microchip推出的官方IDE工具,是一款可扩展、高度可配置的软件程序,集成了强大的工具,可帮助发现、配置、开发、调试和鉴定我们大多数微控制器和数字信号控制器的嵌入式设计。
MPLAB X IDE可与MPLAB软件和工具开发生态系统无缝协作,其中许多软件和工具是完全免费的。
国内正在加强IDE布局
一颗MCU芯片,想要更好地开发,必然就要有更好的工具。国内MCU厂商也早已注意到这一点,并且逐步推出相关产品。
AT32 MCU是雅特力2022年左右推出的官方IDE工具,从系统开发阶段至量产烧录,及后续的硬件更新,都提供了全面性支持。通过易用的软硬件工具,提升设计人员开发体验和便利,降低入门使用门坎,并减少重复设置工作,加速开发效率。
雅特力AT32 IDE为跨平台ARM嵌入式系统的软件开发环境。包含一系列Eclipse插件和工具,使用者可在AT32 IDE开发环境下进行创建、建置和调试AT32 MCU。
MounRiver Studio(山河)是沁恒的官方推荐的IDE工具,名字取自“天圆地方,山河相依”。它基于Eclipse GNU版本开发,在保留原平台强大代码编辑功能、便捷组件框架的同时,针对嵌入式C /C++开发,进行了一系列界面、功能、操作方面的修改与优化,以及工具链的指令增添、定制工作。力求打造一款硬件工程师喜爱的、以RISC-V内核为主的嵌入式集成开发环境。
官网显示,MounRiver工作室由一群怀揣共同目标的“奋斗者”们组成:他们中有经验丰富的工具链开发工程师、有钻研插件开发的软件工程师、也有深谙嵌入式行业的需求分析、项目策划工程师……专注,是他们不变的名片;专业,是他们不懈的追求。
CSU-IDE是芯海推出的官方IDE工具,目前为5.0版本,该版本替换了CSU-IDE V4.0中的编译器、汇编器、链接器、调试器、以及新增lib制作工具,增强了IDE编译和调试过程的稳定性和准确性。
它支持芯海的混合信号处理器CSU系列产品的开发,并支持CSU C和ASM 编程语言。CSU-IDE V5.0 提供了强大的工程管理、编辑、设置、查找以及调试等功能,以及更加友好的界面。
除了自研IDE,国产厂商也正在不断加强与第三方IDE公司合作。其中,兆易创新的合作动作就非常多:
2019年,卡姆派乐发布了国内首款自研RISC-V集成开发环境卡姆派乐IDE(COMPILER IDE),全面支持GD32V系列RISC-V MCU,同年继续加强在Arm开发领域的合作关系,2023年继续支持昭兆易创新车规级MCU和M7内核MCU;
2020年,IAR Systems为兆易创新基于RISC-V内核的MCU产品提供性能强大的开发工具;
2021年,比利时初创公司Embeetle与兆易创新联合推出IDE;
2022年,兆易创新与Ashling旗下的RiscFree™工具链全面适配,包含集成开发环境(IDE)和软件开发支持。
国产IDE,工程师怎么看
事实上,对于国产IDE,工程师的意见并不统一。
有工程师指出,目前,现在几乎所有的编程语言及其工具链,主流的工业操作系统都是开放源码,所以其实本身就是自主可控的。所以做自主IDE更多还是为了提升自己MCU的开发体验和性能,这是好事,但也是一个很需要投入的事。
也有工程师认为,IDE本身比较复杂,做IDE不好赚钱,不能靠软件的销售实现开发和赚钱的正反馈,所以导致“做不如买,买不如租”,在软件方面似乎一直国内都有点落后。
有工程师指出,不赚钱的IDE是不存在的,但是小团队做不起,开发周期太长,大团队不屑于做,因为来钱慢。IDE算是一种企业工具,他们往往不喜欢做这种可以让对手可以受益的事,这算一种特色。
总之,一个好的IDE,才能让MCU产品拥有更好的开发体验,无论是从第三方支持,还是自我开发,最终目标一定是更好的工程师体验。