[ IDE ] SEGGER Embedded Studio for RISC-V

一、FILE

二、Edit

三、View

四、Search

五、Navigate

六、Project

七、Build

7.1 编译

         先选择一个目标类型,再选择编译。

八、Debug

九、Target

十、Tools

10.1 自定义快捷键

         点击菜单项,通过Tools –> Options –> Keyboard,实现自定义快捷键。

  •  DebugDownloadActive:下载当前工程。
  • EditGoToDeclaration:跳转到函数声明。

 

十一、Windows

十二、Help

十三、调试工具 OpenOCD 

13.1 介绍

        OpenOCD(Open On-Chip Debugger)是一款专为嵌入式系统设计的开源调试工具,广泛应用于微控制器和SoC(System on Chip)的调试、编程及测试。它的核心能力在于通过标准的硬件接口,如JTAG(Joint Test Action Group)和SWD(Serial Wire Debug),实现与目标设备的高效通信。OpenOCD支持多种硬件调试适配器,例如J-Link、ST-Link和DAP-Link等,这些适配器作为小型硬件单元,负责在调试主机和目标设备之间传递必要的电信号,弥补了普通计算机缺乏此类信号直接支持的问题。

        OpenOCD的设计理念强调灵活性和可扩展性,这体现在它支持广泛的处理器架构,包括但不限于ARM、MIPS、RISC-V等。通过高度可配置的脚本语言,用户可以根据特定项目的需求定制调试环境,从而简化复杂的调试流程。例如,在RISC-V架构的支持方面,OpenOCD特别开发了一个分支,旨在为这一新兴架构提供更完善的调试解决方案。此外,OpenOCD还提供了一个强大的命令行界面,允许开发者通过简单的命令完成复杂的操作,如设置断点、观察变量、控制程序流等,极大地提高了调试效率。

        在实际应用中,OpenOCD通常与GDB(GNU Debugger)配合使用,形成了一套完整的嵌入式开发调试解决方案。GDB通过OpenOCD提供的接口与目标设备进行通信,使开发者能够在熟悉的IDE环境中进行调试,而无需关心底层通信细节。这种组合不仅适用于专业开发人员,也成为了许多大学和培训机构教授嵌入式系统课程的重要工具。例如,ESP32开发板的JTAG调试就是通过OpenOCD和GDB实现的,开发者可以轻松地进行断点设置、单步执行、变量查看等操作,大大提升了开发体验。

        除了基本的调试功能外,OpenOCD还支持边界扫描测试(Boundary Scan Testing, BST),这是一种用于检测印刷电路板(PCB)制造缺陷的技术。BST利用JTAG接口,在不需物理接触的情况下,对PCB上的元件进行电气测试,这对于确保产品在生产过程中的质量和可靠性至关重要。因此,OpenOCD不仅在软件开发阶段发挥作用,也在硬件验证和测试环节扮演着重要角色。

13.2  Windows 环境下安装

 在Windows上安装OpenOCD相对简单,主要是下载预编译的二进制文件并设置环境变量。

  1. 访问OpenOCD的GitHub发布页面,下载适合系统的预编译版本:        
    Releases · xpack-dev-tools/openocd-xpack (github.com)
  2. 解压下载的文件到指定位置。
  3. 将bin目录添加到系统环境变量PATH中,这样可以在任何地方运行OpenOCD。
  4. 重启计算机或重新打开命令提示符窗口,然后验证安装:
    openocd --version

13.3 Linux 环境下安装

        在Linux上,你可以选择通过包管理器安装预编译的OpenOCD,或者从源代码编译安装。使用包管理器安装更为简便,但如果需要最新版本或特定功能,建议从源代码编译安装。

13.3.1  通过包管理器安装(Ubuntu为例)

 更新软件包列表:

sudo apt-get update

安装OpenOCD:

sudo apt-get install openocd

 检查安装是否成功:这将显示OpenOCD的版本信息,确认安装成功。

openocd --version
 13.3.2 从源代码编译安装

 安装编译所需工具和库:

sudo apt-get install build-essential pkg-config autoconf automake libtool libusb-1.0-0-dev libhidapi-dev

 克隆OpenOCD仓库:

git clone https://github.com/openocd-org/openocd.git

进入OpenOCD目录:

cd openocd

配置编译选项(根据需要调整参数):

./bootstrap
./configure --prefix=/usr/local --enable-ft2232_libftdi --enable-stlink --enable-jlink

 编译并安装:

make
sudo make install

 验证安装:

openocd --version

十四、下载 SEGGER Embedded Studio for RISC-V

官方地址: SEGGER - The Embedded Experts - Downloads - Embedded Studio

 

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

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

相关文章

Java | Leetcode Java题解之第413题等差数列划分

