- 博客(65)
- 资源 (10)
- 收藏
- 关注
转载 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
4372
原创 长短经序言(之二)》:智者善谋,不如当时
然作法于理,其弊必乱。若至于乱,将焉救之?但是,制定一种方针、政策运用于治理国家,当这种方针、政策出现弊端时必定会出乱子。如果到出了乱子的时候,那又怎么能救得了呢?是以御世理人,罕闻沿袭。因此,统治天下,管理人民,很少听说有因循守旧、食古不化的方法。三代不同礼,五霸不同法。非其相反,盖以救弊也。夏、商、周三代有不同的礼教,春秋五霸有不同的法规。这并不是有意要反其道而行之,而是为了用不同的方针政策来补漏救偏。是故国容一致,而忠文之道必殊;正因如此,所以国家的风貌虽然一样,但治理的方法却一定不同;圣哲同风.
2021-07-12 10:53:59
913
原创 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
324
转载 python中dict()的高级用法实现
collections中defaultdict的用法一、字典的键映射多个值将下面的列表转换成字典一个字典就是一个键对应一个单值得映射,而上面的列表中有相同的键,如果你想要一个键映射多个值,那么就需要将这多个值放到另外的序列中,比如list或者set里面,像下面这样:你可以很方便的使用 collections 模块中的 defaultdict 来构造这样的字典。defaultdict 的一个特征是它会自动初始化每个 key 刚开始对应的值。当然这个默认的容器不一定是 list, 也可以是集
2021-03-01 09:55:06
391
转载 协议编码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
1735
原创 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
11763
转载 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
5201
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
4551
转载 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
2959
原创 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
2632
转载 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
4649
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
1153
转载 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
2621
转载 外企常用邮件回复
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
52653
原创 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
357
转载 服务器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
41649
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
2241
原创 国网电科院可视化监拍型式检测报告流程
线路监拍设备送检完成已经过了很长时间了,这里顺便记录一下,以便参加的人员可以有一定的参考设备检测分3大部分:1. 设备申请和备案2. 设备功能检测3. 设备机械性能检测准备工作:检验委托书打款 - 检验委托-下发任务A首先 设备的铭牌信息,需要确定设备的名称《xxxx》设备的型号《xx-xx》 设备的公司 《xxx》这几个型号一定要认真检查,确保和检验委托书上的一致。B准备完成后,设备就可以建档了C档案建立完成,设备进入测试场地 功能测试: ...
2020-11-26 10:53:14
1247
2
转载 Linux多线程同步
1. 同步与互斥(1)互斥与同步机制是计算机系统中,用于控制进程对某些特定资源(共享资源)的访问的机制(2)同步是指用于实现控制多个进程按照一定的规则或顺序访问某些系统资源的机制。(3)互斥是指用于实现控制某些系统资源在任意时刻只能允许一个进程访问的机制。互斥是同步机制中的一种特殊情况。(4)同步机制是linux操作系统可以高效稳定运行的重要机制2. Linux系统并发主要来源 在操作系统引入了进程概念,进程成为调度实体后,系统就具备了并发执行多个进程的能力,但也导致了系统中.
2020-11-14 14:33:04
134
原创 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
1338
原创 linux内核驱动休眠和唤醒机制 【sem_wait select 休眠等待实现机制】
阻塞与非阻塞的概念:阻塞IO: 当数据不可读或不可写,进程休眠,直到得到数据可读或可写时才返回。阻塞效率高,实时性比较好。非阻塞IO:不管数据是否可读可写,都马上返回。应用程序是否能实现阻塞或非阻塞是取决于驱动程序。实际驱动中应该把阻塞和非阻塞这种选择权交给应用程序来选择。要实现这个效果 ,就必须让驱动程序知道应用程序的选择。这个信息是通过 file 结构来传递的。struct file 结构中有成员: unsigned int f_flags;存放的就是 open...
2020-11-13 12:01:49
1924
原创 如何解决发送pthread_signal 发送了 0x50000 个signal 但只有 0x4fe79 次被唤醒?
现象:发送pthread_signal 发送了 0x50000 个signal 但只有 0x4fe79 次任务被处理?解决:一般由于线程任务事件过长,所有的线程都是唤醒状态,这样即使发送信号,也会被忽略掉。可以增加线程池的数量...
2020-11-12 18:00:05
246
转载 linux 下 pthread_cond_t 详解
一览本文目的 为何需要条件变量 三个问题 传入前锁mutex 传入后解锁mutex 返回前再次锁mutex pthread_cond_signal的两种写法 尾语本文目的 首先说明,本文重点不在怎么用条件变量。这里我先列出apue中对于pthread_cond_wait函数的这么一段话:“ 调用者把锁住的互斥量传给函数,函数然后自动把调用线程放到等待条件的线程列表上,**对互斥量解锁。**这就关闭了条件检查和线程进入休眠状态等待条件改变这...
2020-11-12 14:05:19
5105
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
290
原创 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
17557
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
563
原创 时间设置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
3256
原创 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
555
原创 国家电网I1接口交互及应用层数据传输规范
I1接口交互及应用层数据传输规范本规范适用于前端监拍装置与市公司监控后台之间的通讯。交互规范 概述 本文档的接口交互规范仅限于I1接口。CMA具体指的是各地市级监控后台。CMD具体指的是杆塔上安装的前端监拍装置...
2020-10-21 21:35:04
5906
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
699
原创 高级I/O之readv和writev函数struct iovec
目录 为什么引出readv()和writev() readv/writev 示例代码 为什么引出readv()和writev()因为使用read()将数据读到不连续的内存、使用write()将不连续的内存发送出去,要经过多次的调用read、write 如果要从文件中读一片连续的数据至进程的不同区域,有两种方案:①使用read()一次将它们读至一个较大的缓冲区中,然后将它们分成若干部分复制到不同的区域; ②调用read()若干次分批将它们读至不同区域。 同样,如果想将程序..
2020-10-14 21:29:28
419
原创 用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
1397
1
原创 vscode user snippets实现c语言自动填充
{ "c file header": { "prefix": "H", //在新建立的页面中输入 H 就会有智能提示,Tab就自动生成好了 "body": [ "#ifndef _$0_H", "#define _$0_H", "#ifdef __cplusplus ///<use C compiler ", "extern \"C\"", .
2020-10-08 16:02:57
890
原创 vscode 加载配置
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/*", "${env:SOURCES}/linux/include/*", "${env:SOURCES}/linux/*" ], "browse": { .
2020-10-07 12:02:27
541
原创 如何修改linux内核,实现操作系统中的ethxx设备名修改
修改linux 中的ethxx 设备名应用场景: 有些公司想将模块换成合宙的模块,但是之前的模块出现的是USBxx 网卡,合宙的是ethxx ,这让就让应用程序改动应用程序,很是麻烦!修改方法:方法一 修改脚本 1.找到文件/etc/udev/rules.d/70-persistent-net.rules 将SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="...
2020-09-27 20:22:28
1012
原创 cmake设置编译器为arm-none-linux-gnueabi-gcc不生效的问题
cmake_minimum_required(VERSION 3.1) # include(cmake/internal.cmake) SET(CMAKE_C_COMPILER "/home/public/local/bin/gcc") SET(CMAKE_CXX_COMPILER "/home/public/local/bin/g++") 方法一使用gccexport CC=/usr/bin/gccexport CXX=/usr/bi...
2020-09-24 17:18:33
1641
1
原创 error: undefined reference to ‘charge_read(unsigned char)‘ | collect2: error: ld returned 1 exit
atfwd_daemon.cpp:264: error: undefined reference to 'charge_read(unsigned char)' | collect2: error: ld returned 1 exit status | make[1]: *** [atfwd_daemon] Error 1 | make[1]: Leaving directory `/home/pytool/apps_proc/poky/build/tmp-glibc/work/mdm9607-oe...
2020-09-18 21:23:15
229
原创 串口 select函数使用
Select函数在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv、recvfrom这样的阻塞程序。可是使用Select就可以完成非阻塞方式工作的程序,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。所谓非阻塞方式non-block,就是.
2020-09-12 15:35:58
2534
原创 使用select接口写高精确延时
使用select接口写高精确延时。select接口int select(int maxfdp, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeval *timeout);原理利用select的timeout参数实现定时器; 设置timeval的值,而将其他参数都置为NULL,当内部时间耗尽后select便会退出。示例void usleep(unsigned long usec){ str.
2020-09-12 15:19:04
650
DAHUA_HTTP_API_FOR_IPC V1.67.pdf
2019-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