zoukankan      html  css  js  c++  java
  • RNDIS项目手记

                        ---------------by nasiry 
                                         转载请说明出处,并通知我

    原来的驱动的USBDevice 配置状态
    END POINT
    1.EP0控制
     MAX PACKET SIZE-8BYTE
     AUTO CLEAR
    2.EP1控制
     MAX PACKET SIZE-64BYTE
     MODE = IN;
     TRANSMODE =BULK
    3.EP4控制
     MAX PACKET SIZE-64BYTE
     MODE = OUT
     TRANSMODE =BULK
     TRANSFER COUNTER = BUFFER SIZE
     UNIT CONUTER = 1BYTE
     DMA WRITE (OUT)
     ENABLE DMA MODE
     DISABLE DEMAND MODE
     DMA READ DISABLE(IN)

    4.EP3.EP2没有使用

    DMA3配置
     1.使用DMA3做bulk传输
     2.源APB(见usb DEVICE总线连接方式) fix模式  源地址为EP4的物理地址
     3.目标AHB(内存),increase模式 目的地址直接使用全局驱动保留区中DMA3缓冲区
     4.协议:handshake mode,request from APB,current terminal count enable,no burst,single service,source =USBD,Hardware source,no_autoreload,byte transfer,Current terminal count
    拟定配置
    1.EP0控制
     MAX packet size = 8
     autolclear   enabled
    2.EP1数据输出
     MAX packet size = 64byte
     mode =in
     transmode = bulk
     interrupt =yes
     DMA       =No
    3.EP2中断控制(输出)
     max packet size =sizeof(INTERRUPT_DATA)
     mode =in
     transmode =interrupt
     interrupt =No
    4.EP4数据输入
     max packet size =64byte
     mode =out
     transmode = bulk
     DMA =disabled
     interrupt =yes

    调试编译环境

    使用WindowsCE提供的编译环境

    将项目加入bootload的代码中执行,以调试。

    需要对eboot做修改

    1.增加从0x0到0x0的映射
    2.开启eboot的中断
    3.eboot的自举


    原定使用0x0到0x0的映射,由于编译器自动占用image的最前端4k字节,所以不能直接使用0x0安装中断向量。改为使用0x3000 0000映射到0x0从内存装载中断向量。

    问题1。
    使用了mdd后由于mdd使用了内核函数NKCreateStaticMapping(定义在PRIVATE\WINCEOS\COREOS\NK\KERNEL\ARM\mdarm.c下),而eboot定义了很多与内核函数重名的函数,由此使得eboot不能直接使用nk.lib参与链接,该函数需要另外实现。PCIGetBusDataByOffset由于本身不使用该函数,直接去掉mdd中对该函数的调用。


     

  • 相关阅读:
    数据库语句学习(union语句)
    终于开通博客了啦
    Winform用Post方式打开IE
    Winform webbrowser 隐藏 html 元素
    MVC 附件在线预览
    典型用户和场景
    我的第一篇博客01
    大数据算法摘录
    mac下查看端口占用情况
    tomcat的运行脚本
  • 原文地址:https://www.cnblogs.com/nasiry/p/44108.html
Copyright © 2011-2022 走看看