linux环境下玩转stm32f4 discovery开发

来源:互联网 发布:动漫头像下载软件 编辑:程序博客网 时间:2024/05/22 14:34

软件开发工具有:编辑工具、编译工具。

硬件工具主要指仿真调试工具和硬件驱动。

先看看调试界面,左边为arm-none-eabi-gdb调试界面,打开发GDB的TUI文本用户界面,右下角为调试工具openocd输出,右上为minicom串口输出

arm-none-eabi-gdb 和openocd

下面是文本编辑工具vim,我使用的是exvim,一个扩展包,比IDE用着舒服。

exvim界面

后面将按如下顺序完成stm32f4 discovery(其它开发板可依样画葫芦)开发环境的构建:

1、安装stlink v2(v1)仿真器驱动

2、安装openocd调试工具

3、arm编译工具arm-none-eabi工具包

4、设置vim,安装exvim工具包

另外,本人电脑系统环境为opensuse 13.1

慢慢更新吧~~~~~~~~~~~~~

1、stlink v2(v1)仿真器驱动

st公司官网没有为非windows环境发布stlink的驱动,下面这个开源的GDBServer可以完美的解决这个问题。

https://github.com/texane/stlink 点击打开链接

大家可以使用git工具获取最新版本的源文件:git clone https://github.com/texane/stlink.git ,此命令会在当前目录生成一个stlink目录。如果不想安装git工具,可以到https://github.com/texane/stlink右下角或我的百度云盘(20140127的版本)下载zip压缩包。

我是下载的zip包,解开后生成stlink-master文件夹,进入:

xu@linux-xu:~/stlink-master> ./autogen.sh 


上述命令会生成一些配置文件,如果提示依赖某些工具,那么就请安装他们。现在目录中应该有这些文件:

49-stlinkv1.rules  aclocal.m4  autom4te.cache  config.guess  configure.ac  doc           gdbserver  install-sh   Makefile.in  NEWS    stlinkv1_macosx_driver   toremove
49-stlinkv2.rules  AUTHORS     ChangeLog       config.sub    COPYING       flash         gui        LICENSE      mingw        README  stlink_v1.modprobe.conf
ACKNOWLEDGMENTS    autogen.sh  compile         configure     depcomp       flashloaders  INSTALL    Makefile.am  missing      src     TODO

配置stlink程序,将软件安装在/opt/stlink目录中,

xu@linux-xu:~/stlink-master> sudo ./configure --prefix=/opt/stlink/

下面命令用于编译和安装。

xu@linux-xu:~/stlink-master> sudo makexu@linux-xu:~/stlink-master> sudo make install

同样的,如果中途提示缺少什么工具,安装这些工具即可。

如果顺利,完成以上两步即可完成软件安装,你将可以在/opt/stlink/bin看到st-flash  st-info  st-term  st-util 四个可执行文件。

复制目录下的49-stlinkv2.rules到/etc/udev/rules.d/下

xu@linux-xu:~/stlink-master> sudo cp 49-stlinkv2.rules  /etc/udev/rules.d/

编辑40-stlinkv2.rules,将下列内容替换文件第五行的所有内容

SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748",  MODE:="0666", SYMLINK+="stlinkv2_%n" ,OWNER="xu"


其中OWNER 修改为你的用户名。

让系统识别新的规则:

xu@linux-xu:~/stlink-master> sudo udevadm control --reload-rulesxu@linux-xu:~/stlink-master>sudo udevadm trigger

如果你用的opensuse,在Kinfocenter信息中心"设备信息-》USB设备"栏目下找到名为STM32 STLink的设备

配置环境变量,打开家目录中的.bashrc文件,将/opt/stlink/bin添加到PATH变量后,如果没PATH变量就按如下添加一行:

PATH=$PATH:/opt/stlink/bin/
保存后退出,在命令行下 xu@linux-xu:~/stlink-master>source ~/.baskrc 更新新设置的环境变量。

现在将可以在命令行中找到st-flash  st-info  st-term  st-util四个命令,可以试试,运行st-flash write rt-thread.bin 0x8000000将rt-thread.bin写入flash中。

