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

linux phy调试方法_php执行shell命令

一、phy执行的枚举状态定义 enum phy_state { PHY_DOWN=0, //down 如关闭网卡,ifconfig eth0 down PHY_STARTING, //1 PHY_READY..., //2 phy设备注册成功 PHY_PENDING, //3 phy芯片挂起 PHY_UP, //4 开启网卡,ifconfig eth0 up PHY_AN, //5 网卡自动协商 PHY_RUNNING...,就强制执行自动协商(读取phy寄存器、并设置通讯速率、半双工或全双工模式、等) PHY_CHANGELINK, //9 当连接时,会换到PHY_RUNNING,当断网时,会切到PHY_NOLINK...up)会执行到这个状态,即phy恢复 }; 二、emac接口驱动phy设备注册 nuc970_ether_probe //探测函数驱动 nuc970_mii_setup mdiobus_register...,同时完成了emac接口phy设备驱动注册,接下来将分析如何使用该phy设备驱动。

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

    PHY芯片快速深度理解

    (主要是对phy芯片进行模式选择,比如工作速率,工作模式)为什么要熟悉RJ45网口    上面说到针对phy芯片我们只要进行模式选择(下文海翎光电的小编会介绍使用mdio接口,通过寄存器控制)那模式选择后...如果不懂物理层和数据链路层可以和海翎光电的小编一起看一网络七层协议。网络七层协议两个模块进行通信    下图是两个主控直接的通信,比如我们的电脑和路由器 ,但是如果没有中间的介质还能连接网络吗?...Linux系统的arm芯片想要网络,可以直接通过mac和网卡芯片连接获取,这时候就需要通过RGMII接口或者MII接口 和 MDIO 连接网卡芯片。...也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。...以上内容是海翎光电的小编看了大量的参考文献和一步步的实践总结的经验,通过实践,把每一层都走一遍,把变压器去掉,把phy去掉,linux系统的网卡函数看了一遍,phy芯片的手册有看了很多。

    48410

    PHY芯片快速深度理解

    (主要是对phy芯片进行模式选择,比如工作速率,工作模式)为什么要熟悉RJ45网口    上面说到针对phy芯片我们只要进行模式选择(下文海翎光电的小编会介绍使用mdio接口,通过寄存器控制)那模式选择后...如果不懂物理层和数据链路层可以和海翎光电的小编一起看一网络七层协议。网络七层协议两个模块进行通信    下图是两个主控直接的通信,比如我们的电脑和路由器 ,但是如果没有中间的介质还能连接网络吗?...Linux系统的arm芯片想要网络,可以直接通过mac和网卡芯片连接获取,这时候就需要通过RGMII接口或者MII接口 和 MDIO 连接网卡芯片。...也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。...以上内容是海翎光电的小编看了大量的参考文献和一步步的实践总结的经验,通过实践,把每一层都走一遍,把变压器去掉,把phy去掉,linux系统的网卡函数看了一遍,phy芯片的手册有看了很多。

    59750

    千兆PHY详解及调试举例

    千兆PHY详解及调试举例 全文约18000字。 从硬件上来说,一般PHY芯片为模数混合电路,负责接收电、光这类模拟信号,经过解调和A/D转换后通过MII接口将信号交给MAC芯片进行处理。...如果是个人使用调试,一定要选用一个常规的PHY,因为应用的比较多,这样应用时留给自己的“坑”比较少,同时调试的时候会有很多应用经验,最后就是一定要选用大厂的芯片,即使后面没有别人的应用经验分享,大厂都会有自己的网页论坛...MII接口这个主要注意和主控的电平匹配及信号完整性即可;PHY 芯片内部含有一些列寄存器,用户可通过这些寄存器来配置 PHY 芯片的工作模式以及获取 PHY 芯片的若干状态信息,如连接速率、双工模式、自协商状态等...这里注意一,如果使用RGMII接口,RGMII接口可以通过内部寄存器设置延迟模式和非延迟模式,具体含义如下: 一般的 PHY 芯片都支持两种 RGMII 发送端口的时序关系。...一般来说,大部分 PHY 芯片默认都是采用正常时序模式,可通过 MDIO 接口设置寄存器,或者芯片特殊功能引脚将其配置为延时模式。

    12.5K44

    FPGA 控制 RGMII 接口 PHY芯片基础

    今天和大侠简单聊一聊FPGA 控制 RGMII 接口 PHY芯片基础,话不多说,上货。 一、前言 网络通信中的PHY芯片接口种类有很多,之前接触过GMII接口的PHY芯片RTL8211EG。...可以在控制器端、PCB走线以及PHY芯片内部添加时钟偏移,本文使用最后一种方式实现。 ? 在第三阶段中添加延迟。...PHY内部会调整TX_CLK,使之能够稳定采样TXD。数据接收方向,由于RX_CLK由PHY提供,PHY芯片直接产生与数据中心对齐的时钟信号。RXD和RX_CLK信号波形如图。 ?...可见,使PHY芯片工作在延迟模式时,FPGA不需要添加额外的逻辑来保证稳定采样。发送方向直接将数据驱动时钟作为TX_CLK信号发送,接收方向直接利用RX_CLK对RXD信号采样。...FPGA与RGMII接口的PHY芯片之间的时序关系按照数据接口同步和数据采样方式属于源同步DDR采样。input delay约束对应接收方向,时序关系是中心对齐。

    2.3K30

    LinuxShell脚本的调试

    这篇博文是对Debugging Shell Scripts in Linux的翻译,希望能帮助到在Linux写Shell脚本的童鞋。...大多数编程语言都有可用的调试工具,调试工具可用在执行程序或脚本的时候让你检查其内部是如何进行的。...对于Shell脚本,我们没有任何可用的调试工具,唯一有的是通过命令行的标识(-n,-v和-x)来辅助我们调试脚本。...Displaying the Scripts Commands ( -v option ) 所谓的-v标识使得Shell可以在详细输出模式(verbose mode)运行。...通常情况,单独的-x命令可以帮助我追溯脚本的问题。 大多数时候,-x标识都会提供关于脚本的特别有用的信息,但是它也会导致大量的输出。下面的例子说明了如何在实践中使用。

    28210

    LinuxGDB调试指令总结

    摘要 之前写C++的一些程序都是在windows,直接使用VS2017的傻瓜式编译器,最近尝试摸索在linux进行C++程序的编译,有了一些成果!特此总结!...代码调试器:避免不了,程序会出现bug,但是使用命令行编译出错后是没有调试信息的(g++编译时),因此我们需要使用gdb对程序进行调试。 ?...启动gdb后,可以进入到交互模式,通过以下命令对程序完成调试工作!...step (简写s):单步调试如果有函数调用,则进入函数;与命令n不同,n是不进入调用的函数的 until(简写u):当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体。...如:display a watch 表达式:设置一个监视点,一旦被监视的“表达式”的值改变,gdb将强行终止正在被调试的程序。

    4.5K20

    Linuxkernel调试环境搭建

    方法1 方法2 GDB调试 查看函数地址 加载第三方ko 调试ko qemu pci设备相关 查看PCI设备信息 前言 环境搭建在虚拟机ubuntu16.04进行(vm配置开启cpu虚拟化) 一般内核调试需要的东西就是内核镜像和磁盘镜像...linux-4.15.tar.gz 解压进入 tar -xzvf linux-4.15.tar.gz cd linux-4.15 设置编译选项 make menuconfig 勾选以下项目: Kernel...有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。.../new_rootfs.img 方法2 借助base64编码从shell中直接写入(适用于写exp等) GDB调试 一般只需要设置好架构然后remote一就行,如果是非x86的架构可能要用gdb-multiarch...cat /proc/kallsyms可以显示出内核中所有的函数符号和对应地址,在gdb中下断即可 例如可以断在这个函数:cat /proc/kallsyms | grep get_user_pages,断后尝试执行

    2.4K20

    Linux系统gdb调试(一)

    这段时间逛了一招聘网站上,对于嵌入式要求里面有要求会gdb调试,而且再加上昨天在交流群里面,刚好有网友问gdb怎么调试,这让我学gdb调试的欲望越来越强烈,这不,应网友的要求,今天就来给大家分享自己总结的实战调试方法...Linux 的GDB(GNU Debugger)是-一个用来调试C、C++程序的功能强大的调试器,它能够在程序运行的过程中观察程序的内部结构和内存的使用情况。...3、gdb命令+实战演示: gdb的使用非常简单,只要在Linux的命令提示符输入gdb命令,系统便会启动gdb。...下图是在Linux启动gdb的简单演示,具体会在下面的实战来演示: root@ubuntu-virtual-machine:/home/ubuntu# gdb GNU gdb (Ubuntu 8.1...有时在精化阶段调试程序是必要的。在这些在某些情况,使用start命令将停止程序的执行太晚了,因为程序已经完成了精化阶段。

    4K10

    Linux使用gdb调试core文件

    使用gdb调试core文件,可以帮助我们快速定位程序出现段错误的位置。当然,可执行程序编译时应加上-g编译选项,生成调试信息。...如今 ,半导体工业澎勃发展,已经没有人用 core memory 了,不过,在许多情况,人们还是把记忆体叫作 core 。...在调试此core文 件的时候,gdb会提示错误。比如:ulimit -c 1024。 (3)使用ulimit -c unlimited,则表示core文件的大小不受限制。...一般情况,无需修改,按照默认的方式即可。 4.gdb调试core文件的步骤 使用gdb调试core文件来查找程序中出现段错误的位置时,要注意的是可执行程序在编译的时候需要加上-g编译命令选项。...5.其它查找段错误位置的方法 可以使用gdb进行单步调试,来查找段错误出错的位置。gdb的用例具体见: Linuxgdb用法简单介绍。

    39.3K42

    linux的程序调试方法汇总

    那么调试工具就显得尤为重要,linux作为笔者重要的开发平台,在linux中讨论调试工具主要是为那些入门者提供一些帮助。调试工具能让我们能够监测、控制和纠正正在运行的程序。...在Linux的用户空间调试工具主要有系统工具和专门调试工具:'print' 打印语句,这是新手最常用的,也是最不提倡使用的;查询 (/proc, /sys 等)系统的虚拟文件查看,这个方法有局限性;跟踪...若需要调试的程序比较大,这将是一个耗时费力的方法。 2. 查询 在某些情况,我们需要弄清楚在一个运行在内核中的进程的状态和内存映射。为了获得这些信息,我们不需要在内核中插入任何代码。...例如,如果'x'是调试程序内的变量,'print x'会打印x的值。 检查源码: 源码可以在GDB中打印。默认情况,'list'命令会打印10行代码。...在GDB中获得帮助 总结 在这篇文章中,我们已经看到不同类型的Linux用户空间的调试工具。

    3.9K21

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

    图3 发送时钟不进行偏移2ns 问题原因定位 推测在不同的PHY芯片的工作模式,对时钟的要求不一样。...图4 RTL8211E的发送时钟 查找目前调试板子上所使用MARVELL的88e1512 PHY芯片芯片手册,发现RGMII接口有4种不同的时钟工作模式。 ?...经验总结:遇到RGMII接口调试时,最关键的是要查看PHY芯片的型号,查阅PHY芯片手册,通过MDIO读取PHY芯片寄存器的值,看RGMII接口上数据和时钟是否偏移2ns,再决定FPGA对应管脚约束是否进行偏移...用VIO方法读取或配置PHY芯片的寄存器 在没有CPU的情况,对PHY芯片中寄存器在线读取的最好办法使用VIO通过MDIO接口对PHY芯片中的寄存器进行读取。...具体方法可以查看本公众号之前文章: 一种动态调整RGMII接口时序的方法 Vivado进行FPGA调试“犯罪现场”,在仿真环境中重现方法 使用VIVADO中VIO模拟CPU接口进行在线寄存器读写调试

    4.3K21

    Linux搭建Swift开发调试环境

    Linux搭建Swift开发调试环境 文本介绍如何在Linux配置一个的Swift开发环境(可用于生产),文中所记录的各个配置环节不仅适用于Linux,也同样适用于在macOS配置Visual...但转过头来思考,虽然Publish完美地支持Linux,但开发者能否像在mac上一样方便的进行开发调试呢?...之前使用Vapor的时候,曾通过Docker在Ubuntu上安装过Swift,不过代码是在mac上调试的。我也十分好奇,在2021年Swift到底在Linux的开发环境如何?...本文的目标是在Linux上搭建一个可供生产标准的Swift开发调试环境。使用者将获得一个支持代码高亮、自动补全、定义跳转、断点调试、代码美化、代码静态扫描、跨操作系统平台配置的综合开发体验。...swift_in_linux_lsp_demo LLDB 什么是LLDB LLDB调试器是LLVM项目的调试器组件。

    10K20

    高通SDX55平台:R8168 PHY驱动适配

    当SDX55被应用于工业路由器或CPE时,基本都是采取以下连接方案:客户Linux设备通过usb或pcie连接SDX55,使用AT或QMI方式进行拨号,Linux上获取公网ip进行上网,来自Linux的数据流仅可通过...整体框图和数据流方案如下: (1)modem通过usb与host设备的主控进行连接,用于指令控制(也可作为host的wan口,用于数据传输); (2)增加一个支持PCIE协议的PHY 芯片作为...pcie网卡,如RTL8111、r8125等低成本2.5G phy芯片,将phy 通过pcie与modem连接,使用pcie协议进行数据传输; (3)phy与host主控通过MDIO连接,作为host...针对以上场景,我们基于高通SDX55平台,调试RTL8111H PHY芯片。 2. R8168驱动调试 调试前提是基于硬件涉及连接完成,可保证pcie主线上可正确识别到PHY芯片。...驱动调试完成。

    2.5K20

    趣谈网络协议栈,以太网基础MAC和PHY

    媒体独立表明在不对MAC硬件重新设计或替换的情况,任何类型的PHY设备都可以正常工作.它包括一个数据接口,以及一个MAC和PHY之间的管理接口。...所以MII的特性如下:支持10Mb/s和100Mb/s的数据速率100M工作模式,参考时钟是25MHz;10M工作模式,信号参考时钟是2.5MHz支持全双工、半双工两种工作模式发送和接收数据时采用,...因此 Linux 内核有通用 PHY 驱动,按道理来讲,不管你使用的是哪个厂家的 PHY 芯片,都可以使用 Linux 的这个通用 PHY 驱动来验证网络工作是否正常。...事实上在实际开发中可能会遇到一些其他的问题导致 Linux 内核的通用 PHY 驱动工作不正常,这个时候就需要驱动开发人员去调试了。...这些多出来的几次器可以实现厂商特有的一些技术,因此在Linux内核里面可以看到很多具体的PHY芯片驱动源码。四,总结MAC 就是以太网控制器,属于OSI的数字链路层。

    1.9K01
    领券