- 博客(73)
- 资源 (10)
- 收藏
- 关注
原创 MDIO:读数据下冲不满足spec
PHY_C827_MDC / PHY_C827_MDIO Measured at U_CPU.AD53,AE52MDIO:读数据下冲不满足spec(Spec要求:Min -0.5V)测试点:PHY_C827_MDC / PHY_C827_MDIO Measured at U_CPU.AD53,AE52测试值:-677mV波形图: change R3215 0ohm to 33ohm满足spec(Spec要求:Min -0.5V)测试点:PHY_C827_MDC / PHY_C827_MDIO Measur
2022-07-13 18:30:13
603
转载 SFF-8436 QSFP + 4X 10 Gb / s可插拔收发器规范 Rev 4.9文档翻译
之前利用闲暇时间依次翻译了SFP MSA、SFF-8024、SFF-8472的相关文档,原由是在交换机端口开发中有参考到相关的信息,虽然用到的字段不多,但是本着学习的心态,对其内容作了大部分的翻译记录。而该三篇文档大部分只涉及了SFP/SFP+相关的技术,适用于10G以及以下速率的光模块收发机。对于10G以上(如40G、100G等)其并无法实现,因此今天对这几天翻译的SFF-8436 Rev4.9(QSFP+ 4x10)【40G】的文档进行整理。之后或许有时间了会翻译SFF-8636 QSFP28【100G
2021-08-18 16:15:18
3881
原创 7.PCIE配置空间读写软件
软件-7.PCIE配置空间读写软件-7.PCIE配置空间读写软件-7.PCIE配置空间读写 软件读写配置空间 驱动层接口 原理分析 驱动层代码接口 驱动层接口与原理 相关参考 基础知识 raw_pci_ops 得初始化 raw_pci_ext_ops 得原理-ECAM 如何获取ECAM得基地址? 软件读写配置空间驱动层接口inline int pci_read_config_byte(
2021-08-18 10:55:54
1883
原创 1588 1-Step 和 2-Step PTP 之间有什么区别?
1-Step 和 2-Step PTP 之间有什么区别,您应该如何决定?让我们从 PTP 的快速概览开始。PTP(精确时间协议)来自 IEEE 1588v2 标准。它的工作原理是从主时钟通过网络向所有从时钟或 IED 发送重复的时间同步消息(见上图)。每个从设备还发送一个延迟请求并从与其直接连接的设备接收响应,因此它知道来自这些设备的延迟,包括它自己的内部处理时间和网络延迟。然后它接收任何传入的 PTP 同步消息,对其进行调整以补偿此已知延迟,并将其转发到链中的下一个设备,...
2021-07-29 13:29:55
8761
原创 长短经序言(之二)》:智者善谋,不如当时
然作法于理,其弊必乱。若至于乱,将焉救之?但是,制定一种方针、政策运用于治理国家,当这种方针、政策出现弊端时必定会出乱子。如果到出了乱子的时候,那又怎么能救得了呢?是以御世理人,罕闻沿袭。因此,统治天下,管理人民,很少听说有因循守旧、食古不化的方法。三代不同礼,五霸不同法。非其相反,盖以救弊也。夏、商、周三代有不同的礼教,春秋五霸有不同的法规。这并不是有意要反其道而行之,而是为了用不同的方针政策来补漏救偏。是故国容一致,而忠文之道必殊;正因如此,所以国家的风貌虽然一样,但治理的方法却一定不同;圣哲同风.
2021-07-12 10:53:59
833
原创 200G QSFP56 8通道53Gb/s 光模块知识全解
400GE QSFP-DD SR8,850nm,100m,MMF,MPO200GE QSFP-DD SR8 100m200G QSFP56光模块和200G QSFP-DD光模块是200G光互连的两种主流解决方案,QSFP56运用了主流数字信号处理器(DSP)来帮助云数据中心应对严峻挑战,以灵活扩展的规模和低成本实现更高效的光互连。本文将主要为您介绍光模块200G QSFP56封装技术以及QSFP56封装与QSFP28、QSFP+封装的区别。图1:光模块封装类型200G QSFP56.
2021-07-12 10:36:23
2578
原创 stty控制终端
1.stty size 打印终端行数和列数2,在命令行下禁止输出小写stty olcuc #开启stty -olcuc#恢复3,打印出终端的行数和列数stty size4,改变ctrl+D的方法:stty eof "string"系统默认是ctrl+D来表示文件的结束,而通过这种方法,可以改变!5,屏蔽显示 解决输入内容不显示的问题stty -echo #禁止回显stty echo #打开回显测试方法:stty -echo;read;stty echo;read6,...
2021-04-09 17:31:48
252
转载 python中dict()的高级用法实现
collections中defaultdict的用法一、字典的键映射多个值将下面的列表转换成字典一个字典就是一个键对应一个单值得映射,而上面的列表中有相同的键,如果你想要一个键映射多个值,那么就需要将这多个值放到另外的序列中,比如list或者set里面,像下面这样:你可以很方便的使用 collections 模块中的 defaultdict 来构造这样的字典。defaultdict 的一个特征是它会自动初始化每个 key 刚开始对应的值。当然这个默认的容器不一定是 list, 也可以是集
2021-03-01 09:55:06
361
转载 协议编码TLV
1.协议消息体1.消息体TLV编码协议消息体采用TLV格式编码,全部使用小字节序。TLV是一种变长编码,其中T表示Tag编码,L表示数据的长度Length,V表示数据的值Value,TLV可以嵌套表示,Value本身也可以是TLV编码。 Tag字段由固定2字节(Byte)组成,具体含义如下: Tag类型(Byte1高4位) TLV编码(Byte1低4位) Tag编码(Byte2) 0:原始类型 1:自定义类..
2021-02-23 09:15:08
1588
原创 lspci命令详解
lspci命令详解参考https://blog.youkuaiyun.com/huangxuesi/article/details/699596791. 基本概念存储器域: 包含CPU域 和 DRAM域, CPU域地址空间:CPU所能直接访问的地址空间集合, CPU域边界:CPU所能控制的数据完整性边界,边界由:memory 指令的作用范围确定。 DRAM域:dram控制器所能访问的地址空间集合 PCI总线域:由pci设备所能直接访问的地址空间组成 处理器域:能够访问的地址空间集合,由存储器域以及..
2021-02-04 18:50:23
11290
原创 如何远程进入bios
## 如何远程进入bios1. 进入sonic2. 通过sonic 进入 bmc3. dhcpclient eth0 获取bmc 的IP4. 通过获取的ip地址 ssh 远程连接 bcm5. 通过bmc 重启sonic wedge_power.sh cycle6. 通过bmc 进入 sol.sh7. delete 按键进入bios
2021-01-29 13:44:16
3858
1
原创 服务器之FRU SEEPROM
服务器之FRUEEPROM是server主板上的电可擦除可编程只读存储器,里面存储了FRU data, 包括制造商,产品型号,产品序列号,资产序列号等信息,为厂商和客户提供资产信息管理。所以正确的FRU格式以及字段定义对客户进行资产管理和后端运维显得尤为重要[root@Resource ~]# ipmitool fruFRU Device Description : Builtin FRU Device (ID 0) # Board Mfg Date : T..
2021-01-25 13:45:22
4745
3
转载 PCIe驱动
PCIE设备驱动与Platform设备驱动的对比学习1、驱动模块结构1) PCIE设备注册:module_pci_driver(xxxx_driver);展开之后对应于module_init(xxxx_driver)---->pci_register_drive(xxxx_driver)module_exit(xxxx_driver)---->pci_unregister_drive(xxxx_driver)因此也可以采用自己编写module_init(),module_
2021-01-22 18:56:37
4938
1
转载 【linux驱动】pcie驱动入门
pcie总线向下兼容pci总线,文中所述pci默认等于pciepcie拓扑结构pcie拓扑主要由总线、桥和设备卡组成,桥将父总线与子总线连接在一起形成树型结构。桥主要分为一下三类:Host/PCI桥:用于连接CPU与PCI根总线,在PC中,内存控制器也通常被集成到Host/PCI桥设备芯片,Host/PCI桥通常被称 为“北桥芯片组”。 PCI/ISA桥:用于连接旧的ISA总线。PCI/ISA桥也被称为“南桥芯片组”。 PCI-to-PCI桥:用于连接PCI主总线与次总线。 pci总线编
2021-01-22 16:51:28
4428
转载 Network Switching Software Platform Guide BCM-SDK
学习笔记 1 Broadcom SDK简介 1.1 broadcom libraries 1.2 broadcom applications 2 源代码目录介绍 3 System Abstraction Layer API 1 Broadcom SDK简介broadcom sdk是为了给broadcom交换设备StrataSwitch and StrataXGS系列开发目标系统而设计的套件。提供的源代码可以被任何平台编译执行。源代码以模块化的形式组成,客户可.
2021-01-22 14:51:35
2254
原创 IPMI中SOL的使用
http://blog.chinaunix.net/uid-1838361-id-3134038.htmlSOL需要IPMI2.0支持,使用lanplus进行远程连接。7.1Serial Over LAN (SOL) 功能非常有用。SOL 通过 IPMI 会话重定向本地串行接口,允许远程访问 Windows 的紧急事件管理控制台 (EMS) 特殊管理控制台 (SAC),或访问 LINUX 串行控制台。ipmitool sol set enabled true 1 ipmitool sol se.
2021-01-20 13:25:43
4303
原创 eMMC小总结
通俗的来说,eMMC=NAND闪存+闪存控制芯片+标准接口封装。本文大致做下边几个小结:(1)MMC与Host之间的连接连接由下图可见(2)eMMC和NAND Flash与Host的连接比较NAND Flash直接接入HostNAND Flash直接接入Host时,Host端通常需要有NAND Flash Translation Layer,即NFTL或者NAND Flash文件系统来做坏块管理、ECC等的功能。由eMMC接入HosteMMC则在其内...
2021-01-19 11:22:44
2337
原创 光模块SFP基础接口标准入门
说到光模块,相信大家一定不会觉得陌生。随着光通信的高速发展,现在我们工作和生活中很多场景都已经实现了“光进铜退”。也就是说,以同轴电缆、网线为代表的金属介质通信,逐渐被光纤介质所取代。而光模块,就是光纤通信系统的核心器件之一。 光模块的组成结构 光模块,英文名叫Optical Module。Optical,意思是“视力的,视觉的,光学的”。准确来说,光模块是多种模块类别的统称,具体包括:光接收模块,光发送模块,光收发一体模块和光转发模块等。现今我们通常所说的光...
2021-01-18 10:06:29
18811
1
转载 SFP,SFP +,XFP,SFP28、QSFP / QSFP +,CFP、QSFP28之间有什么区别?
SFP,SFP +,XFP,SFP28、QSFP / QSFP +,CFP、QSFP28之间有什么区别?光模块在数据通信行业中起着关键作用,从业人员肯定都对 SFP、SFP +、XFP 都有眼熟。但它们的区别具体的是什么?各自有那些特点?下面,我们将谈谈 SFP、SFP +、SFP28、XFP、QSFP/QSFP+、CFP和QSFP28之间的差异。SFPSFP small form-factor pluggable,是紧凑型小型可热插拔的收发模块,用于电信和数据通信...
2021-01-18 09:52:46
4108
1
转载 Python3包导入规则
如需转载请注明出处。win10+Python 3.6.3一旦使用多层文件架构就很容易遇上import的坑!哈哈。一、理解一些基本概念1、模块、包**模块 module:**一般情况下,是一个以.py为后缀的文件。其他可作为module的文件类型还有".pyo"、".pyc"、".pyd"、".so"、".dll",但Python初学者几乎用不到。module 可看作一个工具类,可共用或者隐藏代码细节,将相关代码放置在一个module以便让代码更好用、易懂,让coder重点放在高层逻辑上。m
2021-01-14 16:21:05
1055
转载 ONIE-sonic内核调试
产品信息系统:SONiC系统(linux 4.9.110),ONIE(4.1.38) 项目背景:此项目是一个网络流量设备,作为流量转发器,将大批量的流量收集,筛选,过滤,重定向至新的端口,然后转发至后端设备,进行流量操作。 硬件:COM-E CPU主板,交换芯片,多种IIC设备(pca9548,pca9535等),NVME磁盘,USB转IIC总线芯片等;32个100G网口,2个USB口,一个串口,1个以太网口。调试过程第一阶段—检查硬件检查电源是否正常,插上电源,判定能够设备是否上电,若未
2021-01-13 19:42:06
2320
转载 外企常用邮件回复
1. 祝福/问候BRBest RegardsI hope you enjoyed your weekendHope you had a wonderful vacationFirst and most important of all, I wish every one of you a safe and healthy new fiscal year.2. 结尾用语Your timely response would be highly appreciated!I will be r...
2021-01-12 15:23:56
47188
原创 No DSR -- login is not available with DSR low`
Added support for console port login without DSR. This avoids the error message 'No DSR -- login is not available with DSR low' when connecting from a serial device that does not support DSR or does not assert DSR high. As in pr...
2021-01-11 09:40:35
283
转载 服务器BMC与IPMI基础知识
初识BMC与IPMI什么是BMC?BMC全名Baseboard management controller, 是一种嵌入式管理微控制器。BMC是实现IPMI通用接口规范的核心控制器。在支持IPMI v1.5典型接口时,配置上需要有32K的RAM内存和128K的flash memory。当然,配置越高它的性能越强大。那么BMC在系统中是怎么起到其作用的呢?下面是2001年Intel发布的IPMI v1.5的架构图:从图中我们可以看到BMC对外通过System Interface连接系统总线,对
2021-01-06 09:18:52
35072
3
原创 HBA (HOST BUS ADAPTER)(主机总线适配器)
HBA 主机总线适配器(Host Bus Adapter,HBA)是一个在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板和/或集成电路适配器。因为HBA减轻了主处理器在数据存储和检索任务的负担,它能够提高服务器的性能。一个HBA和与之相连的磁盘子系统有时一起被称作一个磁盘通道。 我们知道网卡是用于连接计算机和计算机网络。网卡一般插在计算机大总线扩展槽上,卡上有连接计算机网络的接口。网卡物理上连接计算机内部总线,例如PCI,PCI-X,PCI-E,SUN的Sbus总线等,和计算机网
2021-01-05 10:16:45
2048
原创 国网电科院可视化监拍型式检测报告流程
线路监拍设备送检完成已经过了很长时间了,这里顺便记录一下,以便参加的人员可以有一定的参考设备检测分3大部分:1. 设备申请和备案2. 设备功能检测3. 设备机械性能检测准备工作:检验委托书打款 - 检验委托-下发任务A首先 设备的铭牌信息,需要确定设备的名称《xxxx》设备的型号《xx-xx》 设备的公司 《xxx》这几个型号一定要认真检查,确保和检验委托书上的一致。B准备完成后,设备就可以建档了C档案建立完成,设备进入测试场地 功能测试: ...
2020-11-26 10:53:14
1081
2
转载 Linux多线程同步
1. 同步与互斥(1)互斥与同步机制是计算机系统中,用于控制进程对某些特定资源(共享资源)的访问的机制(2)同步是指用于实现控制多个进程按照一定的规则或顺序访问某些系统资源的机制。(3)互斥是指用于实现控制某些系统资源在任意时刻只能允许一个进程访问的机制。互斥是同步机制中的一种特殊情况。(4)同步机制是linux操作系统可以高效稳定运行的重要机制2. Linux系统并发主要来源 在操作系统引入了进程概念,进程成为调度实体后,系统就具备了并发执行多个进程的能力,但也导致了系统中.
2020-11-14 14:33:04
104
原创 linux 信号量sem_t和pthread_cond_t 的区别
尽量使用 sem 代替 pthread_cond因为 pthread_cond 会有丢失信号的问题,sem 是原子操作,所以不会丢失信号Mac 下对 sem_init()/sem_destory() 不支持:注意:MacOS 不支持sem_init()和sem_destroy();这个例子若是想在 mac 下编译通过,需要自行修改替换相关的函数。sem_init(&sem, 0, 1)改成sem_open("sem", O_CREAT|O_EXCL, S_...
2020-11-14 11:35:55
1278
原创 linux内核驱动休眠和唤醒机制 【sem_wait select 休眠等待实现机制】
阻塞与非阻塞的概念:阻塞IO: 当数据不可读或不可写,进程休眠,直到得到数据可读或可写时才返回。阻塞效率高,实时性比较好。非阻塞IO:不管数据是否可读可写,都马上返回。应用程序是否能实现阻塞或非阻塞是取决于驱动程序。实际驱动中应该把阻塞和非阻塞这种选择权交给应用程序来选择。要实现这个效果 ,就必须让驱动程序知道应用程序的选择。这个信息是通过 file 结构来传递的。struct file 结构中有成员: unsigned int f_flags;存放的就是 open...
2020-11-13 12:01:49
1799
原创 如何解决发送pthread_signal 发送了 0x50000 个signal 但只有 0x4fe79 次被唤醒?
现象:发送pthread_signal 发送了 0x50000 个signal 但只有 0x4fe79 次任务被处理?解决:一般由于线程任务事件过长,所有的线程都是唤醒状态,这样即使发送信号,也会被忽略掉。可以增加线程池的数量...
2020-11-12 18:00:05
223
转载 linux 下 pthread_cond_t 详解
一览本文目的 为何需要条件变量 三个问题 传入前锁mutex 传入后解锁mutex 返回前再次锁mutex pthread_cond_signal的两种写法 尾语本文目的 首先说明,本文重点不在怎么用条件变量。这里我先列出apue中对于pthread_cond_wait函数的这么一段话:“ 调用者把锁住的互斥量传给函数,函数然后自动把调用线程放到等待条件的线程列表上,**对互斥量解锁。**这就关闭了条件检查和线程进入休眠状态等待条件改变这...
2020-11-12 14:05:19
4999
2
原创 gevent 无法新建连接,关闭连接不停输出connection close
现象:服务端不停的打印错误日志,客户端无法新建连接故障排查:在 void ev_on_read(struct ev_loop* loop, struct ev_io* watcher, int revents) if (read == 0) { printf("client disconnected.\n"); // close socket close(watcher->fd); ev
2020-11-11 15:50:26
252
原创 vscode 修改C/C++的代码格式化风格
默认的样式真的太丑了,预定义样式Ctrl+Shift+P输入user settings,进入Settings界面;或者菜单栏File - Preferences - Settings。搜索clang。Clang_format_fallback Style:预定义样式。在没有找到.clang-format文件情况下使用这里定义的样式。可以设置的值为:Visual Studio、LLVM、Google、Chromium、Mozilla、WebKit、none,或者{key: value,…}这样的键值对
2020-11-06 10:15:20
16825
2
转载 【Linux编程-数据结构】rbtree
Linux kernel rbtree因编写内核模块时需要用到rbtree来记录异步request,研究分析了一下kernel rbtree的使用方法,记录于此。本文主要参考了内核文档rbtree.txtrbtree简介Red-black trees(rbtree)是一种自平衡的二叉搜索树,用于存储可分类的key/value数据对。它不同于radix trees或者hash tables。radix trees用于有效存储稀疏数组(使用长整型索引进行节点的插入、查询和删除),其索引值太大无法用
2020-10-27 15:21:42
495
原创 时间设置settimeofday
void settimeofday(){ struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz); // 根据时间戳设置时间 tv.tv_sec =time(NULL); printf("tv_sec:%d,tv_usec:%d.\n",tv.tv_sec,tv.tv_usec); printf("tz_minuteswest:%d,tz_dsttime:%d.\n",tz.tz_m...
2020-10-24 09:35:15
3097
原创 C语言中宏定义隐藏结构体指针的小技巧
1. 通过宏定义 隐藏指针传递定义:#define vector_push_back(v, e) _vector_push_back(v, (void *)&e, sizeof(e))void _vector_push_back(struct vector *v, void *e, size_t type_size)使用:struct tmp_box tb;tb.c = 'a';vector_push_back(c, tb);可以看到在使用的时候直接传递结构体对...
2020-10-23 10:28:53
507
原创 国家电网I1接口交互及应用层数据传输规范
I1接口交互及应用层数据传输规范本规范适用于前端监拍装置与市公司监控后台之间的通讯。交互规范 概述 本文档的接口交互规范仅限于I1接口。CMA具体指的是各地市级监控后台。CMD具体指的是杆塔上安装的前端监拍装置...
2020-10-21 21:35:04
5524
1
原创 Linux编程之recvmsg和sendmsg函数
Linux编程之recvmsg和sendmsg函数recvmsg 和 sendmsg 函数#include <sys/types.h>#include <sys/socket.h>ssize_t send(int sockfd, const void *buf, size_t len, int flags);ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
2020-10-15 10:36:06
618
原创 高级I/O之readv和writev函数struct iovec
目录 为什么引出readv()和writev() readv/writev 示例代码 为什么引出readv()和writev()因为使用read()将数据读到不连续的内存、使用write()将不连续的内存发送出去,要经过多次的调用read、write 如果要从文件中读一片连续的数据至进程的不同区域,有两种方案:①使用read()一次将它们读至一个较大的缓冲区中,然后将它们分成若干部分复制到不同的区域; ②调用read()若干次分批将它们读至不同区域。 同样,如果想将程序..
2020-10-14 21:29:28
366
原创 用greadlink替代readlink 解决MacOS下readlink: illegal option -- f
解决MacOS下readlink: illegal option -- fMac下的readlink没有-f参数,诸如screenfetch又会去调用readlink -f,于是每次都会出现:readlink: illegal option -- fusage: readlink [-n] [file ...]很是烦人,解决方案如下:1.安装coreutils:brew install coreutils2.设置环境变量,编辑~/.bash_profile,添加:expor
2020-10-08 18:52:27
1288
1
DAHUA_HTTP_API_FOR_IPC V1.67.pdf
2019-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人