您的位置:首页 > 运维架构

基于ubuntu下stm32开发环境搭建(ubuntu+st-link+libopencm3)

2017-11-10 19:07 555 查看
一、开发环境搭建

这里用的操作系统是ubuntu14.04 

1、下载必要的工具 

sudo apt-get install git libusb-1.0.0-dev(libusb是st-link要的底层驱动)

2、添加gcc-arm-embedded源,初始化编译器 

sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded 

sudo apt-get update 

sudo apt-get install gcc-arm-none-eabi

3、初始化ST-LINK调试与烧写器驱动(有人喜欢用J-LINK,在Linux下也可以,不过安装驱动就是稍微麻烦一点,有兴趣的可以自己研究) 

git clone https://github.com/texane/stlink.git 
cd stlink/ 

./autogen.sh 

./configure 

make && make install 

此时连接st-link 这时用lsusb命令就可以查看到相关的设备已经连接上,如下图 



4、此时整个编译环境与下载环境搭建好了,做STM32开发还有一个重要的东西,那就是开发库,用开发库可以帮我们省不少时间嘛。这里我用项目中使用开源的libopencm3库来演示,当然stm32的官库也可以在linux下使用,只是要自己写Makefile来编译,这个有兴趣的可以自己动手编译一下。 

git clone git://github.com/libopencm3/libopencm3.git 

cd libopencm3 

make 

在lib目录下面编译出来会有相关的xxx.a文件,这里针对你的芯片来做链接,比如你是stm32f1xx系列芯片,项目里面的连接就使用libopencm3_stm32f1.a

二、构建项目

1、现在整个开发库与开发环境都构建完成了,那我们要开始写代码,编译,调试、下载到开发板啊,这里由于涉及到Makefile的编写,这里就直接用我STM32F205项目中的dfu demo做为示例,项目源代码请参考: 
https://github.com/ykevin/blog/tree/master/embedded/dfu 
2、关于src目录下面,里面有一个memory.ld、Makefile.include文件,其中memory.ld文件是芯片的连接脚本文件,这个根据你的芯片来选择,Makefile.include是用来编译项目的文件,具体的请看Makefile相关手册。 

3、进入src目录,直接make就可以编译完成项目(记得要先编译libopencm3库)。 

4、下程序,只需要在src目录make flash就可以(当然前提是你的st-link已经正确连接并识别)

三、调试

1、对于linux下的嵌入调试,这里使用的是强大的gdb工具,对于gdb的使用我就不做说明,这里我只演示怎么用gdb调试stm32 

2、终端上执行以下命令 

sudo st-util 

arm-none-eabi-gdb 

tar extended-remote :4242 

load dfu.elf 

3、到上面一步后就跟在x86下面gdb调试一样。

四、资源

1、关于libopencm3的使用网上有一个libopencm3-example的合集里面有各种国外经典开发板的各个模块的小demo,有兴趣的可以自己研究。 
https://github.com/libopencm3/libopencm3-examples
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: