软件开发工具有:编辑工具、编译工具。
硬件工具主要指仿真调试工具和硬件驱动。
先看看调试界面,左边为arm-none-eabi-gdb调试界面,打开发GDB的TUI文本用户界面,右下角为调试工具openocd输出,右上为minicom串口输出
下面是文本编辑工具vim,我使用的是exvim,一个扩展包,比IDE用着舒服。
后面将按如下顺序完成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 make
xu@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-rules
xu@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.bz2
cd openocd-0.7.0
./configure --enable-stlink --prefix=/opt/openocd
make
make install
在你的家目录下创建.openocd隐藏文件夹,创建openocd.cfg文件,将下列内容复制并保存。
# This is an STM32F4 discovery board with a single STM32F407VGT6 chip.
# http://www.st.com/internet/evalboard/product/252419.jsp
source [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 reset
reset_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)[openocd的使用方法请参考官方文档]
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : This adapter doesn't support configurable speed
Info : STLINK v2 JTAG v14 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : Target voltage: 2.874386
Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints
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命令相同。