上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 52 下一页
摘要: 函数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 de... 阅读全文
posted @ 2011-05-02 18:18 andriod2012 阅读(161) 评论(0) 推荐(0) 编辑
摘要: wince usb驱动中的CHub::AttachDevice函数函数CHub::AttachDevice在HubStatusChangeThread中被调用。当有设备插入的时候,该函数被调用。函数的注释如下:// This function is called when a new device is attached// on port "port". After this procedure finishes, a configured// device will be added to the hub's port array该函数中,通过一个循环,判断当前 阅读全文
posted @ 2011-05-02 17:48 andriod2012 阅读(484) 评论(0) 推荐(0) 编辑
摘要: Viewbin是微软提供的一个命令行工具,在WinCE5.0和WinCE6.0中,可以在"/WINCE600/PUBLIC/COMMON/OAK/BIN/I386"找到他。Viewbin工具可以用来查看NK.bin文件。它可以从NK.bin中获得这个NK image的大小,运行的起始地址等。还能查看到里面所包含的模块,应用程序及相关的信息。Viewbin的使用格式如下:viewbin [parameter] [filename]举几个例子吧:1. viewbin -nk.binViewBin... nk.binImage Start = 0xC02C0000, length 阅读全文
posted @ 2011-04-28 11:50 andriod2012 阅读(264) 评论(0) 推荐(0) 编辑
摘要: vs2005 wince dll调试只需要简单的几个设置就可以了:1 在dll project的property设置,deployment中的remote directory设置为目标文件夹,即编译好的dll需要copy to的地方2 在property中设置,Debugging中的remote executable设置为会调用你dll的应用程序(当然是wince的应用)。只要你的dll是用debug版本编译的就可以在dll的solution中调试了转自:http://www.rosoo.net/a/200812/7200.html 阅读全文
posted @ 2011-04-27 15:09 andriod2012 阅读(167) 评论(0) 推荐(0) 编辑
摘要: IssueTransfer调用相关在CHub类中的AttachDevice函数中,经常会调用到类CControlPipe的函数IssueTransfer。本文介绍一下函数CControlPipe::IssueTransfer的调用过程,以及具体实现。首先说说对函数CControlPipe::IssueTransfer的调用。首先调用函数CControlPipe::IssueTransfer: status = pControlPipe->IssueTransfer( . . . TransferDoneCallbackSetEvent, // 回调函数 m_hHubStat... 阅读全文
posted @ 2011-04-22 18:20 andriod2012 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 使用flashfxp有些日子了,也给我提供了不少的帮助。不过,今天还要说一点其不足之处。我使用的是版本3.0.2 build1043。最近需要使用别人制作的一个脚本。别人放到FTP上,我用flashfxp取下来,怎么操作,都无法正常执行。而对方测试的结果是,怎么操作,都OK。后来就把我的执行结果,以及使用的脚本Mail给了对方。对方拿到后,与其本地的脚本进行比较,发现有差别。然后我通过IE,将文件从FTP上copy下来。执行,OK。本着打破砂锅问到底的精神,就对通过IE拿到的文件和通过flashfxp拿到的文件进行了二进制比较。发现原文件中的0A,经过flashfxp处理过后,变成了0D0A。 阅读全文
posted @ 2011-04-20 17:31 andriod2012 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.builder.com.cn/2008/0104/696370.shtml“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{ int i;public: A(int _i) :i(_i*_i) {} void Say() { printf 阅读全文
posted @ 2011-04-10 17:13 andriod2012 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。-程序结束后有系统释放4、文字常量区—常量字符串就是放在这里的。程序结束后 阅读全文
posted @ 2011-04-10 16:37 andriod2012 阅读(149) 评论(0) 推荐(0) 编辑
摘要: Fun(){char SourceBuffer[102400] = {0};}在一函数中如上,申请了100K栈内存,出现的问题是只要一调用该函数,主线程马上终止并退出。一开始就想到了栈空间不足的可能,重启手机,再调试,问题依旧,google了WIN CE内存,找到了答案。栈是Windows CE内存类型中最容易使用的(自行管理)。在Windows CE中的栈像其它操作系统一样,是被引用函数的临时变量存储区。操作系统也用栈来存储函数的返回地址和在异常处理中微处理器寄存器的状态。 在系统中,Windows CE给每个线程一个分离的栈。默认情况下,系统中每个栈大小最大被限制为58KB。在一个进程中. 阅读全文
posted @ 2011-04-10 15:23 andriod2012 阅读(292) 评论(0) 推荐(0) 编辑
摘要: USB驱动中,共包含128个address。其中,给设备用的有127(0 - 127)个。第0个address是保留给root hub用的。 这128个address是通过一个包含四个成员的DWORD数组来实现管理的。 DWORD m_dwFreeAddressArray[4]; 一个DWORD包含32个bit,4个DWORD刚好128个bit,每个bit代表一个address。通过判断相应bit的0/1,就可以知道该address是否已经被使用。 每个设备的address必须是唯一的。所以,在为一个设备分配address时,就需要寻找未被使用的address... 阅读全文
posted @ 2011-04-06 16:54 andriod2012 阅读(153) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 52 下一页