OpenOCD简介和下载安装(Ubuntu)

文章目录

      • OpenOCD简介
      • OpenOCD软件模块
      • OpenOCD源码下载
      • OpenOCD安装

OpenOCD简介

OpenOCD(Open On-Chip Debugger)开放式片上调试器
OpenOCD官网 https://openocd.org/,进入官网点击 About 可以看到OpenOCD最初的设计是由国外一个叫Dominic Rath的学生在毕设上提出来针对ARM7和ARM9芯片的片上调试
在这里插入图片描述
OpenOCD主要提供针对嵌入式设备的调试、系统编程和边界扫描功能。它需要与仿真器配合使用,仿真器是一种能够提供调试目标电信号的小型硬件单元,这是因为调试主机(即运行OpenOCD的主机)通常不具备这种电信号的直接输出能力
在实际应用中,例如在使用Clion进行嵌入式开发时,可以与OpenOCD进行集成,以方便在Clion中进行调试和烧录操作。此外,OpenOCD还支持一种称为Semihosting的功能,即利用OpenOCD(Debug-Module)可以直接访问CPU上的memory来达到数据吞吐的目的

OpenOCD软件模块

OpenOCD官网打开Dominic Rath的论文在其50也可以看到最初设计架构中的软件模块组成
在这里插入图片描述

OpenOCD源码下载

官网上面也提供源码下载,选择Git源码仓库链接进入Git仓库(此处有坑,先看完这一小节再操作)
在这里插入图片描述
直接拷贝git指令在ubuntu中进行源码拷贝
在这里插入图片描述git仓库源码拷贝,拷贝完成后在路径下将多出来一个 openocd-code 文件夹
在这里插入图片描述
源码下载后就是执行 ./configure 指令进行OpenOCD配置,但是 ls -l 后的文件中就是没有 configure 文件,这就很尴尬了
在这里插入图片描述
第二种源码下载方式,Windows下载OpenOCD源码压缩包,在OpenOCD远程仓库选择 Summary → Download 下载压缩包到Windows
在这里插入图片描述
再通过share文件夹放进Ubuntu,解压后打开 openocd-0.12.0 文件夹,目前最新版本的OpenOCD为0.12.0,可看到文件夹下有 configure 文件
在这里插入图片描述

OpenOCD安装

终端打开OpenOCD路径下,运行指令 ./configure ,后面加上调试器类型,这里用的调试器是J-Link,等待OpenOCD进行配置
在这里插入图片描述
配置完成后可以看到OpenOCD的当前配置表
在这里插入图片描述下一步,make编译,没装make的需要先 sudo apt-get install make -y 一下,编译可能会出现以下报错
在这里插入图片描述
报错原因是缺失pkg-config包,sudo apt-get install pkg-config -y 安装
在这里插入图片描述
完成后make,正常的话会蹦出来另一个报错,LIBTOOL未定义
在这里插入图片描述
安装libtool, sudo apt-get install libtool -y
在这里插入图片描述
安装完成过后继续make,发现还是一样的报错内容,安装报错提示打开文件 configure.ac,查找是否定义了 LT_INIT
在这里插入图片描述
如有对应定义,那就终端直接运行 aclocalautoconf,再make,正常会开启几分钟左右的编译
在这里插入图片描述
sudo make install 进行软件安装
在这里插入图片描述
安装完成后,运行 openocd -V 指令查询OpenOCD是否安装成功,成功安装会再终端输出OpenOCD版本信息,如图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/228655.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Glary Utilities Pro - 电脑系统优化全面指南:详尽使用教程

软件简介: Glary Utilities Pro 是一款全面的电脑优化工具,它旨在帮助用户提升计算机的性能和稳定性。这款软件提供了多种功能,包括系统清理、优化、修复以及保护。通过一键扫描,它可以识别并清除无用文件、临时数据、注册表错误等…

计算机网络:知识回顾

0 本节主要内容 问题描述 解决思路 1 问题描述 通过一个应用场景来回顾计算机网络涉及到的协议(所有层)。如下图所示场景: 学生Bob将笔记本电脑用一根以太网电缆连接到学校的以太网交换机;交换机又与学校的路由器相连&#xf…

Embedding模型在大语言模型中的重要性

引言 随着大型语言模型的发展,以ChatGPT为首,涌现了诸如ChatPDF、BingGPT、NotionAI等多种多样的应用。公众大量地将目光聚焦于生成模型的进展之快,却少有关注支撑许多大型语言模型应用落地的必不可少的Embedding模型。本文将主要介绍为什么…

C练习——银行存款

题目:设银行定期存款的年利率 rate为2.25%,已知存款期为n年,存款本金为capital 元,试编程计算并输出n年后本利之和deposit。 解析:利息本金*利率,下一年的本金又是是今年的本利之和 逻辑:注意浮点数,导入…

【计算机毕业设计】ssm+mysql+jsp实现的在线bbs论坛系统源码

