本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!

 

    在上三篇文章中,我们基本搭建好了开发STM32的IDE环境,当然vim、ctags、taglist、winmanager的命令和用法太多,不可能全部列出,在这里只是给大家提供一种思路和方法,具体扩展功能参考相关插件的帮助文档就可以获得,当然选择自己最最常用的几个命令,操作熟练了,就足以进行开发调试了。今天这篇文章我们使用gdb进行STM32调试。

(四)gdb调试STM32程序

    我们还是用先前的stm32f4-discovery程序为例子,初步探讨一下stm32调试的方法步骤,当然在这里敝人只是提供一种方法和思路,gdb调试的官方文档共有600多页,调试命令及其丰富,细节功能大家可以参考文档使用。

4.1 启动gdb server

    gdb server的启动非常简单,只需终端输入

sudo st-util

 即显示以下信息:

 就显示出了板子的硬件信息,这一步就算成功了。

4.2 启动gdb交叉调试工具

    在这里我们使用的是arm gdb交叉调试工具,不要关闭上一步打开的终端,然后新建终端输入

arm-none-eabi-gdb main.elf

    打开gdb调试器,同时指定了需要加载调试的文件main.elf,显示以下信息:

 

 出现上面这个信息我们就可以输入调试命令了。

4.3 Demo

    cd到stm32f4-discovery目录里,首先要绑定调试端口4242,

tar ext:4242

然后加载我们需要调试的文件

 load

然后输入指令continue就可运行程序了,过程如下:

如果想暂停运行只需要按ctrl+c快捷键,即可暂停:

并且我们可以看到程序现在暂停到了main.c函数的第6行。

    再举一个断点调试的例子吧,比如我们想在第6行添加断点,只需要输入命令:

break 6

就可以在第6行添加断点了,此时再输入continue命令,程序会自动停在第六行处,如果想删除断点,输入命令clear即可。

    另外info命令能够查看调试过程中与你自己程序相关的信息,相关info命令有50多个,我们可以输入help info查看info命令的帮助信息。

    至此我们已经能够使用VIM和gdb进行简单的STM32程序编码与调试工作了,更为强大的功能还需要我们通过他们的帮助文档获得,在这里也没有办法一一列出,只是提供给大家一个思路,有不明白的地方,欢迎大家留言:)

    谢谢!

 

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

大家可以+关注我的博客,以便得到最新的文章。

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

打字不易,转载请注明出处(http://www.cnblogs.com/humaoxiao/p/3589932.html),谢谢。


在Mac OS X中使用VIM开发STM32(4)的更多相关文章

  1. 在Mac OS X中使用VIM开发STM32(2)

    本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在我先前的博文⎣在Mac OS X中使用VIM开发STM32(1)⎤中,我们安装完成了MACVIM,这一 ...

  2. 在Mac OS X中使用VIM开发STM32(1)

       本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!     在我先前的博文⎣在Mac OS X中搭建STM32开发环境⎤中,我们在Mac中DIY出了最 ...

  3. 在Mac OS X中使用VIM开发STM32(3)

    本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!       在上一篇文章中,我们安装了ctags插件,ctags能对我们的源代码文件中的元素建立索引表, ...

  4. 如何在Mac OS X中开启VIM语法高亮和显示行号

    VIM (Wikipedia图) Vim 是一款相当给力的源自UNIX平台的命令行文本编辑器,不过不给力的是,Mac OS X下并没有诸多Linux发行版上VIM那些牛逼哄哄的神马代码高亮显示啊,自动 ...

  5. 转-在Mac OS上搭建Python的开发环境

    在Mac OS上搭建Python的开发环境   本文转载自:http://www.jb51.net/article/76931.htm 一. 安装python mac系统其实自带了一个python的执 ...

  6. Mac OS X 中一些常用的命令行技巧

    一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物 ...

  7. 在Mac OS X中配置Apache + PHP + MySQL

    在Mac OS X中配置Apache + PHP + MySQL Mac OS X 内置Apache 和 PHP,使用起来非常方便.本文以Mac OS X 10.6.3和为例.主要内容包括: 启动Ap ...

  8. 在MAC OS X中默认的Web共享目录

    在Mac OS X中可以很方便的通过开启"Web共享"启用Apache服务:设置方法如下: 打开"系统设置偏好(System Preferences)" -&g ...

  9. 在Mac OS X中配置Apache + PHP + MySQL 很详细

    这是一篇超级详细的配置mac os下面php+mysql+apache的文章.非常详细我的大部分配置就是参考上面的内容的,比如,PHP不能连接数据库,就是改一下默认的php.ini中pdo_mysql ...

随机推荐

  1. UNIX基础知识之用户标识

    一.用户ID 口令文件(/etc/passwd)登录项中的用户ID(user ID)是个数值,它向系统标识各个不同的用户.系统管理员在确定一个用户的登录名的同时,确定其用户ID.用户不能更改其用户ID ...

  2. PAT 1001

    Calculate a + b and output the sum in standard format -- that is, the digits must be separated into ...

  3. 用联想wndows8系统做android调试开发,adb server无法启动的原因

    今天换了台笔记本,联想V480的,装好开发软件,配置好一环境,于是打算先试一下能不能用,结果在eclipse devices中死活看不到设备,于是开如找各种问题,最后在度娘的帮助下终于找到了答案,我的 ...

  4. Debian下MySQL配置

    1 安装 $ apt-get install mysql-server $ apt-get install mysql-client 2 修改MySQL的口令 一般上一步会让你输入root密码,如果没 ...

  5. 记第一次web前端校招笔试

    是的,我今晚跑到隔壁学校参加某电商公司的宣讲会+现场笔试.只有俩字可以形容:苦笑! 在寝室复习了下以前学习的关于前端方面的知识,重点是JavaScript,javaweb开发技术(jsp+servle ...

  6. Javascript oop深入学习笔记(三)--javascript中类的实现

    一.类的实现机制 在javascript中可以使用function关键字来定义一个类.在函数内通过this指针引用的变量或则方法都会成为类的成员. function classDemo(){ var ...

  7. 一个把List<String>转化为以","隔开的字符串的方法

    import java.util.ArrayList; import java.util.List; /** * 集合操作 * @author intrl * @date 2010-12-15 * @ ...

  8. 24小时学通Linux内核之有关Linux文件系统实现的问题

    有时间睡懒觉了,却还是五点多醒了,不过一直躺倒九点多才算起来,昨晚一直在弄飞凌的嵌入式开发板,有些问题没解决,自己电脑系统的问题,虽然Win10发布了,,但我还是好喜欢XP呀,好想回家用用家里的XP来 ...

  9. 用Activator.CreateInstance代替new实现类的实例化(转)

    一直想得到这样一个函数,输入一个类的名称为参数,返回一个相应的类的实例. 这在工厂模式中是非常有用的 这样,可以使程序有更高的扩展性,例如,,下面的例子 如果现在有一个类,专门用来计算交通工具的速度, ...

  10. 【转】ora-00031:session marked for kill(标记要终止的会话)解决方法

    今天碰到一个问题,有一张表不能操作,很可能是被锁了,首先想到的是kill session,于是执行了下列的脚本找到是哪个session有问题: select object_name, machine, ...