3.12 基于OHCI的USB主机开发 —— OHCI(控制端口写数据)
来源:互联网 发布:java状态机框架 编辑:程序博客网 时间:2024/05/29 08:27
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/247246
在USB设备初始化枚举过程中,需要发送一些设置命令到USB设备上,需要调用本函数来完成。函数的处理跟控制端口读数据差不多,只不过TD的数据传输方向设置不一样:
/**
* 通过控制端口发送设置数据的命令
* @param pSetup Setup包指针
* @param *pData 数据缓冲区指针
*/
shortctrlCmdSet(unsignedint pSetup,unsignedchar *pData)
{
//初始化控制端点的ED
AT91F_CreateEd(
(unsignedint) &controlEd,// ED Address
64, // Max packet
0, // TD format
0, // Skip
0, // Speed
0x0, // Direction
0, // Endpoint
usbDevInfo.addr, // Func Address
(unsignedint) &genTd[2], // TDQTailPointer
(unsignedint) &genTd[0], // TDQHeadPointer
0, // ToggleCarry
0x0); // NextED
//控制端点的第一个TD,用于发送Setup包
AT91F_CreateGenTd(
(unsignedint) &genTd[0], // TD Address
2, // Data Toggle
TD_DELAY_INT, // DelayInterrupt
TD_SETUP, // Direction
1, // Buffer Rounding
(unsignedint) pSetup, // Current Buffer Pointer
(unsignedint) &genTd[1], // Next TD
8); // Buffer Length
//控制端点的第二个TD,用于发送数据
AT91F_CreateGenTd(
(unsignedint) &genTd[1], // TD Address
3, // Data Toggle
TD_DELAY_INT, // DelayInterrupt
TD_IN, // Direction
1, // Buffer Rounding
(unsignedint) pData, // Current Buffer Pointer
(unsignedint) &genTd[2], // Next TD
0); // Buffer Length
//标志TD队列结束的最后一个TD,设置为空
AT91F_CreateGenTd(
(unsignedint) &genTd[2], // TD Address
3, // Data Toggle
TD_DELAY_INT, // DelayInterrupt
TD_OUT, // Direction
1, // Buffer Rounding
0x0, // Current Buffer Pointer
(unsignedint) 0, // Next TD
0x0); // Buffer Length
//调用底层接口把数据发送出去
ohciCtrlXfer(&controlEd);
usbRunCmd(USB_CMD_TYPE_CTRL_WRITE, 2);
return 0;
}
- 3.12 基于OHCI的USB主机开发 —— OHCI(控制端口写数据)
- 3.14 基于OHCI的USB主机开发 —— OHCI(批量端口写数据)
- 3.11 基于OHCI的USB主机开发 —— OHCI(控制端口读数据)
- 基于OHCI的USB主机 —— OHCI(端点)
- 基于OHCI的USB主机 —— OHCI(HCCA)
- 3.13 基于OHCI的USB主机 —— OHCI(批量端口读数据)
- 基于OHCI的USB主机 —— OHCI(传输描述符)
- 基于OHCI的USB主机 —— OHCI(基本流程)
- 3.1 基于OHCI的USB主机 —— OHCI(端点)
- 3.2 基于OHCI的USB主机 —— OHCI(传输描述符)
- 3.3 基于OHCI的USB主机 —— OHCI(HCCA)
- 3.4 基于OHCI的USB主机 —— OHCI(基本流程)
- 3.5 基于OHCI的USB主机 —— OHCI(ED结构)
- 3.6 基于OHCI的USB主机 —— OHCI(ED结构说明)
- 3.7 基于OHCI的USB主机 —— OHCI(TD结构)
- 3.8 基于OHCI的USB主机 —— OHCI(TD结构说明)
- 3.9 基于OHCI的USB主机 —— OHCI(设计思路)
- 3.10 基于OHCI的USB主机 —— OHCI(自定义数据结构)
- java多线程
- 《嵌入式Linux应用程序开发详解》
- 3.11 基于OHCI的USB主机开发 —— OHCI(控制端口读数据)
- 设计模式——策略模式
- 一个表格
- 3.12 基于OHCI的USB主机开发 —— OHCI(控制端口写数据)
- 解决从vs2010复制汉字粘贴到word乱码问题
- Java List按中文拼音排序
- android:textAppearence
- Git常用命令解说
- DLL Hell的产生和如何有效的避免
- 类函数指针和普通函数指针
- LUA require 搜索路径指定方法
- 3.13 基于OHCI的USB主机 —— OHCI(批量端口读数据)