项目介绍 jspssm(springspringMVCmybatis)MySQL实现的在线bbs论坛系统源码,本系统主要实现了前台用户注册登陆、浏览帖子、发布帖子、个人信息管理、消息通知管理,积分管理,后台管理功能有:友情链接管理、…

蓝牙物联网灯控设计方案

蓝牙技术是当前应用最广泛的无线通信技术之一,工作在全球通用的 2.4GHZ 的ISM 频段。蓝牙的工作距离约为 100 米,具有一定的穿透性,没有方向限制。具有低成本、抗干扰能力强、传输质量高、低功耗等特点。蓝牙技术组网比较简单,无需…

Unity坦克大战开发全流程——结束场景——失败界面

结束场景——失败界面 在玩家类中重写死亡函数 在beginPanel中锁定鼠标

关键字:throw关键字

在 Java 中,throw关键字用于抛出异常。当程序执行过程中发生意外情况,如错误的输入、资源不足、错误的逻辑等,导致程序无法正常执行下去时,可以使用throw关键字抛出异常。 以下是使用throw关键字的一些示例: 抛出异常…

【Linux--多线程同步与互斥】

目录 一、线程互斥1.1相关概念介绍1.2互斥量mutex1.3互斥量接口1.3.1初始化互斥量1.3.2销毁互斥量1.3.3互斥量加锁1.3.4互斥量解锁1.3.5使用互斥量解决上面分苹果问题 1.4互斥原理 二、可重入与线程安全2.1相关概念2.2常见线程不安全的情况2.3常见不可重入的情况2.4 可重入与线…

Python+Django 构建实验室药品管理和预警系统【源码】

人生苦短,我用 Python。 今天给大家分享一个完整的实战案例:Python实现实验室药品管理和预警系统,文末附完整代码! 在线演示环境 项目演示地址:http://101.34.18.118:8002/ (图片未压缩,所以加载有点慢&…

穷举vs暴搜vs深搜vs回溯vs剪枝

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻全排列👉&#…

浅析锂电池保护板(BMS)系统设计思路(四)SOC算法-扩展Kalman滤波算法

1 SOC估算方法介绍 电池SOC的估算是电池管理系统的核心,自从动力电池出现以来,各种各样的电池SOC估算方法不断出现。随着电池管理系统的逐渐升级,电池SOC估算方法的效率与精度不断提高,下面将介绍常用几种电池SOC估算方法[1]&…

unknown variable ‘authentication_policy=mysql_native_password‘

unknown variable authentication_policymysql_native_password 背景解决尝试一尝试二(解决) 总结 背景 mac上安装多个版本数据库。我是通过dmg安装的,先装的5.7,再装的5.8,然后5.8的能正常用,5.7的启动不起来。报错信息为如下 …

Django 学习教程- Django模板(Template)

系列 Django 学习教程-介绍与安装-CSDN博客 Django 学习教程- Hello world入门案例-CSDN博客 前言 在上一章节中我们使用django.http.HttpResponse() 来输出 "Hello World!"。该方式将数据与视图混合在一起,不符合 Django 的 MTV 思想。 本…

node 项目中 __dirname / __filename 是什么,为什么有时候不能用?

__dirname 是 Node.js 中的一个特殊变量,表示当前执行脚本所在的目录的绝对路径。 __filename 同理,是 Node.js 中的一个特殊变量,表示当前执行脚本的绝对路径,包括文件名。 在 Node.js 中,__dirname / __filename是…

Primavera Unifier 项目控制延伸:Phase Gate理论:2/3

阶段Gate的具体内容: 阶段0 根据公司需要和资源现状,决定开展哪些项目。在这个阶段,公司一般需要开展一些脑力风暴或者团队集思广益的活动以获得足够多的点子。一旦团队决定采用某个想法,必须从各个维度去完善它,并使…

Linux服务器搭建笔记-006:拓展/home目录容量

一、问题说明 Ubuntu服务器在使用过程中创建的新用户,每位用户会在/home目录下生成一个属于其个人的主文件夹。如果不限制各个用户的使用空间,所有的用户都会共用/home所挂载的硬盘。在这种多用户情况下,会很快的填满/home目录,导…

B2005 字符三角形(python)

a input() print( a) print( a a a) print(a a a a a)python中默认输入的是字符型,第一句就是输入了一个字符赋给a python中单引号内的也是字符串,用print输出需要连接的字符串时用加号加在后面即可

HarmonyOS应用开发-搭建开发环境

本文介绍如何搭建 HarmonyOS 应用的开发环境,介绍下载安装 DevEco Studio 开发工具和 SDK 的详细流程。华为鸿蒙 DevEco Studio 是面向全场景的一站式集成开发环境,面向全场景多设备,提供一站式的分布式应用开发平台,支持分布式多…

2024年人工智能领域10大预测

2023年人工智能领域如果只能筛选一个关键词的话,恐怕非“大模型”莫属。大模型的发展在过去一年中,让各行各业发生了天翻地覆的变化,有企业因大模型而新生,有企业因大模型而消亡。企业的变迁跟技术迭代息息相关,而大模…