你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32 NUCLEO 开发板基于 Eclipse 开发环境的搭建】

[复制链接]
andeyqi 发布时间:2020-11-16 00:09
对于STM32单片机程序开发的IDE环境经常被使用的是keil 和 IAR,这两个IDE确实使用起来确实很方便,不过对于在linux下开发mcu程序就没有如此方便快捷的IDE供开发者使用了,是不是linux下就没有办法使用IDE来开发STM32的程序呢,这也是此贴着重要研究的如何在linux下的开发环境下通过IDE来调试使mcu的程序,本文以笔者手中的STM32 NUCLEO-F446为硬件平台搭建linux下的开发环境。

1--开发工具(Eclipse)


“虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。”

上述描述截取于百度百科,Eclipse  有很多版本,本文使用的是支持C,C++开发的CDT版本,可以去官网下载最新的版本,如下是下载链接,选择linux下的版本。
https://www.eclipse.org/downloads/packages/


2.--基于Eclipse IDE编译程序
①编译器
编译器使用的gnu的gcc 编译器
②编译环境
makefile
以上两个是Eclipse 编译所依赖的编译环境,本地使用的gcc版本信息如下,版本没有固定的要求只要支持对应的MCU架构即可,大部分的gcc版本是能够支持ARMV7-M架构的mcu开发环境的。
  1. book@100ask:/opt/sdk/gcc-arm-none-eabi-5_4-2016q3/bin$ ./arm-none-eabi-gcc -v
  2. Using built-in specs.
  3. COLLECT_GCC=./arm-none-eabi-gcc
  4. COLLECT_LTO_WRAPPER=/opt/sdk/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/lto-wrapper
  5. Target: arm-none-eabi
  6. Configured with: /home/build/work/GCC-5-build/src/gcc/configure --target=arm-none-eabi --prefix=/home/build/work/GCC-5-build/install-native --libexecdir=/home/build/work/GCC-5-build/install-native/lib --infodir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/build/work/GCC-5-build/install-native/arm-none-eabi --build=i686-linux-gnu --host=i686-linux-gnu --with-gmp=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-mpfr=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-mpc=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-isl=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-cloog=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-libelf=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r,armv8-m.base,armv8-m.main
  7. Thread model: single
  8. gcc version 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496] (GNU Tools for ARM Embedded Processors)
复制代码
本文重点介绍基于Eclipse 搭建开发环境,至于如何基于makefile 编译MCU程序非本文的中重点,论坛内有大神对此方面的介绍,也可以通过强大的cube工具来生成makefile 工程,本文的文末会附上笔者本地makefile 工程,我的makefile工程只是加入了启动依赖的相关文件,不过本文的主要目的是搭建环境,这个简单的工程还是能满足要求的。


本地的编译器和make工具都已经存在的话对于使用Eclipse 来编译程序是很简单的一件事,只要配置下对应的GCC工具所在的位置的环境变量和将makefile工程导入工程目录即可。
具体操作如下:1,工程栏点击右键导入工程
微信截图_20201115231809.png
2.选择导入makefile 工程
微信截图_20201115231903.png
3.设置工程名称及makefile 路径,则完成导入
微信截图_20201115232045.png
4.配置makefile 依赖gcc工具链 PATH环境变量根据本地的配置添加
微信截图_20201115232724.png

微信截图_20201115232858.png
5.至此依赖的编译环境已经配置完成,如果makefile文件编写的没有问题的,工程窗口built project/clean project 就会调用makefile的make all 和 make clean 对工程进行编译了,编译效果如下。

微信截图_20201115233418.png


3.调试环境的搭建
1.stlink 驱动库安装
至此已经可以通过Eclipse 对工程进行编译和清除了,一个IDE 不仅仅需要能够编译程序同时也需要能够对程序进行调试。
本次实验是哟使用的NUCLEO F446的板子上已经集成了个STLINK,本实验使用STLINK对程序进行仿真,需要按照STLINK在linux环境下的驱动程序,安装方法可以参照笔者之前的帖子:
https://www.stmcu.org.cn/module/forum/thread-618905-1-1.html
按照上述帖子完成安装后,接入开发板运行 st-util 命令能够识别出开发板的型号说明已经正确安装并识别到板子,并等待IDE进行链接。
  1. st-util
  2. 2020-11-15T10:43:38 INFO common.c: F446: 128 KiB SRAM, 512 KiB flash in at least 128 KiB pages.
  3. 2020-11-15T10:43:38 INFO gdb-server.c: Listening at *:4242...
复制代码

2.配置debug选项

1.debug (小虫子)选项下拉新建debug  config,按照如下的配置配置
微信截图_20201115234734.png

main 选项卡的配置:配置要调试的elf文件,选择gdb 调试方式为hardware gdb

微信截图_20201115235325.png

debug 选项卡的配置:选择调试器为STLINK并设置端口号为4242,因为之前编译的时候已经设置PATH环境变量,此处的arn-none-eabi-gdb命令是可以正常的执行的不需要加绝对的路径。
微信截图_20201115235728.png

至此编译环境和调试环境已经配置完成,正常没有问题的话就可以对程序进行调试了,调试前本地终端先运行st-util等待IDE进行链接,IDE上点击对debug 按钮就可以进行仿真调试了,如下仿真已经进入main函数内的断点了。


微信截图_20201116000442.png

如果需要使用JLINK进行调试的话,方法也是一致的只是将STLINK相关的配置修改为JLINK即可。








收藏 1 评论3 发布时间:2020-11-16 00:09

举报

3个回答
Kevin201707 回答时间:2020-11-16 09:18:53
收藏
andeyqi 回答时间:2020-11-16 09:32:43
STMCU 回答时间:2020-11-17 09:13:34
感谢分享

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版