xu@linux-xu:~/stlink-master> st-flash write ~/work/rt-thread/build/rt-thread.bin 0x8000000
2014-02-15T17:40:13 INFO src/stlink-common.c: Loading device parameters....
2014-02-15T17:40:13 INFO src/stlink-common.c: Device connected is: F4 device, id 0x10016413
2014-02-15T17:40:13 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes
2014-02-15T17:40:13 INFO src/stlink-common.c: Attempting to write 171004 (0x29bfc) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Sector:0x0 Size:0x4000
Flash page at addr: 0x08000000 erasedEraseFlash - Sector:0x1 Size:0x4000
Flash page at addr: 0x08004000 erasedEraseFlash - Sector:0x2 Size:0x4000
Flash page at addr: 0x08008000 erasedEraseFlash - Sector:0x3 Size:0x4000
Flash page at addr: 0x0800c000 erasedEraseFlash - Sector:0x4 Size:0x10000
Flash page at addr: 0x08010000 erasedEraseFlash - Sector:0x5 Size:0x20000
Flash page at addr: 0x08020000 erased
2014-02-15T17:40:18 INFO src/stlink-common.c: Finished erasing 6 pages of 131072 (0x20000) bytes
2014-02-15T17:40:18 INFO src/stlink-common.c: Starting Flash write for F2/F4
2014-02-15T17:40:18 INFO src/stlink-common.c: Successfully loaded flash loader in sram
size: 32768
size: 32768
size: 32768
size: 32768
size: 32768
size: 7164
2014-02-15T17:40:23 INFO src/stlink-common.c: Starting verification of write complete
2014-02-15T17:40:26 INFO src/stlink-common.c: Flash written and verified! jolly good!

rt-thread.bin下载地址

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

2、OpenOCD调试环境

         OpenOCD上位机仿真软件,调度时首先由 openocd 启动gdb服务并加载一个特定的仿真器驱动,openocd把从gdb服务端口接收到的数据送入仿真器驱动程序,驱动程序把数据按jtag协议转换送入硬件芯片,完成对芯片的控制。

        官方网站:http://openocd.berlios.de/web/  ,0.7.0版本下载:http://pan.baidu.com/s/1i3IBp3Z

tar zjvf openocd-0.7.0.tar.bz2cd openocd-0.7.0./configure --enable-stlink --prefix=/opt/openocdmakemake install

在你的家目录下创建.openocd隐藏文件夹,创建openocd.cfg文件,将下列内容复制并保存。

# This is an STM32F4 discovery board with a single STM32F407VGT6 chip.# http://www.st.com/internet/evalboard/product/252419.jspsource [find /opt/openocd/share/openocd/scripts/interface/stlink-v2.cfg]source [find /opt/openocd/share/openocd/scripts/target/stm32f4x_stlink.cfg]# use hardware reset, connect under resetreset_config srst_only srst_nogate

配置环境变量:

在~/.bashrc文件的PATH变量后添加":/opt/openocd/bin"(无引号),再执行source  ~/.bashrc更新环境变量。

将stm32f4 discovery开发板连上电脑,在命令行下输入openocd命令应该得到如下结果:

Open On-Chip Debugger 0.7.0 (2014-01-21-23:09)Licensed under GNU GPL v2For bug reports, readhttp://openocd.sourceforge.net/doc/doxygen/bugs.htmlsrst_only separate srst_nogate srst_open_drain connect_deassert_srstInfo : This adapter doesn't support configurable speedInfo : STLINK v2 JTAG v14 API v2 SWIM v0 VID 0x0483 PID 0x3748Info : Target voltage: 2.874386Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints
[openocd的使用方法请参考官方文档]


3、arm编译工具arm-none-eabi工具包

下载编译好的工具包,http://pan.baidu.com/s/11U45S

官方网站:https://launchpad.net/gcc-arm-embedded

解压后复制到/opt/目录,同样将/opt/gcc-arm-none-eabi/bin添加到~/.bashrc文件中并更新环境变量。

现在基本上构建了一个完整的编译调试环境,试试arm-none-eabi-gdb -tui就能启动调试窗口,使用方式与普通gdb命令相同。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 虎皮鹦鹉脚流血了怎么办 虎皮鹦鹉被风扇打到脚怎么办 虎皮鹦鹉脚脱臼了怎么办 孩子作业做得慢怎么办 员工给公司造成损失怎么办 小孩有写不完的作业家长怎么办 一年级孩子作业太粗心怎么办 孩子最近不好好做作业怎么办 工作压力大害怕做不好怎么办 孩子的数算不对怎么办? 孩子计算老是出错怎么办呢 孩子经常计算错误能怎么办 孩子老出现计算错误怎么办 孩子做作业马虎该怎么办 黑笔写错了纸破了怎么办 幼儿园报名写错怎么办名字 中考写错了字怎么办 头发没干想睡觉怎么办 突然天旋地转恶心想吐怎么办 突然天旋地转的浑身出汗怎么办 3岁半不认识数字怎么办 孩子长倒睫毛该怎么办 一年级的孩子口算慢怎么办? 大班社会领域怎么办教学反思 表带活动圈坏了怎么办 手表固针h掉了怎么办 cad图全部倒过来了怎么办 电脑打数字变粗怎么办 wps表格输入数字变乱码怎么办 文档中光标变粗怎么办 wps排序有重复的怎么办 记英语数字老是混怎么办 苹果手机输入法出数字怎么办 word文档复制过来有底色怎么办 表格复制后还再显示复制符号怎么办 笔记本字母键打出数字怎么办 wps打字字上移了怎么办 微信里黑圈里面的白字是怎么办 脖子比脸黑好多怎么办 河南许昌小学生生病办休学怎么办 1岁宝宝内向胆小怎么办