自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

forsakening的专栏

for( level = 水平不高, reason = 学习记录; ;){ if (温故知新) level++; }

  • 博客(101)
  • 资源 (28)
  • 收藏
  • 关注

原创 RDMA在典型场景下的技术应用分析与探索

RDMA技术因其低延迟、bypass os/cpu等优势在数据中心内被广泛应用,本文围绕redis rdma进行方案分析及测试,再结合tensorflow、nccl、brpc等开源方案总结RDMA在典型业务场景下的实践方案。

2023-08-11 11:16:09 783

原创 veth网卡的多队列及RPS

3.10内核下容器使用的veth网卡,默认开启的是一个队列,导致在某些单线程多TCP链接的应用场景下,出现某个CPU软中断高的情况。之前处理的方案一直是开启这个veth网卡的RPS,让其在多流场景下可以去分散到其它CPU上,将某个CPU上的软中断降低。其中,skb_get_rx_queue可以通过veth的多队列,拿到不同的队列,但是下面的一个流程,是要配合rps去使用的,所以当前3.10.957的内核即使veth使用了多队列,若没有开rps的话,仍然是返回到当前cpu。带着这个问题看一下内核的处理流程。

2023-05-18 16:13:31 902

原创 socket send:broken pipe

tcp socket在调用send接口时,出现了程序出现:Program received signal SIGPIPE, Broken pipe的异常。说明程序收到了SIGPIPE的信号。一般网上的处理手段是signal(SIGPIPE, SIG_IGN);忽略这个信号,但实际测试过程中貌似没太生效,这块没具体研究。还是直接分析下原因,为何sendret = send(sockfd, sendmsg, strlen(sendmsg), 0);这样一段代码会引起程序收到SIGPIPE信号呢?

2022-04-23 21:28:20 3168 1

原创 centos上编译nbd.ko

centos7.6默认的内核没有nbd.ko模块,在yum源上也找不到,只能手动从源码编译了。参考:在 CentOS 中安装 nbd.ko 驱动模块 - ZVampirEM's Blogcentos7单独编译nbd内核模块 - 武汉-磨渣 - 博客园安装kernel-src包后,进入/root/rpmbuild/SOURCES/linux-3.10.0-957.27.2.el7/drivers/block目录编译: block]# make CONFIG_BLK_DEV_NBD

2022-04-21 21:00:29 1026

原创 TCP未监听端口收到报文,为何会回应reset报文

说下结论:linux下,在某个tcp未监听端口收到报文时,会回复reset报文,代码层面初步分析如下。tcp_v4_rcv中调用__inet_lookup_skb查找报文对应得socket,当没有socket时,会走到“no_tcp_socket”流程,该流程会发送reset报文。lookup:sk = __inet_lookup_skb(&tcp_hashinfo, skb, __tcp_hdrlen(th), th->source,...

2021-12-08 20:10:23 2153

原创 Linux下获取cpu温度

大致strace跟踪了下sensors命令,发现是读取类似/sys/class/hwmon/hwmon1/temp1_input中的值,再结合google下的如下几篇文章:https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface总结如下:# ls -al /sys/class/hwmon/total 0drwxr-xr-x 2 root root 0 Aug 11 10:09 .drwxr-xr-x 64 root r

2021-08-11 10:24:27 12572

原创 支持vhost-net类型的多队列tap虚拟网卡

参考:【1】vhost(vhost-net): 一种 virtio 高性能的后端驱动实现https://cloud.tencent.com/developer/article/1075600【2】Linux kernel Vhost-net 和 Virtio-net代码详解https://www.cnblogs.com/scottieyuyang/p/6053376.html1.问题描述使用普通virtio驱动的tap网卡时,tap虚拟卡是xxxx-vif-agent网络插件创建的...

2021-07-02 09:42:09 1315 2

原创 ifb与tc police对接收方向限速性能比较

参考:【1】https://www.cnblogs.com/xingmuxin/p/10826703.html【2】https://blog.csdn.net/dog250/article/details/40680765 dog250大神对ifb的理解1.使用ifb进行容器的出向限速 创建ifb,并mirror流量至ifb网卡上,限制发送侧5G的发送流量 modprobe ifb //支持参数,默认创建ifbx网卡的数目 ifconfig ifb1 up ...

2021-05-20 21:40:47 1333

原创 【Opencontrail】对接k8s基本原理

Opencontrail基于CNI规范实现了自己的CNI插件,Kubelet在调用CNI接口时调用SDN-CNI-Plugin生成对应的veth pair容器端口,veth一端在Pod中,另一端在Opencontrail的SDN-NVE-Agent中,所以Pod的所有通信流量全部被Opencontrail系统接管。同时,Opencontrail使用SDN-Kube-Manager监听K8S A...

2019-07-09 11:03:47 453

原创 【Opencontrail】对接vcenter dpdk模式性能测试

参考【1】https://docs.vmware.com/en/VMware-vCloud-NFV-OpenStack-Edition/3.0/vmwa-vcloud-nfv30-performance-tunning/GUID-2B34AD95-F8F9-4837-9521-D426E2E01B9F.html vcenter中nfv应用的performance调优【2】https:/...

2019-07-09 10:59:11 1956

原创 【Opencontrail】opencontrail对接k8s

1.预置条件部署K8S集群,K8S集群工作正常;2.部署sdn控制器控制器集群和K8S集群,使用新的数据网卡通信,使用fab安装。3.部署sdn前k8s集群配置3.1 修改k8s-master节点配置1) 停掉calicokubectl delete daemonset calico-node -nkube-system将master节点上的相关cali...

2019-07-09 10:39:43 806

原创 haproxy中使用域名作为backend

1)基本条件:haproxy > v1.6 版本(测试时候觉得1.8版本更稳定)2)centos编译haproxy的rpm包https://github.com/DBezemer/rpm-haproxy3)遇到的坑:      –  dns的返回值不正确,原因是backend的域名填写的有问题rancher的环境中,必须要对域名做如下转换:如desktop-server  需转换为 desk...

2018-04-16 15:43:54 6841

原创 dpdk的ring

