digi01

    1. STM32和PC机进行USB通信资料 7/6279 stm32/stm8 2011-02-25
                                       mark!
    2. STM8S10ms定时,怎么差这么多呢? 24/9585 stm32/stm8 2010-05-27
                                       STM8 TIM2还没看过 估计是: TIM2_TimeBaseInit(TIM2_PRESCALER_256, 625-1);
    3. DM9000硬件问题怎么检测 10/4909 嵌入式系统 2010-03-03
      DHCP有几个步骤的,你抓包看下哪个步骤出了问题
    4. PCB 12/6581 嵌入式系统 2010-01-04
      PCB 是要画PCB的软件资料??我有好多Platel的资料  QQ 815987015
    5. 当然IP地址得设置同一个网段.
    6. 引用 12 楼 efenwu 的回复: 俺的VHDL水平停留在 library ieee; use ieee.std_logic_1164.all; 完...
      精髓 太犀利了
    7. 引用 9 楼 l840828 的回复: 引用 7 楼 cfanlwn 的回复: MyFile.Open (_T("\\m_FileName"),CFile::modeRead);? ? ? ? ? //打开文件 要使用绝对路径 李MM 在wince下是要用绝对路径 现在我想的是选择一个文件代开 用绝对路径该怎么表示呢
      你打开文件,这个文件也有路径啊,通过软件是可以得到它的路径的 void GetCurrentDirectory(CString &szPath) { wchar_t pBuf[256]; GetModuleFileName(NULL,pBuf,sizeof(pBuf)/sizeof(wchar_t)); szPath=pBuf; szPath = szPath.Left(szPath.ReverseFind('\\')+1); }
    8. 急!!2450 wince5.0 怎么用IIC的中断??? 12/5170 嵌入式系统 2009-11-11
      up
    9. exe文件怎么在WinCE中打开? 27/16977 嵌入式系统 2009-09-25
      一定要在WinCE环境下重新编译才可以打开吗? 还有我暂时只用的是WinCE的模拟器,不需要其他硬件的支持。 假设普通的exe文件带有源码,放在WinCE环境下,只要重新部署一遍,在WinCE的目标文件夹下就生成一个对应的exe文件,这样就可以打开该文件。但是现在我的要求是不实现exe源码在WinCE环境下的部署,怎么通过其他的方法实现WinCE打开该exe文件。 不知道这样有没有办法打开。
    10. Eboot中InitPartitionMgr()分区格式化问题 10/3951 嵌入式系统 2009-09-24
      不说了。。。。。
    11. 问个mfc应用的问题?? 9/3543 嵌入式系统 2009-09-15
      被覆盖啦 要重绘
    12. TIM模块产生PWM 7/4870 stm32/stm8 2009-08-27
                                       搞个spwm用处较大,原理比较清楚,对stm32不熟
    13. 你在这里面加一个PIC或者PANEL,应该就没事了。
    14. 请帮忙推荐本驱动开发入门的书籍! 25/7102 嵌入式系统 2009-08-17
      谭文的《寒江独钓--windows内核安全编程》 张帆的《windows驱动开发详解》 都很适合新手看的......
    15. PPC2003用的操作系统是ce5还是6啊? 12/5170 嵌入式系统 2009-07-09
      另外,只要针对你的 Pocket PC 制作专门的系统,那什么系统都可以安装, 甚至可以安装其它系统。
    16. ARM高手请进。。 5/3647 ARM技术 2009-06-11
      先去看看VC下,工程中设置的堆栈是多大 再比较你现在用的编译工具所调协的堆栈大小 还有一种可能,是内存越界,这样也可能导致莫名其妙的错误。
    17. IImage在2450下解PNG的问题?在2440下没有。 10/5075 嵌入式系统 2009-06-10
      引用 7 楼 BEYONDMA 的回复: 查驱动吧
      现在主要原因就是不知道从何查起,有点怀疑是驱动的问题,但是还是不能确定,没有方向啊!判断不了方向啊! 除了系统和驱动外,似乎也不知道如何去找原因,系统我全编译过两次,同事也帮我弄了个系统,结果一样,驱动的话倒是没有看过,不过从什么地方找原因就不能确定啊?
    18. 我的驱动程序里面关键有两个函数StartIO和OnReadWriteComplete,read和write的入口函数里面只是做了些错误检查,然后都是调用StartIO函数。 VOID StartIo(PDEVICE_OBJECT fdo, PIRP Irp)   {           //KdPrint(("[ StartIo] start"));           PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION) fdo->DeviceExtension;           NTSTATUS status = IoAcquireRemoveLock(&pdx->RemoveLock, Irp);           if (!NT_SUCCESS(status))           {                   CompleteRequest(Irp, status, 0);                   KdPrint(("[ .StartIo] end - !NT_STATUS(status)"));                   return;           }           PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp);           BOOLEAN read = stack->MajorFunction == IRP_MJ_READ;                      if (read)                   KdPrint(("[StartIo] Read Operation"));           else                   KdPrint(("[StartIo] Write Operation"));                      USBD_PIPE_HANDLE hpipe = read ? pdx->hinpipe : pdx->houtpipe;                      PRWCONTEXT ctx = (PRWCONTEXT) ExAllocatePool(NonPagedPool, sizeof(RWCONTEXT));           if (!ctx)           {                   KdPrint((DRIVERNAME " - Can't allocate memory for context structure\n"));                   StartNextPacket(&pdx->dqReadWrite, fdo);                   CompleteRequest(Irp, STATUS_INSUFFICIENT_RESOURCES, 0);                   IoReleaseRemoveLock(&pdx->RemoveLock, Irp);                   return;           }           RtlZeroMemory(ctx, sizeof(RWCONTEXT));           ULONG length = Irp->MdlAddress ?  MmGetMdlByteCount(Irp->MdlAddress) : 0;           KdPrint(("[StartIo] - Length %d\n", length));                      if (!length && !read && FALSE) // zero-length write           {                                                                  ....//零长度写,没有执行过                   return;           }                      if (!length) // zero-length read           {                                                                  .... //零长度读,没有执行过                   return;           }                      ULONG_PTR va = (ULONG_PTR) MmGetMdlVirtualAddress(Irp->MdlAddress);           ULONG urbflags =  USBD_SHORT_TRANSFER_OK |                   (read ? USBD_TRANSFER_DIRECTION_IN : USBD_TRANSFER_DIRECTION_OUT);                      ULONG seglen= length;           if (seglen > pdx->maxtransfer)           {                   seglen = pdx->maxtransfer;                   KdPrint((DRIVERNAME " - Read/write of %d bytes will be done in segments of %d\n",                           length,                           seglen));           }           //---------------------------------------------------------------------------           // Allocate an MDL for each segment of the transfer. The parameters are chosen so           // that the MDL will have room for a maximum-sized buffer in the worst case where           // it starts just before a page boundary. (Note that the virtual address argument to           // IoAllocateMdl is not actually used as an address.)           //---------------------------------------------------------------------------           PMDL mdl = IoAllocateMdl((PVOID) (PAGE_SIZE - 1), seglen, FALSE, FALSE, NULL);           if (!mdl) // can't allocate MDL           {                   KdPrint((DRIVERNAME " - Can't allocate memory for MDL\n"));                   ExFreePool(ctx);                   StartNextPacket(&pdx->dqReadWrite, fdo);                   CompleteRequest(Irp, STATUS_INSUFFICIENT_RESOURCES, 0);                   IoReleaseRemoveLock(&pdx->RemoveLock, Irp);           }                      //---------------------------------------------------------------------------           // Initialize the (partial) MDL to describe the first segment's subset of the user  buffer.           //---------------------------------------------------------------------------           IoBuildPartialMdl(Irp->MdlAddress, mdl, (PVOID) va, seglen);                      //---------------------------------------------------------------------------           // Reader Peter Diaconesco ran across an apparent bug in the Win2K version of           // UHCD.SYS. Under heavy load conditions, UHCD was bug-checking because its           // internal call to MmGetSystemAddressForMdl was apparently returning NULL           // (even though it's not supposed to). We can prevent that problem by mapping           // the pages in the following "safe" manner:           //---------------------------------------------------------------------------                      if (!GenericGetSystemAddressForMdl(mdl)) // can't map transfer segment           {                   KdPrint((DRIVERNAME " - Can't map memory for read or write\n"));                   ExFreePool(ctx);                   StartNextPacket(&pdx->dqReadWrite, fdo);                   CompleteRequest(Irp, STATUS_INSUFFICIENT_RESOURCES, 0);                   IoReleaseRemoveLock(&pdx->RemoveLock, Irp);                   return;           }           UsbBuildInterruptOrBulkTransferRequest(ctx,                   sizeof(_URB_BULK_OR_INTERRUPT_TRANSFER),                   hpipe,                   NULL,                   mdl,                   seglen,                   urbflags,                   NULL);           //---------------------------------------------------------------------------           // Set context structure parameters to pick up where we just left off           //---------------------------------------------------------------------------           ctx->va = va + seglen;           ctx->length = length - seglen;           ctx->mdl = mdl;           ctx->numxfer = 0;           //---------------------------------------------------------------------------           // Use the original Read or Write IRP as a container for the URB           //---------------------------------------------------------------------------           stack = IoGetNextIrpStackLocation(Irp);           stack->MajorFunction = IRP_MJ_INTERNAL_DEVICE_CONTROL;           stack->Parameters.Others.Argument1 = (PVOID) (PURB) ctx;           stack->Parameters.DeviceIoControl.IoControlCode = IOCTL_INTERNAL_USB_SUBMIT_URB;           //KdPrint((" \n TransferBufferMDL:        %x \n", ctx->UrbBulkOrInterruptTransfer.TransferBufferMDL));                      IoSetCompletionRoutine(Irp,                   (PIO_COMPLETION_ROUTINE) OnReadWriteComplete,                   (PVOID)ctx,                   TRUE,                   TRUE,                   TRUE);           IoCallDriver(pdx->LowerDeviceObject, Irp);           //KdPrint(("[ .StartIo] end"));   } //end:StartIo
    19. 只能全屏刷新
    20. 关于wince的API与WIN32的API 6/3732 嵌入式系统 2009-03-24
      是啊。真聪明。

最近访客

< 1/1 >

统计信息

已有98人来访过

  • 芯积分:--
  • 好友:--
  • 主题:13
  • 回复:48

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言