- 博客(23)
- 收藏
- 关注
原创 USB理论学习之五-----USB主机协议简介
USB主机协议简介 USB开发分为: USB外设开发 USB核心驱动程序和USB主控制器驱动程序开发-----USB系统软件 USB工业标准: 通用式主机控制器接口(UHCI) 开放式主机控制器接口(OHCI) 上述两者均有主机控制器和主机控制器驱动程序组成 主机控制器----面向硬件部分及生产厂商,规定接口,处理各种USB事务的各种功能模块以及给用户使...
2019-02-27 15:22:39
995
原创 USB理论学习之四-----USB数据通信结构
一、协议简介1.主要内容:USB整体通信模型:星型拓扑(以USB主机为核心,建立USB主机与USB设备之间的数据通信),机械层,电气层;USB数据通信协议:以差模串行信号为载体传送二进制代码来传输信号;数据包作为最基本的完整信息单元,包含了一系列数据信息;软硬件结构:包括主机、Hub与设备架构;主机与设备通信流程、步骤;软硬件设计的方法等2.结构概况包:令牌包、握手...
2019-02-19 15:25:08
937
原创 c++程序编译时报"field has incomplete type"问题
在网上找了一下原因,类或结构体的前向声明只能用来定义指针对象或引用,因为编译到这里时还没有发现定义,不知道该类或者结构的内部成员,没有办法具体的构造一个对象,所以会报错。 将类成员改成指针就好了。 程序中使用incomplete type实现前置声明有助与实现数据的隐藏。要求调用对象的程序段只能使用声明对象的引用或者指针。在显式声明异常规范的时候不能使用incomplete type。...
2019-01-11 14:40:14
10646
原创 USB理论学习之三-----设备级USB系统和USB拓扑结构
一、设备级USB系统1.USB Hub提供USB的连接端口,Hub就是能将多个连接线集中在一起的设备USB的体系允许多个Hub之间进行互连 上行端口:用于连接上一级Hub或根Hub下行端口:用于连接下级Hub或USB设备 通过检测USB电缆上的电平变化,USB Hub可以检测出下行端口上USB设备的接入或者移出,同时可以确定设备的速度类型,如低速或者是全速设备 ...
2019-01-08 16:28:55
1708
原创 USB理论学习之二-----基于PC的USB系统
一、PC上的USB系统组成部分硬件:完成物理上的接口和实体功能软件:与操作系统配合管理硬件,完成数据流传输由上图可知PC上的USB主机包含三个部分: USB主控制器/根Hub USB系统软件 用户软件 1).USB主控制器/根Huba.PC硬件,由USB主控制器芯片、USB Hub控制器芯片、USB端口连接件及控制器外围电路等组成;b.USB主控制器提...
2019-01-08 15:52:04
366
原创 USB理论学习之一-----USB的特点及关键字
一、USB特点1.即插即用1)热插拔2)PC对插入的USB设备进行自动识别,甚至对HID设备进行驱动自动安装 2.广泛软硬件支持 3.低功耗1)电气层机制2)自供电和总线供电(不需要任何外接电源) 4.多种速度模式1)低速模式1.5Mbps,适合如键盘、鼠标等对传输速度要求不高但是要求成本低的设备;2)全速模式12Mbps,适合工业和嵌入式领域的...
2019-01-08 11:47:14
1289
原创 Ubuntu 在登录用户界面输入正确密码类似于复位重复让我继续输入密码,进不去,已解决
在操作ubuntu操作系统的时候,我切换了tty到命令行界面(CTRL+ATL+F1),然后按startx切换回图形界面,就发生了如上述题目的情况解决:在尝试了网上的各种方法,如:1.清理系统sudo apt-get autoremove 2.重装桌面sudo apt-get install ubuntu-desktop 3.删除隐藏文件(可以解决问题)sudo r...
2019-01-05 15:57:08
1498
原创 面试常客3---变量存储区划清界限
全局初始化变量:数据段全局未初始化变量:数据段(BSS)全局的、静态的(static)、初始化的变量:数据段全局的、静态的、未初始化变量:数据段全局的常量(const):代码段 局部初始化的变量:栈局部未初始化变量:栈局部的、静态的、初始化变量:数据段局部的、静态的、未初始化变量:数据段局部常量:栈 在C语言的程序中,对变量的使用还有以下几点需要注意...
2018-12-14 16:35:58
177
原创 面试常客2---sizeof和strlen的前世今生
char str[20]="0123456789"; int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int b=sizeof(str); /*b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存储的内容影响 总之,对于指针,sizeof操作符返回这个指针占的空间,一般是...
2018-12-14 16:32:04
162
原创 面试常客1---常见特殊结构的大小
结构体:struct unknown { int a; char b; int c; long d; char e;};printf("%lu\n", sizeof(struct unknown)); //output : 32 1、遇到第一个成员变量a,该成员偏移量为0,大小为4,符合偏移规则第一条。2、接下来第二个成员变...
2018-12-14 16:30:36
119
转载 c++primer第五版答案
本文转自:https://blog.youkuaiyun.com/misayaaaaa/article/details/53786215第一章 全部题目(第一章基础较多)http://blog.youkuaiyun.com/misayaaaaa/article/details/53200001第二章1~10题:http://blog.youkuaiyun.com/misayaaaaa/article/detail...
2018-12-12 09:26:58
405
转载 makefile总结
在学习makefile的时候找到这一篇文章,觉得里面分析得很详细,总结得很全面,就记录下来了。附上作者的原文链接:http://www.cnblogs.com/wang_yb/p/3990952.html 1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很...
2018-12-11 16:25:05
146
转载 makefile中的VPATH
通常程序并不只存放在同一个目录下,例如:├── include│ ├── bar.h│ └── foo.h├── Makefile└── src ├── bar.c ├── foo.c └── main.c代码分别如下:/* bar.h */#ifndef __BAR_H#define __BAR_H extern void bar(void)...
2018-12-11 16:21:45
3868
2
转载 RTP协议分析
转自http://blog.youkuaiyun.com/chen495810242/article/details/392073051、RTP 分析 (1)IP是属于网络层部分的,UDP和RTP都是属于传输层部分的。(2)RTP首部 1) V:RTP协议的版本号,占2位,当前协议版本号为22) P:填充标志,占1位,如果P=1,则在该报文的尾部填充...
2018-09-11 15:15:22
553
转载 互斥量和信号量的理解
互斥量(Mutex) 互斥量表现互斥现象的数据结构,也被当作二元信号灯。一个互斥基本上是一个多任务敏感的二元信号,它能用作同步多任务的行为,它常用作保护从中断来的临界段代码并且在共享同步使用的资源。 Mutex本质上说就是一把锁,提供对资源的独占访问,所以Mutex主要的作用是用于互斥。Mutex对象的值,只有0和1两个值。这两个值也分别代表了Mutex的两种状态。值为0, 表...
2018-07-29 15:59:56
3126
转载 关于问题 mysql"Access denied for user root@localhost" 的解决办法
1.问题来源: 最近由LAMP转到LNMP,初次使用LNMP,为了快速入门,直接安装LNMP组合安装包。 当启动mysql数据库时,出现如下的错误信息 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)2.问题分析 错误信息的大意是:用户root没有使用密码访问localhos...
2018-05-02 17:02:51
238
原创 xxx is not the sudoers files.解决办法
1.切换到root用户2.运行visudo3.在文件里面找到root ALL=(ALL) ALL4.在该行下面添加一行: XXX ALL=(ALL) ALL这样便可以解决普通用户对sudo使用的问题,XXX表示用户名...
2018-03-19 16:10:26
658
转载 更新顺序文件
许多系统中的标准输入/输出库都允许程序打开一个文件,同时进行写入和读出的操作: FILE *fp; fp = fopen(file, "r+"); 上面的例子代码打开了文件名由变量file指定的文件,对于存取权限的设定表明程序希望对这个文件进行输入和输出操作。 编程者也许认为,程序一旦执行上述操作完毕,就可以自由地交错进行读出和写入操作。遗憾的是,事实总难随人所愿,为了保持与过去不能同时进...
2018-02-11 14:06:49
282
原创 操作系统自学笔记(第一至二章)
第一章: OS作为用户与计算机系统之间的的接口,通信方式:命令方式、系统调用、图标-窗口 软硬件资源:处理机、存储器、IO设备、文件 硬件->物理接口->IO软件->文件操作->窗口 OS的基本特性:并发、引入进程、共享、虚拟、异步 OS的主要功能: 处理机:进程控制、进程同步(互斥与同步)、进程通信、调度 存储器:内存分配和回收、内存保护、地址
2018-02-04 20:43:04
455
原创 shell自学笔记
#! xxxx 》》指定脚本的运行环境#xxxx为注释echo:把其参数传递给标准输出,若是字符串的话需要用双引号把它包含起来-n:不换行输出需要给文件赋值权限才能运行$:存取变量时需要的字符如:echo $logps:变量只在该脚本有效source shell脚本文件:强行让一个脚本影响其父shell环境(变量在shell中可见)
2018-02-02 16:17:56
246
转载 关于帧指针和栈指针的定义
关于栈帧结构,先引用网上的一张图:栈的增长方向是向下的。栈有个最大地址,这个地址成为栈底,也是存储栈里面存储第一个元素的位置,随着入栈个数增加,栈顶的地址不断减小。esp寄存器就是专门用来存储栈顶地址的,而栈指针便指向栈顶。函数调用时的内存布局:|-----参数----------||---返回地址--------||
2018-02-01 10:46:07
2620
转载 字符串指针问题
#includevoid copy(char *x,char *y){ for(;*y!='\0';x++,y++) *x=*y; *x='\0'; printf("%s\n",a);}int main(){ char *a="Hello!"; char *b="World!"; copy(a,b); return
2018-01-31 17:09:41
231
转载 void *指针的用法特点
指针有两个属性:指向变量/对象的地址和长度 但是指针只存储地址,长度则取决于指针的类型 编译器根据指针的类型从指针指向的地址向后寻址 指针类型不同则寻址范围也不同,比如: int*从指定地址向后寻找4字节作为变量的存储单元 double*从指定地址向后寻找8字节作为变量的存储单元 1.void指针是一种特别的指针 void *vp //说它特别是因为
2018-01-31 16:25:53
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人