历史上的今天
今天是:2024年09月08日(星期日)
2020年09月08日 | 用Eclipse开发stm32(GNU ARM Eclipse Plug-in)(编码+编译+下载+调试)
2020-09-08 来源:eefocus
传统的IDE功能强大,特别是调试功能,但是如今,其它软件的发展,大家感觉到传统的IDE用户交互、编辑界面、编码效率不够友好;或者为了降低成本,需要使用开源工具
于是,有人选择使用IDE用来调试,用其它编辑器编码(比如source insight 、sublime text3、notepad++、atom、Eclipse等),来提高效率;或者使用其它的工具链来配合编辑器达到自制一个IDE的效果
当然还有一些改进得比较好的免费IDE和收费的IDE,比如coocox
这里是在Eclipse上编写ARM程序
在Eclipse上编写程序方法:
使用GCC、G++、makefile的方式进行手动编码,一切靠自己
使用Eclipse+插件(工具链等)的方式来实现
当然如果不需要编译就直接用啦
这里是使用GNU ARM Eclipse plug来简化一系列的操作
GNU ARM Eclipse 是一个插件,会帮助自动生成makefile,管理芯片包(现在使用的Keil的包),提供例示程序,以及提供编译、调试的一个框架,只要再安装一些必要的软件(工具链、build工具(比如make)、调试组件)(安装插件时不会一同安装,需要手动安装)就可以进行编译、调试
所以主要教程来自于GNU ARM Eclipse wiki
建议直接看这个
下面是安装的时候的笔记
(一)下载和安装
安装java、配置环境变量
下载Eclipse IDE for C/C++ Developers 环境
解压Eclipse, 下载GNU ARM Eclipse Plug-in最新版本
github组织地址
插件wiki(建议直接看这个,导航在右边)(如何安装插件)

工具链 ,GNU ARM Eclipse Plug-in 插件支持的工具链有很多,如下

比如GCC ARM Embedded(安装教程)不要设置环境变量!!!!!!不带make,所以用这个还需要下载一个make功能的软件(识别makefile)
或者 sourcery g++ lite 的EABI版本 ,不用再下载make,自带,不过名字不是make,是cs-make安装build工具(make等)
安装芯片包
调试器软件安装(J-Link)
(二)建立工程

在trace output选择semihosting,就可以在Eclipse的控制台中打印调试信息了

下两步设置工程文件夹等可以默认

如果遇到找不到make命令或者cs-make命令
就是没有make程序的原因,或者填错了名称,如果使用sourcery g++ lite EABI,在工程设置(project-->properties-->C++build-->settings)中改成cs-make就行了,如下图 
但是如果是使用不带make程序的工具链,要手动安装,方法见(一)中的build tool的安装(或者使用MinGW或Cygwin(初次接触可自行搜索并了解)进行安装 比如cygwin安装这个
) 安装完后可以设置环境变量,最终在控制台输入 make -v 能看到make的版本信息为止(插件官方不推荐) 或者在Eclipse中设置build path,如下图
然后进行编译,如果步骤没错,就可以了工程设置:
只链接用到的代码,降低二进制文件大小

其它设置,参照模板内的,如果自己建新的空工程
(三)下载、调试ST-Link
下载
安装STM32 ST-LINK Utility
Windows:官网直接下载安装即可
Linux: 需下载源代码自行编译安装配置下载程序(使用ST-link utility ,只能下载程序,不能调试的方法,使用GDB进行调试的在后面)
Run-->External tools-->External tools Configurations 然后左上角新建一个配置,按照下图设置

点击这个就可以下载了

可能会出现这个问
题
在project-->clean处清理一下工程就行了
这是正在下载

下载完毕
调试
下载openocd(其它地址)或者找插件内的(我没找到ㄒoㄒ
然后解压到一个文件夹
选择DebugConfigurations


config options 中的内容来自于openocd文件夹下,根据不同的芯片和st-link版本选择不同的文件,都在同一个文件夹下 Executable中的内容是openocd.exe可执行文件的地址,可以使用变量,如图,或者直接用绝对地址比如D:Program Files (x86)openocdopenocd-0.9.0bin-x64openocd.exe Executable中的内容是GDB的位置,使用变量,如图;或者绝对地址如:C:Program FilesGNU_ARM_toolchainbinarm-none-eabi-gdb.exe
如果变量忘记了没关系,有提示,指到前面的文字

这样st-link调试和下载就基本可以了,效果图

关于寄存器查看,可以安装keil的包(GNU ARM Eclipse插件中含有这个插件,只需要手动更新、下载包就行了),也可以使用插件
①使用GNU ARM Eclipse中的包管理:
使用方法(可能不好下载,多试几次,我第一天下了好多次不行,第二天就可以了。。。。。)
效果:
②使用插件:插件官网:
安装:
Help-->Eclipse marketplace出现下图 搜索embsysregview,然后点击Install。。然后下一步下一步下一步。。。。
J-Link
方法:
似st-link 只是配置文件不同
使用JLinkGDBServer
参考资料:
GNU ARM Eclipse wiki
J-Link debugging Eclipse plug-in wiki
暂时用st-link,后面用的时候再加上来,欢迎大家来一起写
其它问题
有时候可能会碰到enum 找不到。
ecplipse中enum成员有时会提示找不到,这是eclipse的bug , 使用project->C/C++Index -> rebuild 就行了
IF, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol"
史海拾趣
|
求助,在5502中SDRAM的写入过程要用210ns,如何提升速度 在TMS320VC5502中,对SDRAM写操作,居然要210ns,简直无法干活,请教前辈,怎样解决这个问题?我对EMIF的相关寄存器进行设置,如WRITE SETUP 、WRITE STROBE 、WRITE HOLD ,对写操作消耗时间一点都没变化,很郁闷呀,在论坛上有说这是5502本身问题 ...… 查看全部问答> |
|
老弟最近在开发过程遇到一个问题,就是开发出的vxworks程序 1、跨网段无法ping通,报文也过不去。 现象与现状: 同网段可以ping通,报文也可以过去。 目前的所跨的两个采用B类地址,从第二位开始有区别区分子网。分 ...… 查看全部问答> |
|
我是上海一大学软件工程专业的09届应届生,本科,不是很会说话。 在学校里学的是单片机开发之类的(偏软件 C语言),接触过ARM+Wince之类的嵌入式软件的开发。(其实学校里嵌入式软件方面的课基本就没有,都是我凭着兴趣自学的)单片机的水平达到自 ...… 查看全部问答> |
|
关于2440 WINCE5.0 BSP中EBOOT的一点疑问,谢谢解疑 我在三星官方下了个SMDK2440A WINCE5.0的BSP,弄NBOOT+EBOOT启动的时候发现个问题: 在EBOOT中的main.c文件: void main(void) { // Clear LEDs. // ...… 查看全部问答> |
|
【 低功耗】利用 Xilinx 功耗估计器分七步精确分析最坏情况下的功耗使用 利用 Xilinx 功耗估计器分七步精确分析最坏情况下的功耗使用 [ 本帖最后由 hangsky 于 2011-11-8 13:26 编辑 ]… 查看全部问答> |
|
static voidFaultISR(void){ // // Enter an infinite loop. // while(1) { }}程序调试时,经常进入这个函数里!如何有效的跟踪它 ...… 查看全部问答> |








