Rocket - debug - Example: Quick Access
https://mp.weixin.qq.com/s/SxmX-CY2tqvEqZuAg-EXiQ
介绍riscv-debug的使用实例:配置Quick Access功能。
1. Quick Access
快速访问,即暂停核心执行Program Buffer中的一段短的代码,然后再恢复核心运行。
具体流程如下:
需要注意的是,Program Buffer一般以ebreak指令结束。执行完Program Buffer最后的ebreak后,才执行第4步恢复核心的执行。所以正常情况下,快速访问抽象命令执行完成后,核心还是在正常运行状态。这也是第3步中,"the program buffer execution ends, but the quick access command continues"的意思,第3步中断后,"continue"继续执行第4步。
寄存器的格式如下:
所以执行快速访问抽象命令时,command寄存器的值为0x1000_0000.
2. 实例1:a single memory write
A. 首先准备好Program Buffer:
a. 写寄存器progbuf0: transfer arg2, s0:把s0的值保存到arg2寄存器;
b. 写寄存器progbuf1: transfer s0, arg0:读arg0中保存的目标内存地址;
c. 写寄存器progbuf2: transfer arg0, s1:把s1的值保存到arg0寄存器;
d. 写寄存器progbuf3: transfer s1, arg1:把arg1中保存的待写数据读到s1中;
e. 写寄存器progbuf4: sw s1, 0(s0):写目标内存地址为待存数据;
f. 写寄存器progbuf5: transfer s1, arg0
g. 写寄存器progbuf6: transfer s0, arg2
h. 写寄存器progbuf7: ebreak: 退出执行返回调试环境;
B. 写data0寄存器:写为目标内存地址;也就是Program Buffer中的arg0;
C. 写data1寄存器:写为待存数据;也就是Program Buffer中的arg1;
D. 写command寄存器:
a. cmdtype=1:抽象命令为快速访问命令;
3. 实例2:setting the m bit in mcontrol
这里只提示要点:
a. tdata1就是mcontrol寄存器,两者的地址是一样的:
b. mcontrol的bit6是m bit:
c. progbuf3中写的指令是错误的,应该是:transfer s0, arg0. 因为s0保存在arg0而不是arg2中。
Rocket - debug - Example: Quick Access的更多相关文章
- RCP:如何移除Toolbar中的Quick Access
问题 自4.x开始,Quick Access搜索框成为Toolbar的"标准装备",一般删除Actionset的方式似乎不起作用,通过Quick Access,用户很容易访问到RC ...
- WPF 4 Ribbon 开发 之 快捷工具栏(Quick Access Toolbar)
转自 http://www.cnblogs.com/gnielee/archive/2010/05/10/wpf4-ribbon-quick-access-toolbar.html 在Office 2 ...
- Rocket - debug - TLDebugModuleInner - Abstract Command Decoding & Generation
https://mp.weixin.qq.com/s/0zKSTktxgzo5uCUphqaWSQ 介绍抽象命令的解码和生成. 1. accessRegisterCommandReg accessRe ...
- Rocket - debug - TLDebugModuleInner - Hart Bus Access
https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考 ...
- Rocket - debug - TLDebugModuleInner - Drive Custom Access
https://mp.weixin.qq.com/s/1bIqzDYXM36MIfSsjvvYIw 简单介绍TLDebugModuleInner中的针对Custom的访问. 1. customNode ...
- Rocket - debug - TLDebugModuleInner - Program Buffer Access
https://mp.weixin.qq.com/s/EJVqw7JPjjaib68tENl5AQ 简单介绍TLDebugModuleInner中的Program Buffer Access. 1. ...
- Rocket - debug - DebugTransport
https://mp.weixin.qq.com/s/EcsuTjb4hFF9Ncig9Gfhew 简单介绍DebugTransport的实现. 1. JtagDTMConfig 1) JtagDTM ...
- Rocket - debug - Example: Accessing Registers Using Abstract Command
https://mp.weixin.qq.com/s/RdJzE06mMkh2x__vVj_fEA 介绍riscv debug接口的使用实例:使用抽象命令读取寄存器. 1. Read s0 using ...
- Remove “Quick Access” entry in Eclipse Juno
Here is a quick hack which doesn't require any plugin installation, instead you just need to add a f ...
随机推荐
- CC2530应用——按键控制灯光状态变化
独立新建工程并编写.编译代码,实现按键控制灯光闪烁状态的变换,实现以下任务要求:[1]程序开始运行:D4灯闪烁,D3.D5.D6灯熄灭.[2]按下模块上的SW1按键松开后,实现D5.D6灯轮流闪烁.[ ...
- python 读取矢量文件
#导入包 from osgeo import ogr #打开文件(False - read only, True - read/write) filename = "文件名.shp" ...
- 【HBase】协处理器是什么?又能干什么?怎么用?
目录 简单了解 官方帮助文档 协处理器出现的原因 协处理器的分类 Observer Endpoint Phoenix 协处理器的使用 加载方式 静态加载 动态加载 协处理器的卸载 协处理器Observ ...
- OpenCV Error: Unspecified Error(The Function is not implemented)
Ubuntu 或者 Debian 系统显示窗口的时候遇到了这个问题 error: (-2:Unspecified error) The function is not implemented. Reb ...
- 技术人的福音!教你如何使用Typora+PicGo实现图片自动上传功能
前言 写技术文章的小伙伴,对于 Typora 肯定不陌生,用来编写 Markdown 特别的方便. 但是,有个问题,就是当我们插入一个图片,并且使之可以在公网访问时,操作流程特别的麻烦. 首先,你需要 ...
- Excel非常规快捷键
Windows+V,调出剪贴板,是常规快捷键,鼠标右键-W-F,新建文件夹,这是非常规快捷键. 掌握Excel大半菜单和三五十快捷键,Excel也算入门了.对Excel快捷键的学习,其一是常规快捷键, ...
- C# 9.0 新特性预览 - 空参数校验
C# 9.0 新特性预览 - 空参数校验 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它 ...
- xml(3)
xml的解析方式:dom解析和sax解析 DOM解析 使用jaxp进行增删改查 1.创建DocumentBuilderFactory工厂 2.通过DocumentBuilderFactory工厂创建D ...
- [zoj3596]DP(BFS)
题意:求n的最小倍数,满足性质P:十进制的每一位上的数有m种(0<m<=10). 思路:直接枚举n的最小倍数,然后检测是否满足性质P,n一大很容易超时,并且无法判断无解的情况.巧妙的做法是 ...
- SDK,JDK,API的区别
[基础概念] 先留一波传送门: SDK:软件开发工具包(外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件时的 ...