题目: 题解: class Solution {public int numberOfArithmeticSlices(int[] nums) {int n nums.length;if (n 1) {return 0;}int d nums[0] - nums[1], t 0;int ans 0;// 因为等差数列的长度至少为 3,所以可以从 i2 开始枚举for (int i …

安卓13设置动态显示隐藏第一页的某一项 动态显示隐藏无障碍 android13设置动态显示隐藏第一页的某一项

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改4.1修改方法14.2修改方法25.编译6.彩蛋1.前言 有时候,我们的设置里面显示的信息,需要根据不同的情况显示不同的信息,例如,动态的显示或者隐藏 “无障碍” 这一项。 2.问题分析 像这个问题…

英集芯IP5902:集成电压可调异步升压转换充电管理功能的8位MCU芯片

英集芯IP5902是一款集成了9V异步升压转换、锂电池充电管理及负端NMOS管的8-bit MCU芯片,外壳采用了SOP16封装形式,高集成度和丰富的功能使其在应用时只需很少的外围器件,就能有效减小整体方案的尺寸,降低BOM成本,为小型…

Day69补 前后端分离思想

ajax前后端分离 前后端分离处理:前端------(数据)-----服务端----(数据)-----前端-----动态改变页面的内容 1.json 1、JSON:由于JSON易读以及纯文本格式的特性,可以非常容易地与其他程序进行沟通…

业务安全治理

业务安全治理 1.账号安全撞库账户盗用 2.爬虫与反爬虫3.API网关防护4.钓鱼与反制钓鱼发现钓鱼处置 5.大数据风控风控介绍 1.账号安全 撞库 撞库分为垂直撞库和水平撞库两种,垂直撞库是对一个账号使用多个不同的密码进行尝试,可以理解为暴力破解&#x…

MVCC机制解析:提升数据库并发性能的关键

MVCC机制解析:提升数据库并发性能的关键 MVCC(Multi-Version Concurrency Control) 多版本并发控制 。 MVCC只在事务隔离级别为读已提交(Read Committed)和可重复读(Repeated Read)下生效。 MVCC是做什么用的 MVCC是为了处理 可重复读 和…

C# 实时流转换为m3u8

主要通过FFmpeg 执行命令进行转换 FFmpeg 下载地址 命令行 ffmpeg -i "rtsp://your_rtsp_stream_address" -codec: copy -start_number 0 -hls_time 10 -hls_list_size 12 -f hls "output.m3u8"start_number 设置播放列表中最先播放的索引号,…

形式向好、成本较低、可拓展性较高的名厨亮灶开源了

简介 AI视频监控平台, 是一款功能强大且简单易用的实时算法视频监控系统。愿景在最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,减少企业级应用约 95%的开发成本,在强大视频算法加…

C++_21_模板

模板 简介&#xff1a; 一种用于实现通用编程的机制。 通过使用模板我们可以编写可复用的代码&#xff0c;可以适用于多种数据类型。 C模板的语法使用角括号 < > 来表示泛型类型&#xff0c;并使用关键字 template 来定义和声明模板 概念&#xff1a; c范式编程 特点&…

海外大带宽服务器连接失败怎么办?

在全球化日益加深的今天&#xff0c;海外大带宽服务器已成为企业拓展国际市场、提升业务效率的重要工具。然而&#xff0c;面对复杂多变的网络环境和技术挑战&#xff0c;服务器连接失败的问题时有发生&#xff0c;这不仅影响了企业的正常运营&#xff0c;还可能带来经济损失和…

如何写一个自动化Linux脚本去进行等保测试--引言

#我的师兄喜欢给我的休闲实习生活加活&#xff0c;说是让我在实习期间写一个自动化脚本去进行等保测试。呵呵哒。 怎么办呢&#xff0c;师兄的指令得完成&#xff0c;师兄说让我使用Python完成任务。 设想如下&#xff1a; 1、将Linux指令嵌入到python脚本中 2、调试跑通 …

【简历】25届河南某一本JAVA简历:从头到尾都表现的不懂技术

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历总体说明 今天看一份河南某重点一本大学的Java简历。 校招备战第一法则&#xff1a;必须确定自己的求职层次&#xff0c;是大厂、中厂还是小…

php语言基本语法

HP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛使用的开源服务器端脚本语言&#xff0c;特别适合于Web开发。 它能够嵌入到HTML中&#xff0c;执行动态网页内容。 PHP的一些基本语法元素&#xff1a; 1. 基本结构 PHP代码通常嵌入到HTML中&#xff0c;以<…

OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——轻量系统芯片移植指南(一) Op…

基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)

目录 一、项目界面 二、代码实现 1、数据集结构 2、设置需要模型的训练参数和指定数据集路径 3、网络代码 4、训练代码 5、评估代码 6、结果显示 三、项目代码 一、项目界面 二、代码实现 1、数据集结构 每一个文件夹对应一个类别的数据 2、设置需要模型的训练参数和…

09.20 C++对C的扩充以及C++中的封装、SeqList

SeqList.h #ifndef SEQLIST_H #define SEQLIST_H#include <iostream> #include<memory.h> #include<stdlib.h> #include<string.h>using namespace std;//typedef int datatype; //类型重命名 using datatype int;//封装一个顺序表 class Seq…

app抓包 chrome://inspect/#devices

一、前言&#xff1a; 1.首先不支持flutter框架&#xff0c;可支持ionic、taro 2.初次需要翻墙 3.app为debug包&#xff0c;非release 二、具体步骤 1.谷歌浏览器地址&#xff1a;chrome://inspect/#devices qq浏览器地址&#xff1a;qqbrowser://inspect/#devi…

新媒体运营

一、新媒体运营的概念 1.新媒体 2.新媒体运营的五大方向 用户运营 产品运营 。。。 二、新媒体的岗位职责及要求 三、新媒体平台

快速开发与维护:探索 AndroidAnnotations

在移动应用开发的世界中&#xff0c;效率和可维护性是两个至关重要的要素。随着应用功能的不断增长和用户需求的不断变化&#xff0c;开发者们一直在寻找能够提高生产力的工具和框架。今天&#xff0c;我们将深入探讨一个能够帮助开发者实现快速开发和易于维护的框架——Androi…

dgl库安装

此篇文章继续上一篇pytorch已经安装成功的情况 &#xff08;python3.9&#xff0c;pytorch2.2.2&#xff0c;cuda11.8&#xff09; 上一篇pytorch安装教学链接 选择与之匹配的版本 输入下方代码进行测试 import dgl.data dataset dgl.data.CoraGraphDataset() print(‘Numb…