首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RGMII接口调试使用VIO读取PHY寄存器

比如RGMII接口,最重要是看在哪里去做时钟和数据偏移。这时,常常需要使用VIO去读取PHY里面对应寄存器,看是否工作在正常RGMII接口时序模式。 测试场景 测试拓扑图如下 ?...经验总结:遇到RGMII接口调试时,最关键是要查看PHY芯片型号,查阅PHY芯片手册,通过MDIO读取PHY芯片寄存器,看RGMII接口上数据和时钟是否偏移2ns,再决定FPGA对应管脚约束是否进行偏移...用VIO方法读取或配置PHY芯片寄存器 在没有CPU情况下,对PHY芯片中寄存器在线读取最好办法使用VIO通过MDIO接口对PHY芯片中寄存器进行读取。...具体测试步骤为:通过VIO配置MDIO管理模块PHY地址、寄存器地址,然后选择读操作读取某一PHY芯片寄存器,结合PHY工作状态,判断该寄存器是否被正确读取。...(mdc_o) ); //------------------------------------------------------------------- 通过VIO和MDIO读取相应寄存器

3.7K21

10.1 调试事件读取寄存器

当读者需要获取到特定进程内寄存器信息时,则需要在上述代码中进行完善,首先需要编写CREATE_PROCESS_DEBUG_EVENT事件,程序被首次加载进入内存时会被触发此事件,在该事件内首先我们通过...lpStartAddress属性获取到当前程序入口地址,并通过SuspendThread暂停程序运行,当被暂停后则我没就可以通过ReadProcessMemory读取当前位置一个字节机器码,目的是保存以便于后期恢复...de.u.CreateProcessInfo.lpStartAddress; // 暂停线程 SuspendThread(de.u.CreateProcessInfo.hThread); // 读取入口地址处字节码...(hThread, &context)得到当前线程上下文,一旦上下文被获取到则读者即可通过context.方式得到当前程序所有寄存器信息,为了让程序正常执行当读取结束后,通过WriteProcessMemory...,该进程中当前寄存器状态基本上都可以被获取到; 本文作者: 王瑞 本文链接: https://www.lyshark.com/post/94ad4ba.html 版权声明: 本博客所有文章除特别声明外

15720
您找到你想要的搜索结果了吗?
是的
没有找到

10.1 调试事件读取寄存器

当读者需要获取到特定进程内寄存器信息时,则需要在上述代码中进行完善,首先需要编写CREATE_PROCESS_DEBUG_EVENT事件,程序被首次加载进入内存时会被触发此事件,在该事件内首先我们通过...lpStartAddress属性获取到当前程序入口地址,并通过SuspendThread暂停程序运行,当被暂停后则我没就可以通过ReadProcessMemory读取当前位置一个字节机器码,目的是保存以便于后期恢复...de.u.CreateProcessInfo.lpStartAddress; // 暂停线程 SuspendThread(de.u.CreateProcessInfo.hThread); // 读取入口地址处字节码...(hThread, &context)得到当前线程上下文,一旦上下文被获取到则读者即可通过context.方式得到当前程序所有寄存器信息,为了让程序正常执行当读取结束后,通过WriteProcessMemory...,该进程中当前寄存器状态基本上都可以被获取到;图片本文作者: 王瑞本文链接: https://www.lyshark.com/post/94ad4ba.html版权声明: 本博客所有文章除特别声明外,

15720

Case Study:读取设备温度

如果让你去读取 Android 设备温度,并且告诉你这些温度都存在 /sys/class/thermal/thermal_zone 开头目录下 temp 文件当中,我们只需要读取平均值即可.../ 1000.0 / count; } else { temperature = 0; } } } 我们定义了一个类,每一次构造这个类对象时候都会读取一个最新温度存入这个对象唯一...在 Java 版本当中,我们先把符合要求文件列出来,接着遍历他们去读取这些文件中唯一一行,实际上就是温度 1000 倍一个整数,读到之后我们再求平均值。...知识点:try ... catch 是表达式,最后一行作为其返回,表达式类型推导取决于两个分支返回公共父类(接口),如果有多个公共父类(接口),返回类型默认推导为 Any,如果表达式接受者类型是前面提到多个公共父类...这样写好处就是,我们能够很清晰了解到温度平均值读取流程,中间发生每一步转换都清晰展现在我们面前。 知识点:善于使用 Kotlin 标准库中 io 相关扩展,能够达到事半功倍效果。

1.1K10

汇编调试方式之:通过串口转义输出寄存器

