自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(359)
  • 资源 (1)
  • 收藏
  • 关注

原创 获取当前进程或线程PID方法

pthread_self返回的是同一个进程中各个线程之间的标识号,对于这个进程内是唯一的,而不同进程中,每个线程返回的pthread_self可能是一样的。而gettid是整个系统内各个线程间的标识符,由于linux采用轻量级进程实现的,它其实返回是pid号。pthread_t由pthread线程库分配和维护,仅能保证同一个进程中是唯一的。但POSIX标准并没有规定pthread_t的具体格式,不同系统中pthread_t的实现可能是不一样的。sys_getpid,进程ID。TID( LWP),线程ID。

2023-07-03 17:14:24 766

原创 修改buildroot中某个软件包的版本

用于hash校验,比对从网络传输到本地的文件是否正确,也可以直接删除ethtool.hash文件,那么编译时会跳过hash校验步骤。以ethtool为例,在buildroot-2020.02.8中,ethtool默认版本为5.4,现将其修改为5.2。修改后,直接make。

2023-07-03 17:12:13 1065 1

原创 usb configfs使能gadget流程

3. composite_bind用于legacy。

2023-07-03 17:10:24 379

原创 存储介质block和sector的区别

A number of bytes, basic data transfer unit (SD中最小的读写单位,一般为512B)。SD卡协议中 与 HardDisk(文件系统)的block和sector不一个意思。可以看到sector大小为512B,总共30031872个sector。Block是文件系统上的概念,一般文件系统block大小为4K。Sector是硬盘/U盘最小读写单元,一般为512字节。这里的block,即U盘最小读写单位,512字节。Linux中,block和sector的区别。

2023-07-03 17:09:34 705

原创 linux应用层通过socket访问PHY寄存器

phytool通过socket访问PHY寄存器。1. kernel实现。

2023-07-03 16:59:46 499

原创 内核模块间的符号调用

模块B编译好后会生成符号表文件Module.symvers,里面有导出的符号名,把该文件拷贝到需要调用的模块A的源代码下,然后重新编译模块A。EXPORT_SYMBOL_GPL():和EXPORT_SYMBOL类似,但范围只适合GPL许可的模块进行调用。EXPORT_SYMBOL():括号中定义的函数对全部内核代码公开。模块A需要调用模块B中定义的函数或变量。先extern声明需要调用的函数或变量。加载模块顺序必须先B后A,卸载相反。两个内核模块:模块A和模块B。1. 模块B导出函数或变量。

2023-06-09 18:51:13 747

原创 重新编译buildroot中的某个软件包

而根据我们的需要是要修改然后重新编译,安装即可。所以删除.stamp_built和.stamp_target_installed就可以。buildroot中的软件包一但编译完成后,后面重新make,不会再编译该软件包,即使你修改了该软件包的代码。每个工具包里都有.stamp_xxx文件,这几个文件主要控制这个工具包的下载,解压,打包,配置,编译,安装。在main函数中添加:printf("test buildroot rebuild\n");以buildroot-2020.02.8中ethtool为例。

2023-06-09 18:45:31 905

原创 pcie外设汇总

pcie nvme固态硬盘。pcie采集卡(视频采集)pcie usb扩展卡。pcie转type-c。

2023-06-09 18:38:53 328

原创 USB外设汇总

USB转M.2接口(NVME或SATA)USB采集卡(通常指视频采集卡)USB转HDMI,VGA,DP。USB 无线wifi。USB SD/TF卡。

2023-06-09 18:35:50 150

原创 USB HAPS验证

3)调试high-speed时,可以考虑使用USB以太网卡,网络协议我比较熟悉。另外也可以将demo板USB2.0接口虚拟成串口设备接到HAPS,这样调试也很方便。2)U盘测试如果出现问题,由于存在SCSI协议,比较复杂,不太好调试。串口相对简单,利用串口可以进行数据收发测试,方便调试。full-speed device:usb串口(PL2303,CH340等)1)full-speed相较于high-speed,timing要求更低。建议先从full-speed开始验证,利用USB串口进行测试。

2023-06-09 18:28:38 219

原创 linux USB千兆以太网卡配置及使用

绿联(UGREEN)USB3.0千兆有线网卡。芯片型号为ASIX AX88179。

2023-06-09 18:25:58 1164

原创 以太网卡EMAC FPGA验证建议

如果遇到问题,可以先调MAC loopback,再调PHY loopback。先调试10M,再调100M,1000M由于timing关系,可能调不了。先MAC loopback,再PHY loopback。先调试RMII 10M,再调试RMII 100M模式。中断统计,cat /proc/interrupts。抓包工具:tcpdump,wireshark。统计寄存器,ethtool -S eth0。如果能有小code,调试起来会更加方便。先RMII,再RGMII。先10M,再100M。

2023-05-24 20:38:45 276

原创 usb host 复位device

2. test3. kernel。

2023-05-24 20:35:38 451

原创 linux虚拟内存布局

Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。虚拟地址空间的内部又被分为内核空间和用户空间两部分。

2023-05-24 20:27:24 424

原创 __weak 关键字的作用

