eclipse + st-link + openocd + gdb 开发 stm32f4

st-link 在win8上的支持不太好,据说是因为 st-link 硬件没有数字签名,win8 强制要求硬件必须有数字签名。虽然平时还是用的盗版 jlink 比较多一点,但是手上这块 discovery 板子只有板载的 st-link。

下载zadig

首先下载 zadig,这是一个开源的win驱动,可以让win8识别出 st-link 硬件。

下载openocd

然后下载 openocd,这相当于调试代理。优点是支持较多的仿真器。可以通过4444端口 telnet 访问进行程序烧录,或者由gdb访问3333端口进行调试。

下载完毕并将 bin 目录加入环境变量,然后输入如下命令。

$ openocd-x64-0.7.0.exe -v

Open On-Chip Debugger 0.7.0 (2013-05-05-10:44)

Licensed under GNU GPL v2

For bug reports, read

http://openocd.sourceforge.net/doc/doxygen/bugs.html

然后连上我们的硬件,再用 -f 指定板子对应的配置文件,下载下来的文件夹中已经有一些写好的配置文件,其中就有针对 discovery 板的。

$ openocd-x64-0.7.0.exe -f stm32f4discovery.cfg

Open On-Chip Debugger 0.7.0 (2013-05-05-10:44)

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.887346

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

如果出现如上显示,那么恭喜,已经可以开始调试了。

telnet实现flash烧录

使用 telnet 打开本地的 4444 端口。输入如下命令,即可实现程序烧录。这里我们烧录的是 MDK 编译出来的 axf 格式文件,之所以也支持 axf,是因为 axf 本质是一种 elf 文件。

reset halt

sleep 100

flash write_image erase demo.axf

sleep 100

verify_image demo.axf

sleep 100

reset run

使用 arm-none-eabi-gdb 调试

eclipse 调试原理是一样的,只不过多了个GUI。

$ arm-none-eabi-gdb demo.axf

载入符号表。然后连接到 3333 端口。

(gdb) target remote localhost:3333

Remote debugging using localhost:3333

warning: Loadable segment "RW_IRAM1" outside of ELF segments

<Reset_Handler> ()

at ..\..\..\Libraries\CMSIS\ST\STM32F4xx\Source\Templates\arm\/startup_stm32

f4xx.s:175

175 LDR R0, =SystemInit

(gdb) monitor reset halt

target state: halted

target halted due to debug-request, current mode: Thread

xPSR: 0x01000000 pc: 0x0800019c msp: 0x20000c78

(gdb)

然后可以就可以用各种 gdb 命令调试了。

(gdb) b main

Breakpoint 1 at 0x8004546: file ..\/main.c, line 75.

(gdb) c

Continuing.

Note: automatically using hardware breakpoints for read-only addresses.

Breakpoint 1, main () at ..\/main.c:75

75 STM_EVAL_PBInit(BUTTON_USER, BUTTON_MODE_EXTI);

(gdb) s

STM_EVAL_PBInit (Button=BUTTON_USER, Button_Mode=BUTTON_MODE_EXTI)

at ..\/..\..\Utilities\STM32F4-Discovery\stm32f4_discovery.c:195

195 RCC_AHB1PeriphClockCmd(BUTTON_CLK[Button], ENABLE);

(gdb)

缺点无疑是这样太不直观。

eclipse 调试

当然首先你得有 cdt 插件,然后安装的时候记得把 gdb hardware debugging 选上,默认是不会安装的。

然后就按照图示都填好,其实图示和上面gdb原理完全一样。

最后不用 load image,因为已经通过telnet将程序烧录了,调试eclipse只需符号表即可。下面是调试界面:

后记

当然,你如果会用 arm-none-eabi-ld,就可完全抛弃商业软件。

eclipse + st-link + openocd + gdb 开发 stm32f4

时间: 2024-08-11 01:50:20

eclipse + st-link + openocd + gdb 开发 stm32f4的相关文章

基于Eclipse的Go语言可视化开发环境

