做单片机开发,选对编程软件能省不少事。不同的MCU支持的开发环境不一样,有的只能用厂商自家的IDE,有的通用工具链都支持。新手经常纠结用哪个,今天把常用的单片机编程软件梳理一下,说说各自的优缺点和适用场景。
Keil MDK应该是国内用得最多的ARM单片机开发环境,特别是51单片机和STM32开发,基本人手一套。Keil的优点是稳定、调试功能强、支持的芯片多,缺点是界面老旧、编辑器体验一般、 license贵(虽然大家都用破解版)。Keil对Cortex-M内核的支持最好,配合CMSIS包能快速搭建工程,J-Link和ST-Link都能直接用。做STM32开发的话,Keil是最稳妥的选择。
IAR Embedded Workbench是另一个老牌IDE,跟Keil定位差不多。IAR的编译器优化做得很好,生成的代码体积和执行效率比Keil略好,调试器也很强大。缺点是界面更老旧,学习曲线比Keil陡一点。IAR在工业控制和汽车电子领域用得比较多,特别是对代码尺寸有严格要求的场合。
STM32CubeIDE是ST官方推出的免费IDE,基于Eclipse和GCC工具链。它最大的好处是跟STM32CubeMX集成,可视化配置引脚和外设,自动生成初始化代码,省了很多手写驱动的时间。调试用ST-Link直接支持,不用额外装驱动。缺点是Eclipse的老毛病——启动慢、占内存、偶尔卡顿。不过胜在免费,对个人开发者和小公司很友好。
VS Code这些年在嵌入式领域也火起来了。VS Code本身只是个编辑器,需要配合插件(比如C/C++、Cortex-Debug)和外部工具链(ARM GCC、OpenOCD)来实现编译和调试。优点是编辑器体验好、插件丰富、跨平台、免费,缺点是配置比较麻烦,新手要花时间折腾环境。如果习惯了VS Code的编辑体验,又愿意折腾配置,用VS Code做单片机开发完全没问题。
还有一些厂商专属的IDE,比如飞思卡尔(现在NXP)的CodeWarrior、瑞萨的e² studio、TI的CCS(Code Composer Studio),这些是针对特定厂商芯片的,用对应厂商的芯片就必须用对应的IDE。国产MCU方面,兆易创新的GD32支持Keil和IAR,沁恒的CH32有自家的MounRiver Studio,华大半导体的HC32支持Keil和IAR。
选型建议:如果是做STM32或者主流ARM MCU,用Keil或者STM32CubeIDE,前者稳定后者免费;如果是特定厂商的芯片,就用厂商推荐的IDE;如果追求编辑器体验和跨平台,折腾一下VS Code也值得。不管用哪个IDE,核心还是把单片机的原理和C语言搞懂,工具只是辅助,别在选工具上花太多时间,能干活就行。
下一篇:没有了