04 2023 档案

摘要:1. 简介 在调试网口驱动的过程中发现phy芯片的驱动框架结构还有点复杂,不仔细研究的话还不好搞懂,另外百度到的资料也不够全面,这篇就总结梳理一下这方面的知识。 我们知道一个 phy 驱动的原理是非常简单的,一般流程如下: 1、用轮询/中断的方式通过 mdio 总线读取 phy 芯片的状态。 2、在 阅读全文
posted @ 2023-04-30 11:17 学习,积累,成长 阅读(7181) 评论(0) 推荐(1) 编辑
摘要:1. 概述 PHY芯片为OSI的最底层-物理层(Physical Layer),通过MII/GMII/RMII/SGMII/XGMII等多种媒体独立接口(介质无关接口)与数据链路层的MAC芯片相连,并通过MDIO接口实现对PHY状态的监控、配置和管理。 PHY与MAC整体的大致连接框架如下(图片来源 阅读全文
posted @ 2023-04-30 11:16 学习,积累,成长 阅读(2912) 评论(0) 推荐(0) 编辑
摘要:PHY 寄存器的地址空间为 5 位,从 0 到 31 最多可以定义 32 个寄存器(随着芯片功能不断增加,很多 PHY 芯片采用分页技术来扩展地址空间以定义更多的寄存器),IEEE802.3 定义了地址为 0-15 这 16 个寄存器的功能,地址16 - 31的寄存器留给芯片制造商自由定义,如下表所 阅读全文
posted @ 2023-04-30 11:15 学习,积累,成长 阅读(6647) 评论(0) 推荐(0) 编辑
摘要:本文主要介绍以太网的MAC(Media Access Control,即媒体访问控制子层协议)和PHY(物理层)之间的MII(Media Independent Interface ,媒体独立接口),以及MII的各种衍生版本——GMII、SGMII、RMII、RGMII等。 简介 从硬件的角度看,以 阅读全文
posted @ 2023-04-30 11:13 学习,积累,成长 阅读(5601) 评论(0) 推荐(1) 编辑
摘要:1 内核错误处理方式 当内核出现致命错误时,只要cpu还能正常运行,那么最重要的就是向用户输出详细的错误信息,以及保存问题出现时的错误现场。以上致命错误可包含以下两种类型: (1)硬件能检测到的错误,如非法内存访问,非法指令等,此时cpu会触发异常,并进入异常处理流程。在异常处理流程中会触发oops 阅读全文
posted @ 2023-04-30 11:12 学习,积累,成长 阅读(1383) 评论(0) 推荐(0) 编辑
摘要:没有完美的代码 没有完美的人,更没有完美的代码。虽然教科书上说deadlock(死锁)多么不好不好,但是在现实生活中,很难把它完全消灭。假设不小心内核出现了deadlock,可能你得干瞪眼。CPU就在那里空等着,空转着,叫天天不应,叫地地不灵。等到海枯石烂,CPU生锈的那一天,它还会那么痴痴地等着那 阅读全文
posted @ 2023-04-30 11:11 学习,积累,成长 阅读(490) 评论(0) 推荐(0) 编辑
摘要:1 概述 linux内核包括进程管理、内存管理、中断管理、设备驱动、同步机制等各种模块,它们共同运行在一个共享的地址空间中,因此在运行中一旦出现问题,彼此之间可能具有千丝万缕的联系。 而且与用户态不同,内核还需要与形形色色的硬件打交道,因此对于某些较为诡异的问题,除了软件以外还可能受到硬件的影响。如 阅读全文
posted @ 2023-04-30 11:10 学习,积累,成长 阅读(696) 评论(0) 推荐(0) 编辑
摘要:crash简介 crash是redhat的工程师开发的,主要用来离线分析linux内核转存文件,它整合了gdb工具,功能非常强大。可以查看堆栈,dmesg日志,内核数据结构,反汇编等等。 crash支持多种工具生成的转存文件格式,如kdump,LKCD,netdump和diskdump,而且还可以分 阅读全文
posted @ 2023-04-30 10:35 学习,积累,成长 阅读(2604) 评论(0) 推荐(0) 编辑
摘要:kdump机制 简介 Kdump是在系统崩溃、死锁或死机时用来转储内存运行参数的一个工具和服务,是一种新的crash dump捕获机制,用来捕获kernel crash(内核崩溃)的时候产生的crash dump。 Kdump 使用两个内核:生产内核和捕获内核。生产内核是一个普通内核,它使用特殊的 阅读全文
posted @ 2023-04-07 22:46 学习,积累,成长 阅读(742) 评论(0) 推荐(0) 编辑
摘要:前言 上一节介绍了kprobe的基本概念,下面我们将使用几个具体的例子,看下kprobe在实际使用中有那些应用场景。 kprobe 内核的samples/kprobe目录下有kprobe相关的例子,我们以这些例子为基础,简单修改下。 查看函数的入参 我们所有的例子都是探测do_sys_open() 阅读全文
posted @ 2023-04-07 22:41 学习,积累,成长 阅读(887) 评论(0) 推荐(0) 编辑
摘要:最近看到一个问题,如何获取当前系统的文件类型? 这个时候就要介绍下/proc/mounts文件:这个文件以/etc/mtab文件的格式给出当前系统所安装的文件系统信息。同时也能反映出任何手工安装从而在/etc/mtab文件中没有包含的文件系统。 我们可以通过cat /proc/mounts查看挂载文 阅读全文
posted @ 2023-04-07 22:37 学习,积累,成长 阅读(66) 评论(0) 推荐(0) 编辑
摘要:简介 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用、何时被调用、执行是否正确以及函数的入参和返回值是什么等等。 比较简单的做法是在内核代码对应的函数中添加日志打印信息,但这种方式往往需要重新编译内核或模块,重新启动设备之类的,操作较为复杂甚至可能会破坏原有的代码执行过 阅读全文
posted @ 2023-04-07 22:33 学习,积累,成长 阅读(315) 评论(0) 推荐(0) 编辑
摘要:简介 perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些数据来对程序性能进行分析。 perf可以统计或采样的event有很多,如果我们要分析cpu,那么我 阅读全文
posted @ 2023-04-07 22:29 学习,积累,成长 阅读(919) 评论(0) 推荐(0) 编辑
摘要:之前使用ftrace的时候需要一系列的配置,使用起来有点繁琐,这里推荐一个ftrace的一个前端工具,它就是trace-cmd trace-cmd安装教程 安装trace-cmd及其依赖库 git clone https://git.kernel.org/pub/scm/libs/libtrace/ 阅读全文
posted @ 2023-04-07 22:27 学习,积累,成长 阅读(1430) 评论(0) 推荐(0) 编辑

  1. 1 少年 梦然
  2. 2 尘埃 林小柯
  3. 3 飞鸟和禅 任然
  4. 4 Dancing With Your Ghost Sasha Sloan
  5. 5 烟火人间 添儿呗
  6. 6 摘仙 伊格赛听、叶里
少年 - 梦然
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.
点击右上角即可分享
微信分享提示