发新帖我要提问
12
返回列表
打印
[应用相关]

Linux下STM32开发环境的搭建

[复制链接]
楼主: internally
手机看帖
扫描二维码
随时随地手机跟帖
21
internally|  楼主 | 2019-7-23 14:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
四、使用C/C++ GDB HardWare Debugging进行硬件调试

1、安装GDB调试插件--C/C++ GDB HardWare Debugging

1> 安装

  此种方法是Eclipse自动在用户提供的网络地址上进行搜索,然后下载安装,所以确保虚拟机能上网。



2> 验证  

  成功以后,就可以在Run-->Debug Configurations中看到如下界面



  需要说明的是倘若Run菜单下没有找到“Debug Configurations”选项,那是由于之前工程处于编译环境,还没有切换到调试环境,只有切换到调试环境才能在Run菜单下找到该选项。切换方法是:

使用特权

评论回复
22
internally|  楼主 | 2019-7-23 14:45 | 只看该作者
2、设置Eclipse调试环境并调试

1> 配置Eclipse调试选项

① Debugger

  Run-->Debug Configurations-->GDB Hardware Debugging -->Debugger



② Startup

  在Initialization Commands中输入检测参数

    monitor flash device = STM32F103ZE
    monitor flash download = 1
    monitor flash breakpoints = 1
    monitor clrbp
    monitor endian little
    monitor speed 5
    monitor reset
    monitor sleep 100
    monitor speed auto
    monitor writeu32 0xE000ED08 = 0x00000000


  再在Run Commands中输入命令

monitor reg r13 = (0x00000000)
monitor reg pc = (0x00000004)
break ResetHandler
break main
continue

使用特权

评论回复
23
internally|  楼主 | 2019-7-23 14:46 | 只看该作者
2> 配置Eclipse调试选项

  Run-->External Toos-->External Toos Configurations-->New _configuration



3> 调试

  Run -->Debug

使用特权

评论回复
24
internally|  楼主 | 2019-7-23 14:47 | 只看该作者
3、 另一种调试的方法

1>  配置

  配置还是步骤7中的1>和2>

2> 启动JLinkGDBServer

  在终端上启动JLinkGDBServer



3> GDB调试

  Run -->Debug

  如果连接成功,此时在终端上打印出如下界面

使用特权

评论回复
25
internally|  楼主 | 2019-7-23 14:47 | 只看该作者
五、使用arm-none-eabi-gdb直接进行硬件调试

1、安装Jlink驱动

2、安装交叉编译链arm-none-eabi-gcc

3、编译工程以生成elf文件

4、在当前用户目录下创建.gdbinit文件

  笔者的当前用户是root,所以在root目录下创建.gdbinit初始化文件

#gedit ~/.gdbinit
  内容为:

set auto-load safe-path /
5、在工程文件夹下的Debug目录中创建.gdbinit文件

  在工程的Debug目录下创建.gdbinit文件,内容为:

target remote :2331
set mem inaccessible-by-default off
monitor speed auto
monitor endian little
monitor reset
monitor flash device = STM32F103ZE
monitor flash breakpoints = 1
monitor flash download = 1
load
monitor reg sp = (0x08000000)
monitor reg pc = (0x08000004)
break ResetHandler
break main
continue

  需要说明的是:由于当前版本的Jlink驱动不支持STM32F103VET6,所以选择STM32F103ZE来代替。

6、启动JLinkGDBServer

  打开一个终端输入命令

root@daneiqi:~# JLinkGDBServer
7、启动调试

  再打开一个终端,在工程的Debug目录下输入命令:

root@daneiqi:~/workspace/LED_Test/Debug# arm-none-eabi-gdb LED_Test.elf
  调试界面如下

使用特权

评论回复
26
internally|  楼主 | 2019-7-23 14:51 | 只看该作者
本章参考资料: GNU ARM Eclipse (for STM32) http://www.indigresso.com/wiki/doku.php?id=opentag:tools:gnu_arm_eclipse#project_creation

          STM32 Discovery Development On Linuxhttp://www.wolinlabs.com/blog/linux.stm32.discovery.gcc.html



全文参考资料:  J-Link GDB Server User Guide - Seggerhttp://www.segger.com/admin/uploads/productDocs/UM08005_JLinkGDBServer.pdf

                  GNU ARM Eclipse (for STM32)http://www.indigresso.com/wiki/doku.php?id=opentag:tools:gnu_arm_eclipse#project_creation

         linux下配置ARM开发环境笔记(STM32系列/Kinetis系列)

           ubuntu下安装stm32开发环境 秒杀keil和IAR https://www.amobbs.com/thread-5568167-1-1.html

         Jlink 命令行 下载bin文件 http://blog.163.com/jiankangshiye@yeah/blog/static/172080380201352842537913/

         Eclipse配合GDB和jlinkGDBServer仿真调试STM32 https://blog.csdn.net/yyz_1987/article/details/17735395

使用特权

评论回复
27
木木guainv| | 2019-8-12 12:07 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
28
磨砂| | 2019-8-12 13:58 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
29
晓伍| | 2019-8-12 14:03 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则