array(2) {
["docs"]=>
array(10) {
[0]=>
array(10) {
["id"]=>
string(3) "428"
["text"]=>
string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(8) "DonetRen"
["tagsname"]=>
string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer"
["tagsid"]=>
string(23) "[401,402,403,"300",404]"
["catesname"]=>
string(0) ""
["catesid"]=>
string(2) "[]"
["createtime"]=>
string(10) "1511400964"
["_id"]=>
string(3) "428"
}
[1]=>
array(10) {
["id"]=>
string(3) "427"
["text"]=>
string(42) "npm -v;报错 cannot find module "wrapp""
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(4) "zzty"
["tagsname"]=>
string(50) "node.js|npm|cannot find module "wrapp“|node"
["tagsid"]=>
string(19) "[398,"239",399,400]"
["catesname"]=>
string(0) ""
["catesid"]=>
string(2) "[]"
["createtime"]=>
string(10) "1511400760"
["_id"]=>
string(3) "427"
}
[2]=>
array(10) {
["id"]=>
string(3) "426"
["text"]=>
string(54) "说说css中pt、px、em、rem都扮演了什么角色"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(12) "zhengqiaoyin"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(2) "[]"
["catesname"]=>
string(0) ""
["catesid"]=>
string(2) "[]"
["createtime"]=>
string(10) "1511400640"
["_id"]=>
string(3) "426"
}
[3]=>
array(10) {
["id"]=>
string(3) "425"
["text"]=>
string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "Ry-yuan"
["tagsname"]=>
string(33) "Javascript|Javascript执行过程"
["tagsid"]=>
string(13) "["169","191"]"
["catesname"]=>
string(0) ""
["catesid"]=>
string(2) "[]"
["createtime"]=>
string(10) "1511399901"
["_id"]=>
string(3) "425"
}
[4]=>
array(10) {
["id"]=>
string(3) "424"
["text"]=>
string(30) "C# 排序技术研究与对比"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(9) "vveiliang"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(2) "[]"
["catesname"]=>
string(8) ".Net Dev"
["catesid"]=>
string(5) "[199]"
["createtime"]=>
string(10) "1511399150"
["_id"]=>
string(3) "424"
}
[5]=>
array(10) {
["id"]=>
string(3) "423"
["text"]=>
string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(9) "penghuwan"
["tagsname"]=>
string(6) "算法"
["tagsid"]=>
string(7) "["344"]"
["catesname"]=>
string(0) ""
["catesid"]=>
string(2) "[]"
["createtime"]=>
string(10) "1511398109"
["_id"]=>
string(3) "423"
}
[6]=>
array(10) {
["id"]=>
string(3) "422"
["text"]=>
string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "chengxs"
["tagsname"]=>
string(28) "数据可视化|前端学习"
["tagsid"]=>
string(9) "[396,397]"
["catesname"]=>
string(18) "前端基本知识"
["catesid"]=>
string(5) "[198]"
["createtime"]=>
string(10) "1511397800"
["_id"]=>
string(3) "422"
}
[7]=>
array(10) {
["id"]=>
string(3) "421"
["text"]=>
string(36) "C#表达式目录树(Expression)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(4) "wwym"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(2) "[]"
["catesname"]=>
string(4) ".NET"
["catesid"]=>
string(7) "["119"]"
["createtime"]=>
string(10) "1511397474"
["_id"]=>
string(3) "421"
}
[8]=>
array(10) {
["id"]=>
string(3) "420"
["text"]=>
string(47) "数据结构 队列_队列实例:事件处理"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "idreamo"
["tagsname"]=>
string(40) "C语言|数据结构|队列|事件处理"
["tagsid"]=>
string(23) "["246","247","248",395]"
["catesname"]=>
string(12) "数据结构"
["catesid"]=>
string(7) "["133"]"
["createtime"]=>
string(10) "1511397279"
["_id"]=>
string(3) "420"
}
[9]=>
array(10) {
["id"]=>
string(3) "419"
["text"]=>
string(47) "久等了,博客园官方Android客户端发布"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(3) "cmt"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(2) "[]"
["catesname"]=>
string(0) ""
["catesid"]=>
string(2) "[]"
["createtime"]=>
string(10) "1511396549"
["_id"]=>
string(3) "419"
}
}
["count"]=>
int(200)
}
222
USB设备驱动程序导读(1) - 爱码网
随着USB设备的不断增加,我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说,存在以下三个困难: 一是对WinCE的驱动程序结构了解得太少,没办法得心应手的专注于驱动程序的开发工作; 二是对WinCE自带的USB驱动程序的例子没有弄懂,看到一大堆文件夹结构和源程序思维混乱; 三是几乎没有什么中文的参考资料,不知如何下手。
第三条是很多开发人员都遇到的,我也一样,很多朋友问我有没有什么资料,我也只能说抱歉,因为我也同样有这个问题,一切都靠自己的黑暗中摸索,因此本文不谈第三条。 第一条是可以找到资料的,如《Windows CE .NET系统分析及实验教程》,因此本文也不打算在此花费大量笔墨。 这样,本文的着重点就在第二条上面了,通过本文,我希望能让更多的朋友理解Windows CE下对USB设备的驱动模型及样例程序中的实现过程,以样例代码为基础理顺USB设备驱动程序的开发思路。同样,本文的读者对象预期是入门者和准备着手USB驱动开发的人员,驱动开发高手自然就当一笑吧。同时写本文的目的也是履行我半年前答应很多朋友的诺言,并向我的慵懒致歉。
好了,在看样例程序之前,我们还有些东西需要了解,我们就先来看下图:

在此图中,我们可以非常清晰的看到主机和物理外设之间的结构方式,在主机端,通过USBD模块和HCD模块使用默认的PIPE访问一个通用的逻辑设备,实际上就是说USBD和HCD是一组抽象出来的访问所有USB设备的逻辑接口,它们负责管理所有USB设备的连接、加载、移除、数据传输和通用的配置。其中HCD是主机控制驱动,是为USBD提供底层的功能访问服务,USBD是USB总线驱动,位于HCD的上层,利用HCD的服务提供较高层次抽象的功能。
由于HCD和USBD都是面向的一致的逻辑设备接口,那么对于各种各样的物理设备,就需要有唯一对应的设备驱动程序,这就是上图中最上层的特殊的PIPE所连接的物理设备和USB设备驱动程序。
有了对这个结构的认识,我们可以明确的是我们要写的就是最上端的USB设备驱动程序,在WINCE的样例程序中也称为USB Client Driver,它是工作于USBD之上,所以实际上我们的工作就变成了利用USBD提供的接口针对特定的物理设备来完成USB设备驱动程序,而暂时与其他的部分无关。
好了,先到这,接下来就准备看一些具体的东西吧!
|
相关文章: