[ 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 …

Appium高级话题:混合应用与原生应用测试策略

Appium高级话题:混合应用与原生应用测试策略 在移动应用开发领域,混合应用与原生应用各有千秋,但它们的测试策略却大相径庭。本文旨在深入探讨这两种应用类型的测试挑战,并介绍如何利用自动化测试软件ItBuilder高效解决这些问题&…

安卓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易读以及纯文本格式的特性,可以非常容易地与其他程序进行沟通…

Pool 和 PG 架构(二)

Ceph 的存储架构设计旨在提供高可用性和可扩展性。其中,Pool(存储池)和 PG(放置组)是两个核心概念。下面详细介绍 Ceph 的 Pool 和 PG 架构以及它们之间的关系。 1. Pool池 概念: Pool(存储池…

python爬虫初体验(二)

在Python中,每个模块都有一个内置的变量 name,用于表示当前模块的名称。当一个Python文件被执行时,Python解释器会首先将该文件作为一个模块导入,并执行其中的代码。此时,__name__的值为模块的名称。 作用 模块可被导…

业务安全治理

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

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

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

【sql】MySQL中去重处理的方法

在MySQL中,去重通常指的是从查询结果中删除重复的行。这可以通过多种方式实现,具体取决于你的需求。以下是一些常见的去重方法: 1. DISTINCT 关键字: 使用 DISTINCT 关键字可以返回唯一不同的值。 SELECT DISTINCT column_name…

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、调试跑通 …

mac 怎么查看CPU核数

在 macOS 系统中&#xff0c;可以通过以下几种方法查看 CPU 核心数&#xff1a; 1. 使用“关于本机”查看 点击左上角的苹果图标&#xff08;&#xff09;。选择“关于本机”。在弹出的窗口中&#xff0c;系统会显示 Mac 的基本信息&#xff0c;包括 CPU 的类型和核心数。比…

【简历】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…

二分系列(二分查找)9/12

一、分情况讨论 1.左闭右闭:[left,right] 因为是左闭右闭&#xff0c;所以left和right都能直接取到。 #这里将>放到一起&#xff0c;当nums[mid]>target的时候&#xff0c; 要更新右边界&#xff0c;rightmid-1,这样就把一些相同的情况也切出去了 可以理解为找的第一个…