前两天在调试DragonOSriscv引导代码时候,想在真机上获取寄存器,就找到了这篇帖子,非常有用,就把里面的代码提取出来,在此记录。...因为在汇编里面难以对字符串进行格式化操作,因此可以考虑把寄存器转义一下,然后输出到串口,再使用一个C程序把它转义回来。...方法如下: 编码函数 首先在汇编里面定义这样一个函数: // 要打的输入到a0 __do_show_val: // todo: 为了保护寄存器,这里应当添加压栈操作, // 把函数使用到寄存器都保存一下...,就把要打印寄存器,移动到a0,然后call这个函数即可。.../show Enter:PAAAIFPDAAAAAAAA 000000003F58000F Enter: 所以我们可以看到这个寄存器就是“3F58000F“。

10310

振弦采集模块配置工具VMTool生成寄存器

河北稳控科技振弦采集模块配置工具VMTool生成寄存器图片生成寄存器VMXXX 有很多按位使用寄存器, 使用 VMTool 工具可进行方便设置,当需要知道寄存器实际时,可通过以下两种方法获取...(保持【 自动读取】 复选框为非选中状态)( 1) 振弦模块与 VMTool 工具连接时在界面上进行参数设置;点击【 写入模块参数】 按钮,将当前界面显示参数写入模块;点击【 读取模块参数】 按钮,模块寄存器会自动更新到...MODBUS 显示区表格内。...( 2) 振弦模块未与 VMTool 工具连接时在界面上进行参数设置;双击【参数设置】 区标题“ 参数设置” 文字;当前界面显示参数自动更新到 MODBUS 显示区表格内;图片VMTool 扩展功能双击主界面右侧扩展工具条可实现扩展功能区显示与隐藏切换

40730

Python读取excel文件中带公式实现

在进行excel文件读取时候,我自己设置了部分直接从公式获取单元格 但是用之前读取方法进行读取时候,返回为空 import os import xlrd from xlutils.copy...return rows,cols,path_name 查询之后发现普通读取不能直接读取带单元格。...手动写入公式并保存,再用openpyxl读取,能读取到公式结果。 代码写入公式/,需要手动打开Excel,并保存,再用openpyxl读取,就能读取到公式了。...运行下面代码后再进行读取,就能读取到数据/ from win32com.client import Dispatch def just_open(filename=file_name): xlApp...excel文件中带公式实现文章就介绍到这了,更多相关Python读取excel公式内容请搜索ZaLou.Cn

8.9K30

linux常用读取文件内容指令

linux常用于读取文件内容指令主要有以下七种: cat,tac,nl,more,less,head,tail cat 文件名 –将文件内容显示在屏幕上 cat -n 文件名 –将文件内容显示在屏幕上...,并显示行号 cat -b 文件名 –将文件内容显示在屏幕上,并显示行号,但是不显示空白行行号 tac则是和cat反过来(名字都是反过来) tac 文件名 –将文件内容显示在屏幕上,但是是从最后一行开始往前显示...ten [root@localhost tmp]# tac readfile.txt seven eghit nine ten four five six two three One tac和cat显示顺序是相反...主要是操作行号如何显示 nl -b a 文件名 –显示行号,空行也显示行号 nl -b t 文件名 –显示行号,空行不显示行号(默认) nl -w 数字x 文件名 –行号字段所占用位数...readfile.txt 1 one 2 two three 3 four five six 4 seven eghit nine ten 可以执行翻页操作读取文件内容指令

5.6K10

【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 调试进程 ATTACH 附着目标进程 | 读取目标函数寄存器并存档 )

文章目录 一、调试进程 ATTACH 附着目标进程 二、读取目标函数寄存器并存档 1、主要操作流程 2、ptrace 函数 PTRACE_GETREGS 读取寄存器 一、调试进程 ATTACH 附着目标进程...---- 1、主要操作流程 声明两个结构体 , 分别用于寄存器操作 和 存档 , 存档结构体一定不要写入数据 , 之后恢复寄存器时需要用到 ; /* regs 结构体 用于存储寄存器...original_regs 结构体 用于存储寄存器存档 */ struct pt_regs regs, original_regs; 之后 , 调用 ptrace_getregs 函数 , 读取目标进程寄存器...; /* 获取寄存器 */ if (ptrace_getregs(target_pid, ®s) == -1) goto exit; 最后 , 将寄存器存档 , /* save...original registers 寄存器存档 */ memcpy(&original_regs, ®s, sizeof(regs)); 寄存器读取存档代码示例 : /* regs 结构体

40420
领券