http://jingyan.baidu.com/article/d7130635032e2f13fdf475b8.html 基于Eclipse的Go语言可视化开发环境 | 浏览:2924 | 更新:2013-12-21 18:24 | 标签:eclipse 1 2 3 4 5 6 7 分步阅读 搭建与使用一个基于Eclipse的Go语言可视化开发环境. 注意: 在阅读此片经验前,先确保必要工具已经安装或打开 工具/原料 搭建好Go语言开发环境,详细步骤见经验: http://jingyan.b

如何使用eclipse进行嵌入式Linux的开发

如何使用eclipse进行嵌入式Linux的开发 作者:曾宏安,华清远见嵌入式学院高级讲师. 如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux平台时经常会抱怨没有一个好用的集成开发环境.和windows下常用的一些开发软件相比,Linux自带的一些开发环境使用起来要么界面和操作不够方便.友好,要么功能不全.其实我们完全可以在开源社区上找到操作方便,功能强大的开发环境.下面就向大家介绍一个能在Linux上运行,界面和功能与windows上同

用Eclipse平台进行C/C++开发

我们将概述如何在 C/C++ 开发项目中使用 Eclipse 平台.尽管 Eclipse 主要是一个 Java 开发环境,但其体系结构确保了对其它编程语言的支持.在本文中,您将学习如何使用 C/C++ 开发工具箱(C/C++ Development Toolkit,CDT),它是可用于 Eclipse 的最佳 C/C++ 工具箱. C 和 C++ 语言都是世界上最流行且使用最普遍的编程语言,因此 Eclipse 平台(Eclipse Platform)提供对 C/C++ 开发的支持一点都不足为奇

在已有的 eclipse 中离线配置 android 开发环境

有两种方法配置 android 开发环境:[注意:本文只介绍离线配置方法] 首先,下载好 ADT ( eclipse 平台下用来开发 android 应用程序的插件) 这里提供一个镜像网站 http://wear.techbrood.com/sdk/index.html,以下载android公开的官方开发平台 打开链接 点击下载(同意协议并且根据操作系统选择32bit还是64bit) 下载完成后解压打开目录(你会看到 eclipse 目录,这是配置好 android 开发环境的,你也可以直接用)

转:windows 下的 eclipse安装goclipse 配置golang开发环境

windows 下的 eclipse安装goclipse 配置golang开发环境 windows 下的 eclipse安装goclipse 配置golang开发环境,捎带介绍了LiteIDE golang的配置 1. 下载goclipse eclipse plugins http://pan.baidu.com/s/1c0weLgO 安装完插件后,重启可以看到eclipse的右上角有个golang logo , 地鼠图标: 2. 下载golang,调试tools 下载Golang Window

Eclipse+ADT+SDK搭建Android开发环境

安装Eclipse Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK).我们可以通过在Eclipse中添加ADT(Android Development Tools)安卓开发工具,来搭建安卓开发环境. 下载Eclipse 下载地址:http://www.eclipse.org/downloa

ubuntu上用eclipse搭建java、python开发环境

上一篇文章讲到如何在windwos上用eclipse搭建java.python开发环境,这一讲将关注如何在ubuntu上实现搭建,本人使用虚拟机安装的ubuntu系统,系统版本为:14.04 lts 一.用eclipse + jdk搭建java开发环境 1.jdk官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 本人下载的是:jdk-8u77-linux-x64.tar.gz

在Windows下用Eclipse+CDT+MinGW搭建C++开发平台

本文提供了在Windows下用Eclipse+CDT+MinGW搭建C / C++开发平台的方法, 测试平台为Windows XP Sp2 CHS. 以下软件均为Windows平台下的版本. 1.安装JDK,目的是为了Eclipse的运行.目前版本是jdk-1_5_0_06-windows-i586-p.exe ,下载地址http://java.sun.com/javase/downloads/index.jsp.仅安装JDK即可.假设安装路径为D:\java\JDK.配置系统环境变量(右键点击

Eclipse 下搭建pyDev python开发环境及helloworld

一,安装基础环境 1,安装jdk7,并配置环境变量(pyDev要求jdk7及以上版本,否则安装好也不显示) 2,下载Eclipse并解压 3,安装python3.X 二,Eclipse下配置pyDev 1,安装插件:help -> Install new Software.. ->输入PyDev Update Site - http://pydev.org/updates 然后下一步.同意等等. 2,配置python编译器:Window -> perferences -> pyDe