OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6553|回复: 8

那些免费好用的STM32的IDE二之Eclipse+GNU+Jlink(进阶篇一)

[复制链接]

6

主题

64

帖子

3

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2014-3-11
在线时间
55 小时
发表于 2017-1-13 09:58:02 | 显示全部楼层 |阅读模式
本帖最后由 秋之前 于 2017-1-13 09:59 编辑

相关连接:那些免费好用的STM32的IDE一之Emblock

那些免费好用的STM32的IDE二之Eclipse+GNU+Jlink(基础篇)

那些免费好用的STM32的IDE二之Eclipse+GNU+Jlink(高级篇)


本篇开始讲解一些比较实用的东西,在前面的两章中,我们讲解了eclipse开发stm32的大部分问题,然而。在实际使用过程中,我们仍然会遇到一些不太理想的地方,比如,eclipse不能一键下载,只能通过调试变相的下载,很不方便。同时eclipse编译出来的文件要比MDK编译的文件大很多。本篇就是为了解决这两个问题的:程序优化和一键下载。
1、优化等级
-O0
-O1
-O2
-O3
-Os
图片1.png
自己酌情选择。我通常选择O0
图片2.png
这两个选项会滤除掉没有使用过的函数和数据

图片3.png
使用newlib-nano选项会进一步去除大量newlib中不常用的库函数,从而大大减小文件体积。
注意以上三点后,编译出来的文件基本上就跟MDK编译的文件大小还差不多了。


另外说一点就是eclipse支持编译生成不同格式的文件,包括最原始的elf,还有bin、hex等其他格式。设置的地方在图中所示的地方
图片4.png


接着,我们需要有一个一键下载的功能。
该部分参考了http://bbs.elecfans.com/jishu_564620_1_1.html的下载部分内容。
首先,我们需要知道对于jlink,下载使用JLink.exe,调试使用JLinkGDBServerCL。为了更好的使用eclipse下载,我们先来熟悉一下直接使用jlink命令下载的流程。
1、将jlink安装目录添加到环境变量

2、点开cmd,将目录切换到bin文件目录下
图片5.png

3、运行JLink.exe,然后会提示让我输入connect,接着提示让我输入芯片型号、TIF模式、速度等选项,然后才算成功连接。
图片6.png

那么我们能不能只通过一步就将这些选项设置好呢?可以
看看JLink的命令手册
图片7.png
就是这三个选项了。
所以我们可以这样重新些JLink命令:JLink.exe -autoconnect 1 -device stm32f103rc -if swd -speed 4000
图片8.png
接着我们就进入了JLink命令模式,再来看一看JLink有哪些命令可以使用
图片9.png
用的差不多就这几个了

先运行h,让jlink暂停
图片10.png
然后运行loadfile下载bin文件到0x08000000
图片11.png
然后用r命令重启开发板,在用g命令运行程序,最后用exit或者q命令推出jlink模式
图片12.png
肯定又有同学说好麻烦,没有更简单的方法吗?有,我们只需要将上面的这些命令做成一个脚本,然后将这个脚本作为一个参数传递给JLink启动命令选项即可自动执行了。

细心的同学可能已经注意到了前面图中的一个参数
图片13.png
这两个参数是一个意思,随便用一个即可,比如-commandfile。
首先我们写一个自动命令的脚本,名字就叫做download.jlink
然后运行这样一条指令即可实现一步下载了

JLink.exe -autoconnect 1 -device stm32f103rc -if swd -speed 4000 -commandfile download.jlink
图片14.png
从图中可以看出指令的运行情况,jlink成功连接上了stm32,并且载入了命令脚本,执行命令脚本,下载bin文件,重新启动,运行。
那么,现在我们要解决的问题是怎么让eclipse运行这样一条指令。

我们可以注意到在eclipse上有这样一个按钮:external tool
图片15.png
打开设置

仿照着这个图中设置
图片16.png
其中脚本路径的地方${workspace_loc:/UCOS_Demo}代表了我的工程目录,换成自己对应的即可。同时,路径对应自己的实际路径。比如我是在工程目录下面新建了一个jlink文件夹,脚本放在了这个文件夹下了。

另外loadfile的文件路径需要填写自己实际路径
图片17.png
然后把图中所示的地方选中,确定。然后点击那个拓展按钮就可以实现下载了。
图片18.png

下篇预告:
1、那些免费好用的STM32的IDE二之Eclipse+GNU+Jlink(进阶篇二) 芯片flash和ram的调整以及运行地址的修改(运行bootloader)
2、stm32最小通用开发环跨平台搭建境GNU+Makefile系列教程
3、Mbed源码在自己的stm32系列平台移植适配

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

64

帖子

3

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2014-3-11
在线时间
55 小时
 楼主| 发表于 2017-1-13 10:00:52 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2014-7-15
在线时间
44 小时
发表于 2017-1-13 10:11:48 | 显示全部楼层
蛮不错的,MDK在2020年就要过期了,这个到时候可以算是个替代的工具
回复 支持 反对

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12491
金钱
12491
注册时间
2015-11-5
在线时间
2142 小时
发表于 2017-1-13 10:24:07 | 显示全部楼层
秋之前 发表于 2017-1-13 10:00
@Admin @八度空间 @正点原子
加个精呗

楼主我之前按照你的帖子搭了STM32的开发平台,相同的工程相同的优化级别,IAR跟MDK编译出来也就8~9kB的大小,但用eclipse+gcc编译出来却是20+kB的大小,GCC不可能比IAR和MDK差那么多的,估计是某个库没包含对,不知道你有没有碰过这问题
拿来长岛冰茶换我半晚安睡
回复 支持 反对

使用道具 举报

6

主题

64

帖子

3

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2014-3-11
在线时间
55 小时
 楼主| 发表于 2017-1-13 10:28:25 | 显示全部楼层
FreeRTOS 发表于 2017-1-13 10:24
楼主我之前按照你的帖子搭了STM32的开发平台,相同的工程相同的优化级别,IAR跟MDK编译出来也就8~9kB的大 ...

前面的教程没有讲优化,所以比较大是很正常的,这一篇的优化你可以参考一下
回复 支持 反对

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12491
金钱
12491
注册时间
2015-11-5
在线时间
2142 小时
发表于 2017-1-13 10:31:49 | 显示全部楼层
秋之前 发表于 2017-1-13 10:28
前面的教程没有讲优化,所以比较大是很正常的,这一篇的优化你可以参考一下

楼主好人,有空再试下,谢谢
拿来长岛冰茶换我半晚安睡
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-20
在线时间
16 小时
发表于 2017-3-14 19:26:18 | 显示全部楼层
问个问题,GDBServerCL 调试时程序是在哪运行(jlink上,ram?还是下载到了flash??),,,,为什么我调试后断电,再上电程序还在,,难道是调试时就下载到flash了??如果这样的话那为什么还要另外配置下载
回复 支持 反对

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
发表于 2020-4-23 10:36:08 | 显示全部楼层
秋之前 发表于 2017-1-13 10:00
@Admin @八度空间 @正点原子
加个精呗

大佬啊~!!!!
回复 支持 反对

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
发表于 2020-4-23 11:10:25 | 显示全部楼层
经过试验,jlink现在成功了,谢谢大佬!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 21:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表