基于OHCI的USB主机 —— OHCI(自定义数据结构)

简介:
OHCI 接口层用到的数据结构定义如下,这些数据定义都是我自己的程序里所使用的自定义数据结构,是根据OHCI的标准与程序的处理方式进行定义的:
/**

 * USB 设备信息

 */

typedef   struct  _USB_DEV_INFO

{

     unsigned   char   addr ;          //!< USB 设备地址

     unsigned   char   bulkInPort ;    //!<  批量出端口号

     unsigned   char   bulkOutPort ;   //!<  批量入端口号

} USB_DEV_INFO ;

 

常量定义:
#define  TD_SETUP         0x0

#define  TD_OUT           0x1

#define  TD_IN            0x2

#define  TD_DELAY_INT     0x2

 

#define  ED_SETUP         0x0

#define  ED_OUT           0x1

#define  ED_IN            0x2

 

#define  USB_CMD_WAIT_OVER   1

#define  USB_CMD_WAIT_OVER_2 2

#define  USB_CMD_OVER        100

 

#define  USB_CMD_TYPE_BULK_WRITE 1

#define  USB_CMD_TYPE_BULK_READ  2

#define  USB_CMD_TYPE_BULK_CMD   3

#define  USB_CMD_TYPE_CTRL_READ  4

#define  USB_CMD_TYPE_CTRL_WRITE 5





本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/244578,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
存储 缓存 并行计算
C/C++ 数据结构设计与应用(二):自定义数据结构的设计 (Design of Custom Data Structures)
C/C++ 数据结构设计与应用(二):自定义数据结构的设计 (Design of Custom Data Structures)
56 0
|
9月前
|
算法 安全 Java
【算法与数据结构】3 知行合一,线性查找的自定义类测试
【算法与数据结构】3 知行合一,线性查找的自定义类测试
|
IDE 开发工具 C语言
C++菜鸟学习笔记系列(5)——自定义数据结构
C++菜鸟学习笔记系列(5)——自定义数据结构
124 0
C++菜鸟学习笔记系列(5)——自定义数据结构
【数据结构实践】手把手带你快速实现自定义二叉树
什么是树 在学习二叉树之前.我们先来了解什么是树,跟我们现实生活中的树有什么联系,又有什么区别,树是一种很简单的结构,他是非线性的结构.在这种结构中,所有的元素之间的关系具有明显的层次特性,节点(Node)是树的基本构成部分,每个节点只有一个前件,成为父节点,没前件的父节点只有一个,那就是树的根节点(Root).每个节点可以有多个后件,这就是树的子节点(Children).没有后件(没有子节点)的节点称为叶子节点(Leaf Node),在树结构中,一个节点拥有的后件(子节点)个数称为节点的度,最大的度称为树的度,最大的层次(Level)称为树的深度(Height).
102 1
|
存储 Python
【数据结构实践】手把手带你简单实现Python自定义栈
栈又叫堆栈,它是一个有序集合.栈跟队列一样,也是一种呈线性排列的数据结构,而且两者极其相似,队列是先进先出(FIFO),而栈是后进先出(LILO).即像栈这种结构是最后添加的数据最先被取出,而且在这种结构中,我们只能访问最新添加的数据.栈就像一摞书,拿到新书时,我们就会把新书放在书堆上,取书的时候也只能从最上面的新书开始取.可看出它是是一种操作受限的线性表,所以往栈中添加和删除元素都是发生在同一端,通常称作发生操作的这一端为顶部,对应的端为底部.其实栈更像一个桶,你把东西放进桶里,你每次只能从最上面去拿,因为底下是封闭的,如果你想取下面的东西,就必须得先把上面的东西拿走.将目标物体暴露在最上面
180 0
|
Python
【数据结构实践】简单实现Python自定义队列
队列:跟数组一样,队列中的数据也是呈线性排列的,它是一种先进先出(FIFO: First in First Out)的线性结构,队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表.即在队列的尾部入队,在队列的头部出队。 在队列中添加和删除数据的操作分别是在两端进行的。顾名思义,他就和我们现实生活中的‘队列’是一样的,你可以把它想象操场上排成一列的队伍,在队列中,操作总是从第一名开始往后进行,而新来的人只能排在队尾。先来的数据先处理是一种很常见的思路,所以队列的应用范围非常广泛。就比如:疫情区间,你去做核酸,你先去的话你排在前面,你后面去的只能排在别人后面,做完核酸的人往前面走,相当
379 1
|
存储 Python
【数据结构实践】手把手带你实现 Python 自定义数组
无论是任何语言,数组或者类似数组的数据结构永远是计算机编程语言不可或缺的基本数据结构,有了数组的存在更有利于我们的程序对数据的存储和操作.本文将从面向对象的入手,实现自定义数组类,实现数组的基本操作和运算等功能 1、数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。 2、组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 3、用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。也就是说数组是存储相同类型数据
744 1
|
算法 Java Python
【数据结构实践】从0到1带你利用Python实现自定义集合
集合(简称集)是数学中一个基本概念,我们应该都比较熟悉,不管是生活中,还是数学上,我们都频繁地接触到。集合在数学领域具有无可比拟的特殊重要性。一定范围的,确定的,可以区别的事物,当作一个整体来看待,就叫做集合,简称集,其中各事物叫做集合的元素或简称元。如(1)阿Q正传中出现的不同汉字(2)全体英文大写字母。任何集合是它自身的子集。它是集合论的研究对象,集合论的基本理论直到19世纪才被创立。集合论的基础是由德国数学家康托尔在19世纪70年代奠定的,经过一大批卓越的科学家半个世纪的努力,到20世纪20年代已确立了其在现代数学理论体系中的基础地位,可以说,现代数学各个分支的几乎所有成果都构筑在严格的
399 1
|
JSON 前端开发 数据格式
fastapi(65)- 路由函数指定了 response_model,在返回自定义 JSONResponse 时, 不会限制它返回的数据结构
fastapi(65)- 路由函数指定了 response_model,在返回自定义 JSONResponse 时, 不会限制它返回的数据结构
264 0
fastapi(65)- 路由函数指定了 response_model,在返回自定义 JSONResponse 时, 不会限制它返回的数据结构
|
存储 算法 测试技术
【算法与数据结构实战】模拟竖式加法,自定义位数
一直以来跟别人提起模拟竖式加减法都是只提一个思路,把几位放到数组里,然后怎么怎么样,但说实话还从来没实战过。 网上有很多不限位数的模拟方法,基本上都是用链表。但这样实际使用上反而会比较慢,而且其实大位数不限量也不是一个很关键的点,主要是为了突破int范围去显示。
1407 0