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.mzph.cn/news/590259.shtml

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

相关文章

红队打靶练习:SAR: 1

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 小结 目录探测 1、gobuster 2、dirsearch WEB CMS 1、cms漏洞探索 2、RCE漏洞利用 提权 get user.txt 本地提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface:…

写在2024年初,软件测试面试笔记总结与分享

大家好,最近有不少小伙伴在后台留言,得准备年后面试了,又不知道从何下手!为了帮大家节约时间,特意准备了一份面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在都能拿到…

LanceDB:在对抗数据复杂性战役中,您可信赖的坐骑

LanceDB 建立在 Lance(一种开源列式数据格式)之上,具有一些有趣的功能,使其对 AI/ML 具有吸引力。例如,LanceDB 支持显式和隐式矢量化,能够处理各种数据类型。LanceDB 与 PyTorch 和 TensorFlow 等领先的 M…

24届春招实习必备技能(一)之MyBatis Plus入门实践详解

MyBatis Plus入门实践详解 一、什么是MyBatis Plus? MyBatis Plus简称MP,是mybatis的增强工具,旨在增强,不做改变。MyBatis Plus内置了内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作&#xff0…

【LMM 003】生物医学领域的垂直类大型多模态模型 LLaVA-Med

论文标题:LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day 论文作者:Chunyuan Li∗, Cliff Wong∗, Sheng Zhang∗, Naoto Usuyama, Haotian Liu, Jianwei Yang Tristan Naumann, Hoifung Poon, Jianfeng Gao 作…

LeetCode二叉树路径和专题:最大路径和与路径总和计数的策略

目录 437. 路径总和 III 深度优先遍历 前缀和优化 124. 二叉树中的最大路径和 437. 路径总和 III 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xf…

简单FTP客户端软件开发——VMware安装Linux虚拟机(命令行版)

VMware安装包和Linux系统镜像: 链接:https://pan.baidu.com/s/1UwF4DT8hNXp_cV0NpSfTww?pwdxnoh 提取码:xnoh 这个学期做计网课程设计【简单FTP客户端软件开发】需要在Linux上配置 ftp服务器,故此用VMware安装了Linux虚拟机&…

burpsuite模块介绍之compare

导语 Burp Comparer是Burp Suite中的一个工具,主要提供一个可视化的差异比对功能,可以用于分析比较两次数据之间的区别。它的应用场景包括但不限于: 枚举用户名过程中,对比分析登陆成功和失败时,服务器端反馈结果的区…

编程式导航传参

(通过js代码实现跳转) 按照path进行跳转 第一步&#xff1a; 在app.vue中(前提是规则已经配置好) <template><div id"app">App组件<button clicklogin>跳转</button><!--路由出口-将来匹配的组件渲染地方--><router-view>&l…

【嵌入式学习笔记-01】什么是UC,操作系统历史介绍,计算机系统分层,环境变量(PATH),错误

【嵌入式学习笔记】什么是UC&#xff0c;操作系统历史介绍&#xff0c;计算机系统分层&#xff0c;环境变量&#xff08;PATH&#xff09;&#xff0c;错误 文章目录 什么是UC?计算机系统分层什么是操作系统&#xff1f; 环境变量什么是环境变量&#xff1f;环境变量的添加&am…

简写英语单词

题目&#xff1a; 思路&#xff1a; 这段代码的主要思路是读取一个字符串&#xff0c;然后将其中每个单词的首字母大写输出。具体来说&#xff0c;程序首先使用 fgets 函数读取一个字符串&#xff0c;然后遍历该字符串中的每个字符。当程序遇到一个字母时&#xff0c;如果此时…

基于图论的图像分割 python + PyQt5

数据结构大作业&#xff0c;基于图论中的最小生成树的图像分割。一个很古老的算法&#xff0c;精度远远不如深度学习算法&#xff0c;但是对于代码能力是一个很好的锻炼。 课设要求&#xff1a; &#xff08; 1 &#xff09;输入&#xff1a;图像&#xff08;例如教室场景图&a…

47、激活函数 - sigmoid

今天在看一个比较常见的激活函数,叫作 sigmoid 激活函数,它的数学表达式为: 其中,x 为输入,画出图来看更直观一些。 Sigmoid 函数的图像看起来像一个 S 形曲线,我们先分析一下这个函数的特点。 Sigmoid 函数的输出范围在 (0, 1) 之间,并且不等于0或1。 Sigmoid 很明显是…

Codeforces Round 900 (Div. 3)(A-F)

比赛链接 : Dashboard - Codeforces Round 900 (Div. 3) - Codeforces A. How Much Does Daytona Cost? 题面 : 思路 : 在序列中只要找到k&#xff0c;就返回true ; 代码 : #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)…

spring 之 事务

1、JdbcTemplate Spring 框架对 JDBC 进行封装&#xff0c;使用 JdbcTemplate 方便实现对数据库操作 1.1 准备工作 ①搭建子模块 搭建子模块&#xff1a;spring-jdbc-tx ②加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependency&…

性能优化(CPU优化技术)-ARM Neon详细介绍

本文主要介绍ARM Neon技术&#xff0c;包括SIMD技术、SIMT、ARM Neon的指令、寄存器、意图为读者提供对ARM Neon的一个整体理解。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09…

2024年总结的前端学习路线分享(学习导读)

勤学如春起之苗&#xff0c;不见其增&#xff0c;日有所长 。辍学如磨刀之石&#xff0c;不见其损&#xff0c;日有所亏。 在写上一篇 2023年前端学习路线 的时候&#xff0c;时间还在2023年初停留&#xff0c;而如今不知不觉时间已经悄然来到了2024年&#xff0c;回顾往昔岁月…

三、Mysql安全性操作[用户创建、权限分配]

一、用户 1.创建用户 CREATE USER test1localhost identified BY test1;2.删除用户 DROP USER test2localhost;二、权限分配 1.查询用户权限 SHOW GRANTS FOR test1localhost;2.分配权限 # 分配用户所有权限在for_end_test库的test1表 GRANT ALL PRIVILEGES ON for_end_t…

Pycharm引用其他文件夹的py

Pycharm引用其他文件夹的py 方式1&#xff1a;包名设置为Sources ROOT 起包名的时候&#xff0c;需要在该文件夹上&#xff1a;右键 --> Mark Directory as --> Sources ROOT 标记目录为源码目录&#xff0c;就可以了。 再引用就可以了 import common from aoeweb impo…

OCP NVME SSD规范解读-3.NVMe管理命令-part2

NVMe-AD-8&#xff1a;在某些情况下&#xff08;如Sanitize命令、Format NVM命令或TCG Revert方法后数据被清除&#xff09;&#xff0c;设备应允许读取已清除的LBAs而不产生错误&#xff0c;并在最后一次清除完成后&#xff0c;对未写入LBAs的读取返回所有零值给主机 NVMe-AD…