原创 在Linux下搭建STM32开发环境攻略(旧版)

2014-10-16 13:58 2215 13 16 分类: MCU/ 嵌入式 文集: STM32

Linux发行版是64bitFedora19,方案选择为:Eclipse+CodeSourcery+OpenOCD+STLINKv2

NO1.准备STM32的开发板,购买仿真器STLINKv2

NO2.安装 CodeSourcery

如果是64bit机器,首先确认它能够运行32bit的软件。CodeSourcery可以在官网https://sourcery.mentor.com下载,名称为arm-2013.05-23-arm-none-eabi.bin,安装它。

CodeSourcery是编译好的二进制GCC程序包。

NO3.安装 OpenOCD

实际上,使用下面这个命令就可以:

yum install openocd

openocd是开源仿真软件,支持 STLINKv2

NO4.安装 STLINKv2的驱动

google使用关键字搜索即可,也是开源软件。安装它可能要费一番周折,你可能需要先安装systemd-devellibusb-1.0autoconfautomake,然后export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig,执行这些操作的理由都会在config.log文件中找到。

另外别忘了将rules文件加入/etc/udev/rules文件夹,并且载入它。

NO5.安装 EclipseARM插件

Eclipse官网下载它,解压就能用。 在打开的界面上点击help->Install New software,安装ARM插件。

NO6.下载STM代码

包括所有的.h.c文件,以及启动startup_stm32f10x_md.S(注意S要大写)和.ld配置文件。

NO7.编译STM代码

使用Eclipse新建C Project,将STM代码放进去。根据你自己的STM32芯片类型,修改.S.ld文件内容,注意.ld文件中要使用绝对路径。

修改工程属性,注意要修改头文件路径、芯片类型和GCC工具(即CodeSourcery,同样使用绝对路径)。

点击build all即可。

如果编译不成功,就根据Eclipseconsole提示,搜索解决方法。

NO7.openocdarm-none-eabi-gdb仿真与调试

连接好硬件之后,执行

openocd -f stlink-v2.cfg -f stm32f1x_stlink.cfg //注意要有绝对路径

如果硬件和STLINKv2的驱动都没有问题,它会出现:

Info : This adapter doesn't support configurable speed

Info : STLINK v2 JTAG v16 API v2 SWIM v4 VID 0x0483 PID 0x3748

Info : Target voltage: 3.269657

Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints

在另外一个终端执行arm-none-eabi-gdb,在它的提示符下输入下面的命令:

(gdb) target extended-remote : 3333

(gdb) monitor reset init

(gdb) load maria_test.hex

(gdb) monitor reset

现在,STM32就会正常运行了。

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

zhanggy_949255296 2014-1-3 16:50

谢谢!看来64位的linux还是麻烦很多啊,今天再按照你的办法实验一下,不行的话再请教你。

DiracFatCat 2013-11-25 14:21

yum install glibc.i686既可。要注意,如果要安装gcc,一定要在glibc.i686之前安装,否则gcc不会去下载64位的glibc库,相当麻烦。

zhanggy_949255296 2013-11-24 16:45

是fedora 19 64bit机器,不能够运行32bit的软件,怎么解决?
相关推荐阅读
DiracFatCat 2018-09-05 12:14
【博客大赛】卡尔曼滤波学习笔记(11)从位置估计速度
卡尔曼滤波器,不仅仅是一个低通滤波器,否则也不会持续发展50年。 示例:桑先生需要测试高速列车的性能。测试的目的是判断列车在直线上能否保持80m/s的速度。速度和位置每0.1秒测量一次,但是由于...
DiracFatCat 2018-08-31 19:32
【博客大赛】卡尔曼滤波学习笔记(10)一个简单的示例
《Kalman Filtering: Theory and Practice Using MATLAB》第三章,看不懂,暂时略过。《Kalman Filtering: Theory and Pract...
DiracFatCat 2018-07-19 15:09
对sed命令的练习
sed是流编辑器。它每次处理一个输入,因此很有效率。官方手册:https://www.gnu.org/software/sed/manual/sed.html学习Linux命令,当然要阅读官方手册,所...
DiracFatCat 2018-06-19 15:10
【博客大赛】卡尔曼滤波学习笔记(八)可观测性和可控制性 ...
可观测性是指,在给定模型的情况下,动力学系统的状态是否由它的输入输出唯一确定。可观测性是系统模型的特征。如果传感器矩阵H是可逆的,则本系统可观测,因为有:如果传感器矩阵H某些时候是不可逆的,则本系统仍...
DiracFatCat 2018-06-19 10:56
【博客大赛】卡尔曼滤波学习笔记(七)Z变换
如果我们仅仅对离散线性系统感兴趣,那么就使用下面这个表达式:如果u是常量,那么可以写成:为了简化表达式,我们可以将上面写成:离散线性时不变系统的Φ求解,可以使用Z变换。(* 由于本人已经忘记了Z变换的...
DiracFatCat 2018-06-19 10:54
【博客大赛】卡尔曼滤波学习笔记(六)拉普拉斯变换
对于线性时变/时不变系统,求解Φ(t)有多种方式,拉普拉斯变换是其中一种。(* 由于本人已经忘记了拉普拉斯变换的内容,因此本节待续。)...
EE直播间
更多
我要评论
3
13
关闭 站长推荐上一条 /3 下一条