加上了__weak 修饰符的函数,用户可以重新定义一个同名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,那么编译器就会执行__weak 声明的函数,并且编译器不会报错。所以我们可以在别的地方定义一个相同名字的函数,而不必也尽量不要修改之前的函数。函数名称前面加上__weak 修饰符,我们一般称这个函数为“弱函数”。

2023-05-24 20:23:34 190

原创 pcie虚拟网卡实现的几种方案

基于pcie链路,实现虚拟网卡,从而使用socket进行通信。以下是四种实现方案:

2023-05-24 20:07:03 1279

原创 linux pcie RC 框架

linux pcie RC 框架

2022-12-09 21:14:09 1993

原创 以太网 网线分类

网线分类

2022-12-09 21:07:31 2661

原创 linux支持ipv6

linux ipv6功能

2022-12-09 20:58:14 1323

原创 uboot环境变量保存到EMMC

uboot环境变量保存到EMMC

2022-12-09 20:53:24 1761

原创 Windows NFS server:Winnfsd

Windows NFS server:Winnfsd

2022-12-09 20:51:04 1969

原创 windows dhcp server

windows dhcp server

2022-12-09 20:42:03 1302

原创 intel 82574 1000M pcie 网卡 kernel driver

intel 82574 1000M pcie 网卡 kernel driver

2022-12-09 20:28:08 520

原创 windows PCIe 工具: TeleScan

用户可以通过TeleScan PE来扫描系统中的PCI/PCIe设备,并提供了读写其配置空间中的寄存器的功能。

2022-12-09 20:23:52 6337 1

原创 USB3.0 host xHCI驱动

USB3.0 host xHCI驱动

2022-11-04 18:17:22 3039 2

原创 cadence usb linux配置

cadence usb linux kernel配置

2022-11-04 18:13:08 229

原创 USB2.0 UTMI+接口

USB2.0 UTMI+接口

2022-11-04 18:06:38 1091 1

原创 FPGA USB host原型验证流程及调试手段

FPGA USB host原型验证流程及调试手段

2022-11-04 18:05:04 612

原创 FPGA USB device原型验证流程及调试手段

FPGA USB device原型验证流程及调试手段

2022-11-04 17:58:35 640 9

原创 USB2.0 ULPI接口介绍

usb2.0 ulpi接口介绍

2022-11-04 17:56:05 2482

原创 USB2.0 UTMI接口

usb utmi接口介绍

2022-11-04 17:53:23 1351

原创 USB3.0 PIPE接口

usb3.0 piep接口介绍

2022-11-04 17:51:17 1864

原创 UVC V4L2的实现

UVC V4L2的实现

2022-10-09 14:55:16 405

原创 优化USB UVC ISO传输速度

USB3.0单路uvc iso传输速率只有92MB/s, 1080p yuv 23.4fps,我们需要提高UVC传输速率(YUV帧率)

2022-10-09 14:50:45 2346

原创 以太网PHY MMD

以太网PHY MMD操作

2022-10-09 14:33:15 1427

原创 dwmac/stmmac/eqos EEE 驱动分析

dwmac/stmmac/eqos EEE 驱动分析

2022-10-09 14:29:30 446

原创 linux 网络远程唤醒 WOL

WOL(Wake on Lan),即局域网唤醒,从根本上来说是硬件设备提供的一项管理功能。该功能可以当电脑处于关机或休眠状态时,通过给网卡发送特定的数据包从而命令网卡向主板发送开机指令,进而实现上电开机。WOL支持 Magic Packet &Remote Wakeup packet两种机制,工作原理都一样,只是唤醒的包类型不一样。Magic Packet是一种特殊的唤醒包,而Remote Wakeup支持多种唤醒包类型,比如常见的单播和广播包等。

2022-10-09 14:23:58 3803

原创 dwmac/stmmac/eqos 远程唤醒(WOL) 驱动

如果通过ethtool启用了wol功能,那么在系统休眠时,在suspend函数中会调用stmmac_pmt来进入powerdown模式(低功耗模式),可通过remote wakeup来唤醒。如果在休眠期间收到了magic packet或remote wakeup packet,eqos会产生PMT中断,执行resume操作。注册唤醒中断(PMT中断),当收到magic packet或remote wakeup packet时,产生一个唤醒中断,执行唤醒操作。

2022-10-09 14:22:18 665

原创 路由器上网设置(宽带上网)

如果电脑与宽带直接连接,需要将运营商提供的固定IP地址等参数手动填写在电脑上,才可以正常上网。动态IP也叫自动获得IP地址上网,是以太网线接入的上网方式之一,电脑通过宽带自动获取IP地址、子网掩码、网关以及DNS地址。在没有路由器的时候,您的电脑单机连接宽带,使用宽带服务商(电信或联通等)提供的宽带账号密码拨号上网,这种上网方式叫做PPPoE上网或宽带拨号上网。购买路由器后,就不需要在电脑上拨号了,只需要将宽带线连接到路由器的WAN口,在路由器界面上设置宽带拨号上网,您的所有终端设备都可以直接上网。

2022-10-09 14:15:25 7802

原创 linux ntpd

linux ntpd服务

2022-10-09 14:07:56 239

基于stm32的语音识别

基于stm32的语音识别,专用语音芯片ld3320,源代码,详细资料介绍

2014-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除