.Net MF新特性

以前看USB协议2.0的时候,有个认识上的误区,认为所谓的复合设备,必须是两个物理上相独立的USB设备(两个USB Device,两个USB地址,只是在同一条USB总线而已)。最近在开发.Net Micro Framewok的USB双接口功能时,才明白复合设备原来也可以是这样实现!

1为什么要实现双接口

有在.Net Micro Framework调试SideShow经验的用户,就会有特别深的感触,因为SideShow通信是基于USB,而大部分.Net Micro Framework调试口也是基于USB,由于只有一个接口,所以PC端要么安装SideShow驱动,要么安装.Net Micro Frame USB设备驱动,二者不能共存(当然让两个驱动共存,也可以设置不同的PID和VID,但是这样就需要在.Net Micro Frame开发板上进行相应的配置了),别说在线调试了,光编译下载,就不知道要折腾好几回。

所以对只有一个USB Debug口的开发板,要调试USB相关例程是非常痛苦的。

而USB双接口的方案就是为解决该问题而生。同时有两个USB接口,即可以安装两个不同的驱动,也可以在线调试USB例程。这是多么一个令人神往的特性,尤为可喜的是这已经不仅仅是个意境,现如今已成为现实。目前我们已经测试通过的有:Debug+Mass Storage(U盘),Debug+HID(鼠标),Debug+Application(应用口)。当然也可以根据需要配置成三个、四个设置或多个你任意想要的接口。


2 支持双接口,需要做些什么


.Net Micro Framework USB接口模型

第一、修改.Net Micro Framework的USB接口配置,把一个接口修改成两个接口;

第二、修改.Net Micro Framework的USB接口驱动,以前仅支持端点1和端点2,目前增加对端点3和端点4的支持。逻辑上接口1包括端点1和端点2,接口2包括端点3和端点4;

第三、修改PAL层接口,增加端点3和端点4的读写接口函数;

第四、编写P/Invoke接口,让C#程序也可以读写端点3和端点4的数据(端点1和端点2默认供调试程序读写用);

第五、修改.Net Micro Frame USB Windows驱动,让其支持双接口。(当然如果你的接口配置为HID或Mass Storage,那就不需要开发专门的驱动了);

第六、剩下的就是测试再测试了。

时间: 2024-08-04 07:51:42

.Net MF新特性的相关文章

Java9新特性——module模块系统

官方文档:https://docs.oracle.com/javase/9/index.html 关于 java9的新特性,官方原文:https://docs.oracle.com/javase/9/whatsnew/toc.htm 这玩意就是一个列表,具体的技术细节需要根据官方文档挖一挖. modular-模块系统 java9的模块化,从一个独立的开源项目而来,名为Jigsaw. 项目官网:http://openjdk.java.net/projects/jigsaw/ 为什么要使用模块化 j

iOS8新特性扩展(Extension)应用之四——自定义键盘控件

iOS8新特性扩展(Extension)应用之四--自定义键盘控件         iOS8系统的开放第三方键盘,使得用户在输入法的选择上更加自主灵活,也更加贴近不同语言的输入风格.这篇博客,将介绍如何开发一个第三方的键盘控件. 一.了解UIInputViewController类         UIInputViewController是系统扩展支持键盘扩展的一个类,通过这个类,我们可以自定义一款我们自己的键盘提供给系统使用.         首先,我们先来看一下这个类中的一些属性和方法:

Flash MX 2004新特性实例学习一

    Flash MX 2004的试用版终于可以下载了,它帮助文件中自带的例子很好地反映了2004中新增加的功能.下面我们通过学习这些例子的制作,来熟悉在2004中新增加的功能.这些例子都是从Flash MX 2004的帮助文档中来的.在我的windows2000中的保存路径是C:Documents and SettingsAdministratorLocal SettingsApplication DataMacromediaFlash MX 2004enConfigurationSampl

iOS11开发新特性

索引 iOS11开发新特性之网络部分 前言 ECN 什么是 ECN ? ECN 的实现细节 IPv6 Networking stack changes 网络协议分层 MutliPath TCP NEDNSProxyProvider WKWebView Cookie 管理 URLSession Adaptable Connectivity API URLSessionTask Scheduling API iOS11开发新特性之Xcode9 新特性 功能更全的 Git 支持 创建新的颜色 asse

【译】Java 8的新特性—终极版

文/杜琪(简书作者) 原文链接:http://www.jianshu.com/p/5b800057f2d8 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". 声明:本文翻译自Java 8 Features Tutorial – The ULTIMATE Guide,翻译过程中发现并发编程网已经有同学翻译过了:Java 8 特性 – 终极手册,我还是坚持自己翻译了一版(写作驱动学习,加深印象),有些地方参考了该同学的. Java 8 前言: Java 8 已经发布很久了,很

SQL Server 2005新特性

一.企业级数据管理 在当今的互联世界中,数据和管理数据的系统必须始终为用户可用且能够确保安全,有了SQL Server 2005,组织内的用户和IT专家将从减少应用程序宕机时间.提高可伸缩性及性能.更紧密的安全控制中获益.SQL Server 2005 也包括了很多新的和改进的功能来帮助企业的IT团队更有效率的工作.SQL Server 2005 包括了几个在企业级数据管理中关键的增强: 易管理 可用性 可伸缩性 安全性 1.易管理 SQL Server 2005 能够更为简单的部署.管理和优化

PHP5的XML新特性

php5|xml 面向的读者 这篇文章的面向对象是所有对PHP5的XML新功能感兴趣的各个水平的PHP开发者.我们假定读者掌握XML的基本知识.然而,如果你已经在你的PHP当中使用了XML,那么这篇文章也会让你受益非浅. 介绍 在当今的互联网世界,XML已经不再是一个时髦词了,它已经被广泛的接受和规范的使用了.因此相对于PHP4,PHP5对于XML的支持更受到了重视.在PHP4中你面对的几乎都是非标准,API中断,内存泄漏以及其它不完全的功能.尽管有些不足已经在PHP4.3中得到改进,开发者们还

ThinkPHP3.2.3数据库设置新特性

 前篇文章,我们总结了下ThinkPHP3.2中所产生的新变化,本文我们来详细看下关于数据库这块有哪些新特性,非常细致,有需要的小伙伴参考下.     ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用. 首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括:   代码如下: /* 数据库设置 */ 'DB_TYPE' => '', // 数据库类型 'DB_HOST' => '', // 服务器地址 'DB_N

jQuery 1.4:15个新特性和优化增强

jQuery 1.4 最近发布了. 超乎大家的预期,这次并非简单的修修补补,1.4 包含了很多新特性.功能增强和性能提升!本文即向您介绍这些可能对你十分有用的新特性和优化增强. 你可以立刻下载jQuery 1.4试用: http://code.jquery.com/jquery-1.4.js 1. 传参给 jQuery(-) 之前,jQuery可以通过 attr 方法设置元素的属性,既可传属性的名和值,也可以是包含几组特定 属性名值对 的 对象.在 jQuery 1.4 中,你可以把一个参数对象