struct rte_ring { TAILQ_ENTRY(rte_ring) next; /**< Next in list. */ char name[RTE_RING_NAMESIZE]; /**< Name of the ring. */ int flags; /**< Flags supplied at...

2018-03-28 18:24:07 561

原创 使用DPDK分流不同数据报文至不同虚拟机

使用DPDK分流不同数据报文至不同虚拟机,这样可以使用网卡的RSS或者FDIR等高级功能。上述组网中,是可以实现tap0和tap1之间互通的;(注意点,tap设备up,bridge设备up)tap设备是打开/dev/net/tun文件生成的一种字符设备,同一个tap设备只能被open一次。上图中,DPDK应用程序open并创建一个tap1设备,这样dpdk程序收到报文后,根据分流规则,可以将收到的...

2018-03-13 14:33:46 1767

原创 kvm创建虚机时访问外网

随意创建一个网桥: brctl addbr qemu-br为此网桥创建一个tap:yum install -y tunctltunctl -t vm-ifbrctl addif qemu-br vm-if网桥随便分配一个ip: ifconfig qemu-br 192.168.44.1/24 upiptables: iptables -t nat -

2018-01-29 14:51:23 2127

原创 centos6.9升级内核启动docker时无法冻结

背景及现象:某地超融合项目,客户使用centos6.9时,升级了原生2.6.32的内核版本至4.4.113版本内核。然后客户在此虚机中安装并开启了docker服务。导致在线快照时无法冻结文件系统。 [root@host-172-16-170-171 ~]# cat /proc/self/mountsproc /proc proc rw,relatime 0 0

2018-01-27 15:06:08 736

原创 网卡bond工具

fork from:https://github.com/sivel/bondingmirror at:https://github.com/forsakening/bonding修改后功能如下:1)过滤出系统的网卡,过滤出的网卡类型:非网桥、非loopback、非tap、非pair,暂不支持过滤ovs的网卡2)支持配置没有ip属性的bond(不设置bond的ip)

2018-01-24 09:53:25 816

原创 keepalived增加/删除IP代码层面

网上说是使用ip addr add/del 操作,原理差不多,但实际不是~~参考代码,根据配置文件中的static_addresses配置项,层层查找,发现是使用了netlinkvrrp_handle_ipaddress(vrrp_t * vrrp, int cmd, int type, bool force)netlink_iplist(list ip_list, int

2018-01-24 09:51:41 1157

原创 cron下执行ntpdate出现的问题

ntpdate代码:https://github.com/ntp-project/ntp/tree/stable/ntpdate编译:1)./bootstrap2)autoconf   automake  configure  make,预先安装libtool 问题现象:在v3.2版本超融合中,osd、mon、controller、c

2018-01-24 09:50:54 1132

原创 OSD无法启动恢复

现象:  osd无法启动,log里显示加载journal失败,类似如下: 问题原因:  该osd的journal数据损坏,需要重新刷新修复方法:   对该osd的日志盘用dd命令重新覆盖一遍,只需要重写开始的一段,然后重做日志盘。  dd if=/dev/zero  of=/dev/sdb4 bs=1M count=1024 #sdb

2018-01-24 09:31:40 2382

转载 Ceph Monitor节点故障处理案例分解

查看ceph健康状态[root@bgw-os-node151 ~]# ceph healthHEALTH_OK[root@bgw-os-node151 ~]# ceph health detailHEALTH_OK[root@bgw-os-node151 ~]# ceph mon state2: 3 mons at{bgw-os-node151=10

2018-01-24 09:25:03 4467

原创 异常断电mysql集群数据库恢复

说明:项目相关,有些命令不一定适用于其他场景,仅供参考20180121日,xxxx项目,超融合异常掉电,导致数据库启动不了。 首先要备份/var/lib/mysql文件夹!!!!恢复:1)不强制恢复180121 20:00:37 mysqld_safe WSREP: Running position recovery with --log_error='/var/lib/mysql//wsrep_...

2018-01-24 09:24:06 5176 1

原创 openstack虚机流量监控demo

1.使用docker镜像在172.16.33.1:docker-registry:5000/ntopng-zx:v1.1使用方式:1)在待监控虚机所在的物理机上执行:docker run --net=host --privileged -ti -p 3000:3000 docker-registry:5000/ntopng-zx:v1.1 bash2)进入容器后,执行:/t

2017-12-20 10:44:29 3514

原创 Linux线程qps测试

实验环境OS     : Centos 7.1Kernel: 4.6.0CPU   : Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz (开启超线程)MEM : 48G DDR3 伪代码//任务模式long long g_SleepIoCount=0;long long g_SleepIoLastCount=0;void I

2017-09-25 15:21:52 2930

转载 MTU 巨帧 TCP/UDP与分片

常常见到交换机和网卡说明中提到支持Jumbo Frame,但我一直对以太网的Jumbo Frame(巨帧)如何使用不太理解,今日在网上找到2则现摘录下来,相信看了以后大家会有收获。 ---- 这是一种厂商标准的超长帧格式,专门为千兆以太网而设计,目前还没有获得IEEE标准委员会的认可。以太网标准的最大帧长度为1518字节,而Jumbo Frame的长度各厂商有所不同,从9000字节~64000字节

2016-02-16 10:30:49 18550

转载 wireshark基本用法及过虑规则

Wireshark 基本语法,基本使用方法,及包过虑规则:1.过滤IP,如来源IP或者目标IP等于某个IP例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IPlinux上运行的wireshar

2015-11-04 19:35:59 548

转载 讲述Linux HUP信号的干扰问题

我们知道,当用户注销(logout)或者网络断开时,终端会收到Linux HUP信号(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略Linux HUP信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。AD:在向大家详细介绍Linux HUP信号之前,首先让大家了解下Linux HUP信号,然后全面介绍Li

2015-09-25 10:06:00 2176

转载 Linux 大页面使用与实现简介

为了减少 TLB Miss 对应用程序性能的影响,Linux 内核支持以 2MB 作为物理页面分页的基本单位。 Linux 内核采用基于 Hugetlb 伪文件系统的实现方式支持大页面,虽然较大地提升了应用程序的性能,但由于不能做到完全的透明性,对应用程序的移植带来了挑战。本文对 Linux 大页面机制的使用和实现进行了简要的介绍和分析。 引言随着计算需求规模的不断增大,应用程序对内存

2015-09-09 10:12:09 820

转载 SDP协议分析

一、SDP协议介绍SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME  扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP协议是也是基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围。SDP 不支持会话内容或媒体编码的协商,所以在流

2015-09-07 14:31:15 1355

原创 Linux系统中添加IPv6模块(TQ2440开发板)

TQ2440开发板自带的内核镜像并没有支持IPv6协议栈,但可以2种方法来使内核支持:1)重新配置内核,编译镜像,使之支持IPv62)编译IPv6协议栈模块,利用insmod方式加载模块在没有支持IPv6协议栈之前,对网卡添加IPv6地址是不被允许的:1)配置内核,编译镜像:2)在内核源码下配置为模块方式,编译模块make modules(前提是要用ma

2013-12-18 13:01:09 7252 1

翻译 Essential pre-reading for life with LFS

Essential pre-reading for life with LFS.AUTHOR: Richard A Downing FBCS CITP DATE: 2004-12-28LICENSE: Creative Commons - Attribution-NonCommercial-ShareAlike 2.0SYNOPSIS: Essential pre-readin

2013-12-17 11:02:33 1156

原创 Linux内核kobject模型(添加kobject对象,模拟kobject状态变化)

#include #include #include #include #include #include static struct kobject *parent;static struct kobject *child;static struct kset *c_kset;static unsigned long

2013-11-18 13:59:57 993

原创 TQ2440开发板的使用技巧

Telnet访问TQ2440开发板,可以代替串口成为终端1.通过telnet命令  telnet IP(TQ2440),输入root用户名和密码2.或者是通过secureCRT直接进行telnet访问利用ftp服务在Linux下访问TQ2440开发板:1.TQ2440下添加root用户的密码 passwd命令,ftp服务需要root用户名和密码2.Linux下ftp

2013-11-03 22:04:00 1428

原创 简单的IPv6 UDP/TCP socket编程 -- 两台Linux实现简单的ipv6通信

1.两台linux用网线直接相连2.分别配置两台linux的ipv6地址为:ifconfig eth0 add 2001:da8:e000::1:1:1ifconfig eth0 add 2001:da8:e000::1:1:2如下所示:[root@EmbedSky /]# ifconfigeth0      Link encap:Ethernet  HWaddr 10

2013-11-03 16:58:03 13754 3

原创 windows xp/Linux下使用ipv6服务

具体参考:http://isp.aptg.com.tw/ipv6/ipv6-tb-1.html这里面有详细的使用方法介绍,主要是利用udp隧道实现ipv6 over ipv4

2013-10-31 23:19:02 851

原创 lwip中ip层的实现浅析

以下部分来源2001版,可能已经不适用于当前版本的lwip,但是作用于参考足够了~--------------------------------------------------------LwIP 仅实现了 IP 层大部分的基本功能,能够发送、接收以及转发信息包,但是不能接 收和发送 IP 分片包,也不能处理携带 IP 参数选项的信息包。不过对大多数的应用来说,这 不会引起任何问题。

2013-10-02 22:30:21 4277

原创 关于网络序

网络序是大字序:0x12345678低 ---------------> 高 (address ])转换为网络序address [0] = 0x12 address [1] = 0x34 ......假设从网络上获取一IP地址为IP[0] = 0x12 ; IP[1] = 0x34; IP[2] = 0x56; IP[3] = 0x78在大端机器上获得的地址就是为int IP

2013-10-02 20:26:35 952

原创 lwip-1.3.2中sys.c的分析

sys_arch:sys.c:系统抽象层,其中会调用和os相关的部分,如sys_arch_timeouts等,在lwip中是以sys_arch_命名开头的sys_arch_timeouts/* BEGIN: Added by zhengxiang, 2013/10/2 PN:lwip_comment *//* 获取lwip进程定时器链表,需要移植 *//* END: A

2013-10-02 15:07:23 2437

原创 Ethernet II 和802.3

Ethernet V2比IEEE802.3更适合于传输大量的数据,但Ethernet V2缺乏数据链路层的控制,不利于传输需要严格传输控制的数据,这也正是IEEE802.3的优势所在,越需要严格传输控制的应用,越需要用 IEEE802.3或SNAP来封装,但IEEE802.3也不可避免的带来数据装载量的损失,因此该格式的封装往往用在较少数据量承载但又需要严格控制传输的应用中。在实际应用中,

2013-10-01 01:53:20 7063

原创 华为9月面试总结

面的岗位是网络操作系统类,主要的问题如下几个1, 什么是总线;2. 什么是操作系统,包括哪些部分?3. 什么是嵌入式操作系统;4. 什么是实时操作系统,如何实现实时?5. TCP/IP是什么?MAC层是什么,有什么作用?数据链路层与MAC、LLC之间关系?

2013-09-30 00:51:07 1860 1

dpdk vswitch

dpdk virtual switch

2023-03-01

店铺转租转让合同样本文件.doc

转让协议样本

2021-03-29

linux ipv6简单tcp/udp socket通信

linux下ipv6简单的tcp/udp socket通信,代码测试通过,具体可以参考: http://blog.csdn.net/zhengxianghdu/article/details/14106167

2013-11-04

浙江大华2014笔试(软件、算法类A卷)

浙江大华2014笔试(软件、算法类A卷) 10/11杭州电子科大

2013-10-12

2014网新恒天校招笔试(925杭电)

2014网新恒天校招笔试(925杭电) 请大家参考!

2013-09-25

2014年阿里巴巴研发笔试题(9月22杭州)

2014年阿里巴巴研发笔试题(9月22杭州)

2013-09-22

QEMU/mini2440上运行RT-Thread源码及工具

里是我测试好的工程,包括源码及工具(RTT0.4.0 + PYTHON + SCONS)

2013-09-18

宋宝华《Linux设备驱动开发详解》随书代码

《Linux设备驱动开发详解》随书代码,从第五章开始

2013-08-11

一种简陋的CC1100/CC1101主从通信协议

一种简陋的CC1100/CC1101主从通信协议,可选址,面向连接,具体可参考http://blog.csdn.net/forsakening/article/details/9121067

2013-06-18

QT4入门教程(yafeilinux)

是网友总结的yafeilinux的qt入门教程,现在yafeilinux上面已经看不到免费的了。。。

2013-06-10

U-Boot-1.16编译过程完全分析(网页文件)

U-Boot-1.16编译过程完全分析.mht(网页文件) 原作者的分析,害怕丢了,保存一下 作者地址: http://www.cnblogs.com/heaad/archive/2010/07/17/1779806.html

2013-06-04

u-boot-1.1.6官方原版

u-boot-1.1.6官方原版 官方地址: ftp://ftp.denx.de/pub/u-boot/(不保证可以正常访问)

2013-06-04

TQ2440-S3C2440-裸机ARM软中断

用ADS编译测试通过,裸机ARM软中断测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 http://blog.csdn.net/forsakening/article/details/9004812这里是我对代码及arm软中断的简单分析。

2013-06-01

TQ2440-S3C2440-裸机UART测试程序

用ADS编译测试通过,UART查询和中断方式测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 http://blog.csdn.net/forsakening/article/details/9002514 这里是我对代码及TIMER0中断的简单分析。

2013-05-31

TQ2440裸机代码(定时器中断)

用ADS编译测试通过,TIMER0中断测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 http://blog.csdn.net/forsakening/article/details/9001059 这里是我对S3C2440代码及TIMER0中断的简单分析。

2013-05-31

TQ2440裸机中断(外部中断)

用ADS编译测试通过,外部中断按键测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 http://blog.csdn.net/forsakening/article/details/8998027 这里是我对S3C2440代码及中断的分析。

2013-05-31

TQ2440启动代码

代码分析见http://blog.csdn.net/forsakening/article/details/8996343 此代码在ADS编译测试通过,下载至TQ2440开发板NAND中可正常启动,能正确引导C语言程序

2013-05-31

TQ2440启动代码测试--流水灯

用ADS编译测试通过,流水灯程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行。若要在sdram可运行,将工程中的startcode删除即可。 http://blog.csdn.net/forsakening/article/details/8996343 这里是我对启动代码的分析。

2013-05-30

51单片机C语言编程入门(中科大)

51单片机C语言编程入门(中科大),51单片机虽然很简单,但是长时间不用的话,一些基本的概念还是会忘记,不熟悉的时候看看,温故而知新,不积跬步无以至千里~

2013-05-27

Accelerated C++中文版(扫描版)

Andrew Koenig, Barbara E. Moo, Accelerated C++: Practical Programming by Example 《Accelerated C++中文版》,中国电力出版社 和市面上大多数C++教程不同,本书不是从“C++中的C”开始讲解,而是始于地道的C++特性。从一开始就使用标准库来写程序,随着讲述的逐渐深入,又一一解释这些标准库组件所依赖的基础概念。另外,和其他C++教材不同的是,这本书以实例拉动语言和标准库的讲解,对后两者的讲解是为了给实例程序提供支持,而不是像绝大多数C++教材那样,例子只是用作演示语言特性和标准库用法的辅助工具。

2013-05-23

LDD3英文书+源码

LDD3英文源码,非中文注释,完全配合原书

2013-05-17

圈圈教你玩USB

/* 也是从其他地方搞过来的,花了不少积分,我就1分奉献了吧,绝对是好书~ */ 第1章USB概述及协议基础 1.1USB是什么 1.2USB的特点 1.3USB的拓扑结构 1.4USB的电气特性 1.5USB的线缆、插头及插座 1.6USB的插入检测机制 1.7USB的描述符及其之间的关系 1.8USB设备的枚举过程 1.9USB的包结构及传输过程 1.9.1USB的包结构及包的分类 1.9.2令牌包 1.9.3数据包 1.9.4握手包 1.9.5特殊包 1.9.6如何处理数据包 1.10USB的四种传输类型 1.10.1USB事务 1.10.2批量传输 1.10.3中断传输 1.10.4等时传输 1.10.5控制传输 1.10.6端点类型与传输类型的关系 1.10.7传输类型与端点支持的最大包长 1.11本章小结 第2章硬件系统设计 2.1方案及芯片的选定 2.2D12引脚功能说明 2.3D12与AT89S52的连接 2.4串口部分电路 2.5按键部分 2.6指示灯部分 2.7IDE接口部分 2.8单片机部分 2.9元件安装 2.10电路调试 2.11测试程序的编写和调试 2.11.1建立一个工程 2.11.2为工程添加源文件 2.11.3KEIL工具栏及仿真介绍 2.11.4按键驱动的编写 2.11.5串口驱动的编写 2.11.6PDIUSBDl2读写函数及读ID的实现 2.12本章小结 第3章USB鼠标的实现 3.1USB鼠标工程的建立 3.2USB的断开与连接 3.3USB中断的处理 3.4读取从主机发送到端点O的数据 3.5USB标准请求 3.5.1USB标准设备请求的结构 3.5.2GET_DESCRIPTOR请求 3.5.3SET_ADDRESS请求 3.5.4SETCONFIGURATION请求 3.6设备描述符的实现 3.7设备描述符的返回 3.8设置地址请求的处理 3.9配置描述符集合的结构 3.9.1配置描述符的结构 3.9.2接口描述符的结构 3.9.3端点描述符的结构 3.9.4HID描述符的结构 3.10配置描述符集合的实现以及返回 3.11字符串及语言ID请求的实现 3.12设置配置请求的实现 3.13报告描述符的结构及实现 3.14报告的返回 3.15BusHound工具的简介 3.16本章小结 第4章USB键盘的实现 4.1USB键盘工程的建立 4.2设备描述符的实现 4.3配置描述符集合的实现 4.3.1配置描述符 4.3.2接口描述符 4.3.3HID描述符_ 4.3.4端点描述符 4.4字符串描述符 4.5报告描述符 4.6输入和输出报告的实现 4.7 USB键盘实例的测试 4.8再谈USBHID的报告描述符 4.9带鼠标功能的USB键盘(方法一) 4.10带鼠标功能的USB键盘(方法二) 4.11多媒体USB键盘 4.12本章小结 第5章用户自定义的USBHID备 5.1MyUsbHid工程的建立 5.2描述符的修改 5.3报告的实现 5.4对用户自定义的USBHID设备的访问 5.5访问HID设备时所用到的相关函数 5.5.1 获取HID设备的接口类GUID的函数 5.5.2获取指定类的所有设备信息集合的函数 5.5.3从设备信息集合中获取一个设备接口信息的函数 5.5.4获取指定设备接口详细信息的函数 5.5.5打开设备的函数 5.5.6获取HID设备属性的函数 5.5.7从设备读取数据的函数 5.5.8往设备写数据的函数 5.5.9通过控制端点O读取报告的函数 5.5.10通过控制端点O发送报告的函数 5.5.11关闭句柄的函数 5.5.12需要包含的库文件 5.6访问USBHID设备的上位机软件的实现 5.6.1上位机程序编写的思路 5.6.2查找及打开HID设备的代码 5.6.3读输入报告线程的代码 5.6.4写输出报告的代码(发送LED的状态) 5.6.5写输出报告线程的代码 5.6.6线程的创建以及设备插拔事件的注册 5.6.7对设备状态改变事件的处理 5.7软件界面以及使用方法 5.8本章小结 第6章USB转串口 6.1串口家族历史 6.2串口接头的引脚分布及功能 6.3USB转串口的实现方法 6.4设备描述符 6.5字符串描述符 …… 第7章USBMIDI键盘 第8章U盘 第9章自定义USB设备及驱动开发 第10章USB过滤驱动开发 附录第3章实例的完整调试信息 参考文献 后记 ……

2013-05-15

LDD3源码及示例

LDD3的源码,由于其他人的资源要下载积分,发扬开源精神,下载并0积分分享~

2013-05-15

xcap0.3.4报文构造发送工具

xcap0.3.4报文构造发送工具,windows上一款十分好用的报文构造发送工具

2013-05-07

BACnet协议中文版

BACnet协议中文版,比较全面,对于对象及服务都有很详细的描述

2013-03-23

bacnet-stack-0.8.0

bacnet-stack-0.8.0.zip可以移植在各种嵌入式设备上,兼容了各种平台:linux win32 pic单片机 arm7,且实现的功能较为完善,提供各种服务,对于BVLL较为详细

2013-03-21

bacnet4linux-0.3.12

bacnet4linux-0.3.12针对于linux平台的bacnet协议栈实现,主要实现了server的功能

2013-03-21

80c51动态扫描数码管 显示不同的数

80c51动态扫描数码管 显示不同的数 keil 的c语言代码

2011-09-25

空空如也

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

TA关注的人

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