概念:

  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:
(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
Transfer rate: KB/sec, bytes/write.
(gdb) run the program. hit Control-C to stop
(gdb) continue

  参考文档:

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

OpenOCD的概念,安装和使用的更多相关文章

  1. Spark 基本概念 & 安装

    1. Spark 基本概念 1.0 官网 传送门 1.1 简介 Spark 是用于大规模数据处理的快如闪电的统一分析引擎. 1.2 速度 Spark 可以获得更高的性能,针对 batch 计算和流计算 ...

  2. Redis (一) 概念安装

    一.阿里云安装Redis 1.安装Redis yum -y install redis 2.启动Redis service redis start 或者(推荐使用) systemctl start  ...

  3. <Redis> 入门一 概念安装

    Redis 概念 redis是一款高性能的NOSQL系列的非关系型数据库          什么是NOSQL             NoSQL(NoSQL = Not Only SQL),意即“不仅 ...

  4. docker 概念 | 安装 | 基本使用

    Docker 是世界领先的软件容器平台,所以想要搞懂Docker的概念我们必须先从容器开始说起. 一 先从认识容器开始 先来看看容器较为官方的解释 一句话概括容器:容器就是将软件打包成标准化单元,以用 ...

  5. Django+Nginx概念安装和使用–使用Django建立你的第一个网站

    一 前记 最近在使用Django倒腾属于自己的网站,由于以前没有接触过多少这类信息,所以,很多东西都是从零开始学习的.在参考网上的资料时候,发现很多对这方面记录的,很多人都写的不是很清楚,也许我这个新 ...

  6. OpenOCD安装与使用(JTAG调试)

    本文介绍openocd开源软件的安装以及搭配JTAG对Xilinx u500VC707devkit的调试 PC OS: Ubuntu20.04 LTS Target ARCH: riscv64 JTA ...

  7. window apidoc的安装和使用

    apidoc是一个轻量级的在线REST接口文档生成系统,支持多种主流语言,包括Java.C.C#.PHP和Javascript等.使用者仅需要按照要求书写相关注释,就可以生成可读性好.界面美观的在线接 ...

  8. Nginx 安装及配置

    目录 概念 安装 配置文件 主要文件位置 注意点 Nginx运行 FAQ Q1:nginx: [error] open() "/usr/local/var/run/nginx.pid&quo ...

  9. 手动为 Team Foundation Server 安装 SQL Server

    本主题中的步骤适用于安装 SQL Server 2012 企业版,你也可以使用安装标准版的相同步骤. 适用于 SQL 2014 的步骤与以上步骤也非常相似. 我们将在 TFS 所在的同一服务器上安装 ...

随机推荐

  1. Promise 返回值

    then 和 catch 中返回 promise,会在这个 promise resolve 或 reject 的时候,把 resolve 或 reject 的结果作为参数传给后面的 then 或 ca ...

  2. Go之十大经典排序算法

    1.冒泡排序 func bubble_sort(li []int) { for i := 0; i < len(li)-1; i++ { exchange := false for j := 0 ...

  3. read()和write()

    1.write() 函数定义:ssize_t write (int fd, const void * buf, size_t count); 函数说明:write()会把参数buf所指的内存写入cou ...

  4. Git帮助之初始化项目设置向导

    初始化项目设置向导 Git设置: git config --global user.name "Your Name Here" # 设置Git提交时的默认用户名,推荐使用本站用户名 ...

  5. 组合 数论 莫比乌斯反演 hdu1695

    题解:https://blog.csdn.net/lixuepeng_001/article/details/50577932 题意:给定范围1-b和1-d求(i,j)=k的数对的数量 #includ ...

  6. OO Unit 1 表达式求导

    OO Unit 1 表达式求导 面向对象学习小结 前言 本博主要内容目录: 基于度量来分析⾃己的程序结构 缺点反思 重构想法 关于BUG 自己程序出现过的BUG 分析⾃己发现别人程序bug所采⽤的策略 ...

  7. 随机生成UserAgent包之fake-useragent

    一.安装 pip install fake-usragent 二.使用 .导包 from fake-useragent import UserAgent .实例化 ua = UserAgent() . ...

  8. JAVA基础复习与总结<七> File类_基本的IO概念_输入输出

    File类 1.操作目录  mkdir() 创建目录,必须确保父目录存在,如果不存在,创建失败 mkdirs() list() 文件:目录字符串形式 ,只返回目录和文件的名称 listFiles()  ...

  9. 数据库和Content Provider

    SQLite提供了强大的SQL数据库的库文件,从而使应用程序拥有一个具备完全控制权的健壮的持久化层. Content Provider实现在应用程序内和应用程序之间存储.共享和使用结构化数据.通过将数 ...

  10. Win10 安装Oracle11g2、配置PL/SQL Developer11环境

    Oracle11g2的下载地址(下载以下两个压缩包,解压后得到两个oracle目录,放到一起就得到完整的安装文件了): 1.Oracle11g2: oracle-part-1 oracle-part- ...