函数OTGHNP_Init中调用了函数UsbSocHnpInit。
UsbSocHnpInit(dwHnpRegBase, fLegacyHost);
函数UsbSocHnpInit中对全局变量g_dwHnpRegBase进行赋值。
g_dwHnpRegBase = dwHnpRegBase;
函数OTGHNP_IsADevice调用了函数UsbSocHnpIsADevice。
函数UsbSocHnpIsADevice使用宏READ_HNPREG_ULONG读取数据:
dwData = READ_HNPREG_ULONG(OTG_OTGSC_OFFSET);
// 然后判断设备是否为A device。
return (dwData & OTGSC_ID_MASK)? FALSE:TRUE;
宏READ_HNPREG_ULONG的定义是对内联函数OS_READREG_ULONG的调用:
#define READ_HNPREG_ULONG(offset) OS_READREG_ULONG(g_dwHnpRegBase+offset)
函数OS_READREG_ULONG将传入的DWORD转换为指针,并返回数据。
// 实际上是对寄存器的操作。根据基地址,已经寄存器偏移量,读取寄存器的值。
return (*(PULONG)(addr));
此处使用内联函数而不是宏,是为了防止编译器优化。
分享到:
相关推荐
wince驱动开发教程,很好的驱动教学文档,培训班的上课资料哦。
WinCE_USB_mstar_Driver.zip wince mstar 在window下的同步驱动,支持xp, win7
windows CE下USB设备驱动编写的步骤,USB的基本原理
WINCE 5.0下的 USB2.0 DRIVER 十分难得! 源码和教程
wince驱动程序的特点和主要驱动的开发流程,以及wince操作系统的相关介绍。
WINCE操作系统下的串口驱动分析,分析得比较详细,应该很有用
wince下drve驱动测试程序大家学习使用
Wince通用的串口驱动程序,源码程序,下载即可以测试
WinCE USB 驱动开发 CPU类型支持ARM构架,USB WiFi(Wlan 802.11b)无线网卡的驱动程序
详细介绍Wince下USB驱动程序的开发过程,对usb协议,wince下驱动程序架构有详细介绍
WinCE下的动态驱动加载EVC源码,方便调试驱动,不可多得的哟!
WINCE_驱动开发_注册表编辑
嵌入式操作系统WINCE5.0下的USB驱动程序
wince平台下C#.net绘制曲线的控件,分析仪器行业的软件开发人员比较适用
WINCE 驱动开发 LED驱动 源代码 可编译产生运行
可以在linux和wince下运行,包括串口、usb、sdrsm\flash\rtc,网口等测试,是开发人员的好帮手。
winCE下开发的一个驱动源码,要求WINCE环境及EVC4.0开发工具
WINCE USB DRIVER,是ARM2410内嵌的USB控制器驱动程序,很不错吆
ARM WINCE的教程,非常不错,对于wince爱好者很有用!
wince串口程序 wince串口程序 wince串口程序 wince串口程序 wince串口程序