搭建STM32开源开发环境
公司为了统一开发环境,将所有的基于arm的处理器开发环境统一为Eclipse,于是乎有了该篇日记,以记录搭建过程及使用过程中出现的各种问题。网络中有很多关于搭建STM32开源开发环境的文章,但搭建和使用中有些问题并没有解答。
一.下载相关软件:
1.下载Eclipse集成开发环境,直接下载Eclipse IDE for C/C++ Developers目前最新版本代号为Neon。
2.下载gnu arm eclipse plugin,用该插件支持arm gcc编译器相关配置。
3.下载交叉编译工具链,此处使用GCC ARM Embedded in Launchpad该处的工具链。
4.下载Build Tool工具,该工具提供编译工程需要的相关命令如:make、rm、echo等。
二.搭建开发环境:
1.将下载好的Eclipse压缩包解压到期望的安装位置,比如D:\Program Files,同时为了方便使用,建立桌面快捷方式。
2.安装gnu arm eclipse 插件。打开Eclipse 点击菜单[Help]>[Install New Software...]进入插件安装界面:
在弹出界面点击1.[add...] 然后在弹出窗口点击2.[Archive...]选择下载的gnu arm eclipse插件文件。
点击ok按钮弹出如下界面,选择需要安装的插件,此处选择全部安装。
点击[Next]按钮,等待进度条完成,在弹出窗口选择[Accept],点击[Finish]完成安装。
3.安装交叉编译工具链。
4.安装Build Tools。
通过上述步骤开发环境已经完全安装成功,下面需要打开Eclipse配置交叉编译工具、Build Tools的路径。
打开Eclipse点击[Windows] > [preference] 打开配置窗口,点击C/C++选项,然后点击[Global Tools Paths]选项,如下图,在窗口右侧设置Build Tools路径以及交叉编译工具链路径,可以手动选择安装路径,也通过[Restore Defaults]按钮自动设置路径。
自此开发编译环境安装、配置完成,可以进行项目开发了
三.使用过程出现问题:
1.未指定浮点支持选项,编译时会出现如下错误:
Error: selected processor does not support `vstmdbeq r0!,{s16-s31}' in Thumb mode
解决该问题通过设置项目属性中[C/C++ Build] > Setting 窗口中的Tool Setting选项[Target Process]子项中的[Float ABI],根据需要设置为软件浮点、硬件浮点,同时修改[FPU]下拉选项,选择具体实现。
2.未定义'_exit' 和 '_sbrk'错误:
exit.c:(.text.exit+0x16): undefined reference to `_exit'
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'
解决该问题需要在[C/C++ Build] > Setting 窗口中的Tool Setting选项[Cross Arm C Linker]子项[Miscellaneous]中添加'--specs=nosys.specs'。
3.在工程中屏蔽不需要编译的文件:
在编译工程时往往需要屏蔽一些文件,但又不想将其删除,可以通过设置[C/C++ General]选项中子项[Paths and Symbols]中[Source Location]窗口中的Filters,来批量屏蔽不需要编译的文件。
4.汇编文件必须以大写的'.S'结尾,小写的'.s'文件默认不进行编译。