#osrusbfx2
Based on "OSRFX2 Learning Kit" + "CY001 learning Kit", added more with my idea to demo how-to learning writing host drivers for USB devices on Windows & Linux.
# 为何要写这个东东 / Why write this
诸位学习主机(host)侧USB驱动开发的同仁,想必在学习过程中一定也有鄙人相同的经历感受。那就是手头如果有一块USB的开发学习板,那效率一定会高很多。所以在下当时也是出于此目的在网上买了张佩大侠提供的配合《竹林蹊径:深入浅出windows驱动开发》的学习板CY001,以作学习的用途。
Hi, every buddy, are you learning write host side USB drivers? If yes, I hope you would feel great if you have one USB learning-board at hand the same time. I bought one (CY001 from ZhangPei) and being enjoy it very much.
我对驱动的学习是从Wiindows平台开始的,毕竟PC上Windows仍是霸主。在学习USB驱动开发时鄙人有一个重要的体会是:微软WDK中提供的例子是最值得仔细研习的。USB驱动相关的例子中尤以osrusbfx2这个例子最为经典。osrusbfx2是配合著名的OSRFX2学习板精心编写的一套例子。非常适合Windows上学习USB驱动开发的朋友入门学习用。不光是入门用,平时也会常常参考。据说微软WDK开发小组的程序员也要经常用OSRFX2的板子来做测试呢(具体在哪里看到的忘记了),可见其重要性。
I began my career on USB driver writing on Windows, and I think many of people the same due to Windows is the most popular on PC and the USB samples from MS-WDK are the most valuable for us freshman, especially the classical osrusbfx2 sample. osrusbfx2 is a USB driver sample provided together with the famous OSRFX2 learning board. I ever heard MS WDK team also use this board to verify and test the WDK self (not very clear where I saw this but it should be true :)). So do you feel the importance of this board and the osrusbfx2 sample?
接下来,众所周知的原因,对于中国大陆的程序员来说OSR的那块板子是在是贵了点。所以我手上有了CY001之后就有了个想法:能不能将CY001改造一下,模拟成OSRFX2呢。它们两的物理基础实际上相差并不大啊。
Next, as we all know, the OSRFX2 learning board looks a bit expensive to me (I'm from PRC mainland), but I have CY001 and I thought if I can modify CY001 to simulate OSRFX2. Anyway these two boards use the same USB chipset and have some common peripherals.
再接下来就有了这个项目。所以如果你手头有CY001,又想学习WDK的OSRUSBFX2例子,那不妨试试阅读以下我写的这个玩意。其实在设备(Device)侧,如果你没有CY001,但只要有任何一块基于Cypress的FX2系列USB芯片的学习开发板(大陆做这种开发板的貌似不少,淘宝上可以搜搜),同时你对修改设备的固件也有兴趣,都可以按照相同的思路尝试以下。我的这个就当是抛砖引玉了吧。
And the next, I made this project. If you have one CY001, or any other USB learning board which is based off Cypress FX2 USB chipset and you have interest in modifying device firmware, you can have a try as me. Hope my work here act as a good reference and be initial step for you.
其实OSRUSBFX2这个例子对在Windows平台以外的系统上学习USB驱动开发也是很有帮助的,以Linux为例,一样的受用。而且在Windows上学好USB驱动开发后再回过头去看Linux上的USB驱动开发,也是大有裨益。毕竟微软人家也是USB协议的主要发起者之一啊。
I also ported osrusbfx2 sample to Linux, if you love Linux more than Windows, check this out.
# 目录结构 / Directory
+ osrfx2fw - CY001(基于Cypress EZ-USB FX2LP)的固件Keil工程源代码。已经过修改模拟OSRFX2学习板
- [README](./osrfx2fw/README.md): 介绍了如何基于CY001模拟OSRFX2。
+ windows - Windows版本的源代码和相关文件。已经过修改以适配CY001与实际的OSRFX2学习板的不同。
- drivers - 驱动安装包。目前只提供了x86的版本。
* [README](./windows/drivers/README.md)
- drvinst - 驱动安装和卸载程序,演示DIFxAPI和SetupAPI的典型用例。
* [README](./windows/drvinst/README.md)
* [(原创)Windows设备和驱动的安装](./windows/drvinst/device-and-driver-installation.md)
- osrusbfx2 - WDK的osrusbfx2例子,经过修改适配CY001。
* [README](./windows/osrusbfx2/README.md)
* [(原创)学习笔记-Developing Drivers with the Microsoft Windows Driver Foundation](./windows/osrusbfx2/doc/note-DDMWDF.md)
* [(原创)Step by Step, 为OSRFX2创建一个KMDF驱动程序](./windows/osrusbfx2/doc/Building-KMDF-Driver-for-OSRFX2.md): 一个基于osrusbfx2例子的小教程。
+ linux - Linux版本的源代码和相关文件。
- doc - 文档
* [(原创)Linux USB 设备驱动](./linux/doc/ludd.ppt):小教程-如何开发一个主机侧的内核USB设备驱动
* [(原创)学习笔记-Linux Device Drivers, 3rd Edition](./linux/doc/learning-ldd3/notes.md)
- driver - 最终的驱动(TBD)
- exe - osrfx2的测试应用程序
- include - 公共头文件
- scripts - 脚本形式的测试程序(python/shell)
- step1 ~ step5 - Step by Step的示例代码
- [README](./linux/README.md)
更详细的说明可以参考各分目录下的说明文件。
# 联系方式 / Contact
**Email: unicorn_wang@outlook.com**
**Blog: http://unicornx.gitcafe.io/**
# 下载和访问 / Download
该项目的所有文档和代码都上传到GitHub,大家如果熟悉GitHub可以上Github观赏并联机提出宝贵意见。地址是: https://github.com/unicornx/osrusbfx2
下载该项目的方法 / Download Method:
mkdir yourworkspacefolder
cd yourworkspacefolder
git clone https://github.com/unicornx/osrusbfx2.git
该项目另一个发布的平台(another publish window)在“图灵社区” - "osrusbfx2 - Step by Step USB驱动开发"
http://www.ituring.com.cn/minibook/726
enjoy it! :)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
一个别人的资源,是个linux环境下usb设备驱动开发的“入门到精通”,里面有5个逐步深入的例子。 其中最后一个例子step 5 是个通用驱动,应用层打开驱动设备文件,如同用串口设备一样简单就能读取到usb数据,usb应用层包协议可以自己定。 因为linux驱动屏蔽硬件层,并且该设备不是什么标准设备,所以没有类似IIC、网卡驱动那样一层层的内核封装,直接投递到应用层 文件里包含LDD3《linux device driver 3》书源代码
资源推荐
资源详情
资源评论
收起资源包目录
Linux下usb设备驱动开发5部曲 (141个子文件)
osrfx2.c 52KB
osrfx2.c 45KB
osrfx2.c 44KB
osrfx2.c 24KB
osrfx2.c 22KB
osrfx2.c 18KB
snull.c 18KB
short.c 17KB
main.c 16KB
main.c 15KB
tiny_tty.c 15KB
main.c 14KB
main.c 14KB
main.c 14KB
shortprint.c 14KB
pipe.c 11KB
access.c 11KB
sbull.c 10KB
usb-skeleton.c 9KB
jit.c 7KB
osrfx2.c 7KB
tiny_serial.c 6KB
silly.c 6KB
jiq.c 6KB
skull_init.c 6KB
simple.c 6KB
lddbus.c 4KB
outp.c 4KB
mmap.c 3KB
mmap.c 3KB
inp.c 3KB
mmap.c 3KB
mmap.c 3KB
kdataalign.c 2KB
netifdebug.c 2KB
mapper.c 2KB
sleepy.c 2KB
complete.c 2KB
dataalign.c 2KB
seq.c 2KB
faulty.c 2KB
mapcmp.c 2KB
setlevel.c 2KB
kdatasize.c 1KB
asynctest.c 1KB
setconsole.c 1KB
datasize.c 1KB
polltest.c 1KB
nbtest.c 1KB
pci_skel.c 1KB
hellop.c 1KB
load50.c 925B
hello.c 463B
hello.c 463B
skull_clean.c 336B
gdbline 417B
get_7segment 655B
get_bargraph 655B
get_switches 652B
LDD3-examples.tar.gz 76KB
scull.h 5KB
sculld.h 4KB
scullc.h 3KB
scullv.h 3KB
scullp.h 3KB
public.h 2KB
sbull.h 2KB
snull.h 1KB
shortprint.h 1KB
lddbus.h 855B
scull.init 3KB
LICENSE 1KB
Makefile 3KB
Makefile 3KB
Makefile 3KB
Makefile 3KB
Makefile 3KB
Makefile 3KB
Makefile 3KB
Makefile 987B
Makefile 782B
Makefile 739B
Makefile 739B
Makefile 739B
Makefile 732B
Makefile 716B
Makefile 699B
Makefile 696B
Makefile 682B
Makefile 682B
Makefile 681B
Makefile 507B
Makefile 502B
Makefile 297B
Makefile 289B
Makefile 223B
Makefile 212B
Makefile 208B
Makefile 5B
notes.md 30KB
共 141 条
- 1
- 2
资源评论
lzwml
- 粉丝: 20
- 资源: 67
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLO-yolo资源
- 适用于 Java 项目的 Squash 客户端库 .zip
- 适用于 Java 的 Chef 食谱.zip
- Simulink仿真快速入门与实践基础教程
- js-leetcode题解之179-largest-number.js
- js-leetcode题解之174-dungeon-game.js
- Matlab工具箱使用与实践基础教程
- js-leetcode题解之173-binary-search-tree-iterator.js
- js-leetcode题解之172-factorial-trailing-zeroes.js
- js-leetcode题解之171-excel-sheet-column-number.js
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功