zoukankan      html  css  js  c++  java
  • OpenOCD的概念,安装和使用

      概念:

      OpenOCD是一个运行于PC上的开源调试软件,它可以控制包括Wiggler之内的很多JTAG硬件;我们可以将它理解为一种GDB服务程序。OpenOCD的源码只能通过SVN下载,地址是:svn://svn.berlios.de/openocd/trunk 。最初是由Dominic Rath同学还在大学期间发起的(2005年)项目。OpenOCD旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。OpenOCD的功能是在仿真器的辅助下完成的,仿真器是能够提供调试目标的电信号的小型硬件单元。仿真器是必须的,因为调试主机(运行OpenOCD的主机)通常不具备这种电信号的直接解析功能。

      安装:

      我这里只提供macos和linux的安装,其实,这两个都是类unix系统,基本方法基本一样的。

      linux上的源码安装:

      A 源码下载: https://sourceforge.net/projects/openocd/files/openocd/

      B 根目录下执行:./configure --prefix=/usr/local --enable-jlink

          C 然后执行:make && make install

      macos上的命令安装:

      brew install openocd

      使用:

      我这里以stm32的开发版为例:https://github.com/nabilt/STM32F4-Discovery-Firmware

      下载和使用openocd:

    git clone https://github.com/nabilt/STM32F4-Discovery-Firmware.git
    cd STM32F4-Discovery_FW_V1.0.1/Project/IO_Toggle
    make && make program
    openocd -f ../../openocd_config/openocd.cfg -f ../../openocd_config/stm32f4x.cfg

      客户端使用:

    (gdb) target extended localhost:3333
    (gdb) # reset and halt the chip
    (gdb) monitor halt
    (gdb) # load symbol files
    (gdb) file demo.elf
    (gdb) # load demo.elf into RAM
    (gdb) load demo.elf
    Loading section .isr_vector, size 0x188 lma 0x8000000
    Loading section .text, size 0xc5c lma 0x8000188
    Loading section .data, size 0x38 lma 0x8000de4
    Start address 0x8000d6c, load size 3612
    Transfer rate: 6 KB/sec, 1204 bytes/write.
    (gdb) run the program. hit Control-C to stop
    (gdb) continue

      参考文档:

    https://github.com/nabilt/STM32F4-Discovery-Firmware

  • 相关阅读:
    HDU-1205
    HDU-2033
    HDU-2032
    HDU-2031
    HDU-2030
    HDU-2029
    HDU-2028
    HDU-2027
    HDU-2026
    HDU-2025
  • 原文地址:https://www.cnblogs.com/dylancao/p/10330331.html
Copyright © 2011-2022 走看看