STM32常用的开发环境是Keil MDK,IAR for ARM,STM32CubeIDE等桌面开发环境,其中除STM32CubeIDE为ST官方提供的免费IDE,另外两者为第三方收费IDE,需要购买license。
此处仅对IDE所使用的编译器、链接器等进行列举对比。
编译器 | 链接器 | 链接文件 | |
---|---|---|---|
Keil MDK AC5(旧版本) | armcc | armlink | .sct |
Keil MDK AC6(2015年后版本) | armclang | armlink | .sct |
IAR for ARM | iccarm | ilinkarm | .icf |
STM32CubeIDE | arm-none-eabi-gcc | arm-none-eabi-ld | .ld |
对于准备学习STM32的小伙伴建议使用Keil MDK AC6版本,毕竟网上提供的例程大多基于Keil MDK进行开发的,虽然大多基于AC5版本,但是网上有不少资料可指导将工程快速迁移到AC6版本上。之所以不推荐AC5版本是因为Keil MDK以不再支持,目前主推的是AC6版本,并且基于官网所述AC6相对于AC5有不少的优势。
相对于Keil MDK来说,IAR for ARM其实也有一定的优势,有兴趣的小伙伴可基于编译速度和编译生成文件的大小等方面查询网络资料。建议有一定基础的小伙伴可选择作为自己的IDE,发掘IAR for ARM的魅力。
STM32CubeIDE的优势在于是ST官方提供的,可基于它配置STM32硬件资源的使用,并根据官方标准库或者HAL生成对应的Keil工程或者IAR工程,也可直接开发基于arm-none-eabi-gcc的工程。
对于以上所述的桌面IDE都可以改造成命令行开发环境,后续STM32学习主要基于命令行环境进行开发,并将在以后的文章中讲述STM32命令行开发环境的搭建。