搜档网
当前位置:搜档网 › 搭建驱动编译环境 DDKWizard+WinDDK+VS2005

搭建驱动编译环境 DDKWizard+WinDDK+VS2005

搭建驱动编译环境 DDKWizard+WinDDK+VS2005
搭建驱动编译环境 DDKWizard+WinDDK+VS2005

VS2005 + DDK + DDKWizard

环境的配置

1.为什么需要这些软件

相信大家都用过VC开发过应用程序,VC屏蔽了一些编译程序方面的繁琐的细节,给我们提供了一个方便快捷的编程环境。如果还要使用SDK开发程序,那么只需要安装SDK,并使用SDK程序里自带的环境注册工具就能自动配置VC的相关参数,我们同样不需要关心太多东西,只需要关注怎么编程即可。很遗憾,如果想写驱动,就不是这么容易了- -||,但搭建编程平台、让初学者成功编译并执行一个驱动程序是非常重要的,有不少初学者就是因为花了好几个小时都不能编译出驱动,而放弃Windows驱动编程的学习。其实搭建驱动编程环境并不难,只要按照特定步骤做即可完成。0.0

开发Windows驱动程序需要微软提供的DDK(Driver Development Kit)开发包,因为编译DDK程序需要特殊的编译程序,不能使用VC自带的编译程序,而且驱动程序的“工程参数”跟普通WIN32工程有很大的不同,以上这些原因可能就是微软不把DDK环境集成到VC中的原因。DDK开发包里面有编译驱动所需的头文件、库文件、编译程序、参考文档等相关文件,所以理论上编译驱动程序只需要“记事本+ DDK”就能写驱动了(至于用起来多蛋疼可想而知- -)。我们真正需要的是!!驱动工程向导!!,而不是命令行和记事本(真懒啊- -||)。

网上有两种驱动开发环境,一种是DriverStudio,另一种就是DDKWizard。这两款软件都提供驱动工程的工程向导,但前者和VC的接合度不高,所以在此我们选择DDKWizard作为驱动开发的向导工具。可能会有人问,VC6体积小、速度快,为什么偏要用VS2005?额…原因是DDKWizard不兼容VC6 - -||。综上所述,我们一共需要4款软件:

1.Visual Studio 2005(集成开发环境)

2.Driver Development Kit (编译驱动程序的核心全在这里了- -)

3.DDKWizard(需到https://www.sodocs.net/doc/277249586.html,/下载4个文件:ddkwizard_setup.exe、

ddkbuild_bat.zip、ddkbuild_cmd.zip、ddkwiz_manual.pdf)

4.Visual Assist X(编程时不可多得的好工具,能自动提示函数名、变量名以及函数参数等)(还是懒- -)

2.具体步骤

2.1.安装VS2005

图表 1 安装VS2005 2.2.安装DDK(我的目录是D:\WINDDK)

图表 2 安装DDK

2.3.安装DDKWizard

安装DDKWizard并将ddkbuild.bat 和ddkbuild.cmd 拷贝到DDK安装根目录。C:/WinDDK

图表 3 安装DDKWizard

2.4.配置DDKWizard环境变量

使用DDKWizard前,我们需要配置环境变量让DDKWizard知道DDK安装文件在磁盘中的位置。这个环境变量的名字跟DDK的版本有关:2000 DDK的变量名是W2KBASE、XP DDK的变量名是WXPBASE、2003 sp1 DDK的变量名应该是WNETBASE;而变量的值跟DDK版本无关,统一指向DDK安装目录。

我安装的恰好是XP DDK,并且安装在D:\WinDDK,所以环境变量的配置应该是

WXPBASE = D:\WinDDK\2600

图表 4 配置XP DDK对应的DDKWizard环境变量

2.5.配置VS2005文件包含选项

1.工具->选项->项目和解决方案->VC++目录->可执行文件:添加DDK的根目录,并且将其已移动到最顶端。

(例如我的是D:\WinDDK)

图表 5 给VS2005添加DDK的可执行文件目录

2.工具->选项->项目和解决方案->VC++目录->库文件:添加DDK的链接库,并且将其移动到最顶端。

(我的是D:\WinDDK\2600\lib\wxp\i386)

图表 6 给VS2005添加相关库文件目录

2.6.新建驱动工程注意事项

到此,我们就可以在VS2005中建立驱动项目了。启动VS2005并建立新项目,可以看到在Visual C++条目下增加了“DDK Project”选项,这就是建立驱动时需要用到的“工程向导”。

图表7 VS2005中新加入的DDK Project工程向导

并且要注意在新建Driver Object的时候,不要勾选“Create PREfast configuration”选项。

图表8 选择相应DDK并且不勾选“Create PREfast configuration”选项

2.7.修改SOURCE文件

这是编译前的最后一步了。工程建立后,工程目录下会自动添加一个名为“source”的文件,里面会有如下代码,我们需要对其进行修改。

# $Id$

TARGETNAME=EmptyDriver1

TARGETPATH=obj

TARGETTYPE=

# Create browse info

#BROWSER_INFO=1

#BROWSERFILE=

# Additional defines for the C/C++ preprocessor

C_DEFINES=$(C_DEFINES)

SOURCES=

1.“TARGETTYPE=”后面添加字符串“DRIVER”;

2.加入以下两行:

DDKROOT=C:/WINDDK/2600; #这里要和安装目录一样

INCLUDES=$(DDKROOT)/inc;

3.“SOURCES=”后面加上源文件名,比如:

SOURCES=Helloworld.c

2.8.编译工程

Anroid开发环境搭建实验报告

实验一A n d r o i d开发环境搭建 一、实验内容 1)了解Android开发所需要的开发包和工具,以及获得它们的方式; 2)下载、安装和配置Android开发包; 3)测试安装的开发环境,创建了一个Android项目; 4)在模拟器上运行和调试Android应用程序,并将该应用程序安装到Android手 机上。 二、实验步骤 1、参考《Android应用开发揭秘》的第一章,学习了解什么是Android系统以及Android的系统架构、Android应用程序框架; 2、参考《Android应用开发揭秘》的第二章,从FTP上下载java JDK和Eclipse 放在安装目录下,Eclipse直接将下载的压缩包解压即可。对于JDK双击安装,然后对java的开发环境进行配置:设置环境变量创建“Path”变量名,添加JDK安装目录中“bin”文件夹路径;创建“CLASSPATH”变量,添加JDK安装目录中“lib”以及“demo”的路径;最后进行测试是否安装成功。 4、安装完成后配置Android SDK,将Android SDK安装目录中的tools文件夹路径添加到环境变量中,更改系统变量中的“Path”项,添加路径: 5、安装和配置ADT,参照Android应用开发秘籍,启动Eclipse,点击“Help”菜单,按照步骤,在“Add Site…”之后,文本框里输入地址。打开菜单“Windows”,依次选择“Preferences”->“Android”,点击浏览选择Android SDK的安装路径,点击OK;然后打开菜单“File”,如下图查看得安装配置成功。 6、创建第一个Android项目HelloAndroid,新建项目,选择“Android Application Project”子项,如图。在“Project name”文本框输入“HelloAndroid”,“Build Target”选项框中选择“Android SDK ”,依次完成项目的设置,如下图。 HelloAndroid项目创建好,由ADT插件自动生成,可以运行。 7、运行HelloAndroid,使用Android仿真模拟器。选择Window,打开AVD Manager,新建一个AVD,选择API的等级为API 10,,填写SD卡的大小为2G,如图。 8、运行HelloAndroid项目 9、调试HelloAndroid项目,首先将Eclipse开发工具的工作界面切换到DDMS: 10、实验过程中发现的问题以及解决问题的方法 在安装Android SDK的时候,遇到信息“Failed to fetch URL…”的错误提示,然后将HTTPS方式改为HTTP方式,问题就解决了。

windows安装交叉编译环境

Duanxx的嵌入式学习: Win7安装交叉编译环境 ——Duanxx ——2015-09-15 ARM-linux的交叉编译环境,一般的教程都是在linux系统(比如ubuntu)上安装linaro的arm-linux-gnueabihf编译环境,然后再安装Eclipse和CDT,这样来实现交叉编译环境的安装。 我个人使用这种方法已经使用了几年了,因为我个人比较喜欢使用Linux系统(我使用的是CentOS),所以感觉很自然。但对于初学者而言,如果对linux系统不熟悉,这个方法非常的麻烦,仅仅是为了编译一个可以在ARM-linux上运行的elf文件,还要装虚拟机,学习linux系统的很多使用方法,挺麻烦的。 这两天试了一下在windows平台上安装交叉编译环境,成功了,这里将详细教程写下来,就当是做个记录。 目录 一、安装Eclipse (2) 二、安装CDT (3) 2.1Eclipse Marketplace 安装CDT (4) 2.2 Install New Software 安装CDT方案1 (4) 2.3 Install New Software 安装CDT方案2 (7) 2.4 手动安装CDT (9) 三、安装minGW (10) 四、安装Linaro ToolChain (10) 五、搭建交叉编译开发环境 (13) 六、RSE将可执行文件传输到ARM上 (26)

一、安装Eclipse Eclipse的下载网址是:https://www.sodocs.net/doc/277249586.html,/downloads/ 会有下面的这个网页,我打红色框的都可以直接使用,这里其实是无所谓的,因为Eclipse是基于插件的开发环境,如果只是为了开发C++的,可以考虑选择后面一个“Eclipse IDE for c/C++ Developers”。 Eclipse解压后就可以直接使用,见下图中的eclipse.exe,同时注意一下freatures和plugins文件夹。

实验一mini2440裸板驱动开发环境搭建.

实验一mini2440裸板驱动开发环境搭建 讲师:杨行 【实验目的】 1、了解minicom配置串口通信参数的过程,掌握利用minicom进行传输文件方法 2、了解网络文件系统nfs的配置,掌握利用nfs进行文件的传输和异地运行目标板程序 3、掌握tftp的使用方法 【实验原理】 一、安装编译器 1. mkdir /usr/local/arm 2. tar xjvf arm-linux-gcc-4.4. 3.tar.bz2 –C /usr/local/arm 3. vim /etc/profile + PATH=/usr/local/arm/4.4.3/bin:$PA TH 4. source /etc/profile 5. arm-linux-gcc -v 注意:1 Ubuntu 14.04 64位系统无法运行32位可执行文件,需要安装一个32位兼容库lib32z1 2Ubuntu 12.04 64位系统安装ia32-libs 3sudo apt-get install libstdc++6 4sudo apt-get install lib32stdc++6 二、minicom的使用 1. 安装:sudo apt-get install minicom 2. 配置:minicom -s 3. 使用: 命令: ctrl a + q quit ctrl a + w lineWrap ctrl a + z help 1、串口通信参数的设置 确认USB转串口工具是否已经连接到电脑上,如果连接到电脑上,则: ls /dev/ttyUSB0

如果已经确认了ttyUSB0已经存在,则: 首先运行minicom,由于minicom是通过串口来工作的,所以要通过minicom程序来对串口通信参数进行设置。启动minicom的设置窗口:在linux的终端中输入“minicom –s”,然后,按下回车键。 spring@spring-virtual-machine:~$ sudo minicom -s “-s”选项调出配置信息。下面显示的就是配置的菜单。

windowsXP下Android安卓开发环境搭建详细教程及图解

注:本教程是讲解在Windows XP下搭建安卓开发环境的。 安装目录: 步骤1 安装JDK 步骤2 安装Android SDK 步骤3 安装Tomcat 步骤4 安装Ant 步骤5 安装Eclipse 步骤6 安装Eclipse的ADT插件 步骤7 在图形界面下管理AVD 步骤8 设置Android系统语言 本教程的软件可以从我博客“绿杨芳草”下载。 方法/步骤 1、安装JDK 运行安装程序【jdk-6u22-windows-i586-p.exe】,分别点击下一步进行安装。 在安装过程中先后会出现两次选择安装目录的界面,全部改为以下路径: jdk安装目录:C:\Java\jdk1.6.0_22 jre安装目录:C:\Java\jre6\

安装好之后,配置环境变量: 打开环境变量窗口方法:右键【我的电脑】--单击【属性】--单击【高级】--单击【环境变量】。 在上方的用户变量中依次新建如下变量,并分别填入如下路径: 变量名:JAVA_HOME 变量值:C:\Java\jdk1.6.0_22 变量名:PATH 变量值:%JAVA_HOME%/bin 变量名:CLASSPATH 变量值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar 图1 配置完成之后,分别点击【开始】--【运行】--输入【cmd】--输入【javac】--按【回车键】,若看到以下信息,则代表配置成功。

图2 2、安装Android SDK 将【android-sdk_r17-windows.zip】解压到E:\Android目录下(Android目录自己新建,以后所有关于Android开发相关软件都会统一放到该目录中),得到一个android-sdk-windows 文件夹,该文件夹包含如下文件结构: add-ons:该目录下存放额外的附件软件。刚解压后,该目录为空。 platforms:该目录下存放不同版本的Android版本。刚解压后,该目录为空。 tools:该目录下存放了大量Android开发、调试的工具。 SDK Manager.exe:该程序就是Android SDK和AVD(Android虚拟设备)管理器。 通过该工具可以管理Android SDK和AVD。 运行E:\Android\android-sdk-windows目录下的【SDK Manager.exe】 然后等待更新...(该步骤必须联网,因为SDK安装包需要在线获取)。 在更新的过程中若遇到如下的提示窗口:

windows驱动开发和调试环境搭建

Windows驱动开发和环境搭建 【文章标题】: Windows驱动开发和调试的环境设置 【文章作者】: haikerenwu 【使用工具】: VC6.0,VMware6.0.3,Windbg 【电脑配置】: 惠普笔记本xp sp3 (一)VMWare安装篇 VMWare的安装一路Next即可,关于其序列号,百度一下就能找到,虚拟机安装完成之后,需要安装操作系统,我在虚拟机中安装的是windows xp sp2系统。 点击“文件”----“新建”----“虚拟机” 进入新建虚拟机的向导,配置虚拟系统参数

选择虚拟系统文件的兼容格式(新手推荐选择默认选项) 按照默认设置继续点击下一步,选择好您需要的操作系统,此处我选择的是Windows XP Prefessional。 设置虚拟机名称和虚拟操作系统安装路径,我单独空出来一个F 盘,将虚拟机和虚拟操作系统全部装在该盘。

配置网络模式(推荐选择NA T,一般主机不用做任何的设置虚拟机就可以利用主机上网)。 配置虚拟磁盘的容量。在这里可以直接单击完成,来完成基本操作设置,磁盘默认空间是8GB,用户可以根据自己的实际使用情况来调整大小,也可以自定义分区。

操作完成之后,在“VM”菜单下有个“setting。。。”菜单,点击此菜单,在CD-ROM中选择合适的选项,我使用的是Use ISO image 选项,将我的xp sp2操作系统的ISO映像路径设置好,安装操作系统。点击ok之后,启动虚拟机,即开始安装操作系统,安装过程跟普通装机过程相同。安装完成之后,启动操作系统,然后在VM菜单下点击“Install VMWare Tools”,把虚拟操作系统的驱动装好。 (二)VMWare设置篇

在Eclipse下搭建Android开发环境教程

在Eclipse下搭建Android开发环境教程 本文将全程演示Android开发环境的搭建过程,无需配置环境变量。所有软件都是写该文章时最新版本,希望大家喜欢。 我们昨天向各位介绍了《在NetBeans上搭建Android SDK环境》,前不久也介绍过《在MyEclipse 8.6上搭建Android开发环境》,都受到了读者的欢迎。但是很多朋友都认为NetBeans在中国用户不多,MyEclipse 又是收费产品,都没有Eclipse好,很多读者都希望我们介绍一下Eclipse下搭建的Android开发环境,本文将全程演示Android开发环境的搭建过程,无需配置环境变量。所有软件都是写该文章时最新版本,希望大家喜欢。 一相关下载 (1)Java JDK下载: 进入该网页: https://www.sodocs.net/doc/277249586.html,/javase/downloads/index.jsp (或者直接点击下载)如下图: 选择 Download JDK 只下载JDK,无需下载jre. (2)Eclipse下载 进入该网页: https://www.sodocs.net/doc/277249586.html,/downloads/ (或者直接点击下载:BT下载 HTTP下载)如下图:

我们选择第一个(即eclipse IDE for java EE Developers) (3)下载Android SDK 说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK 版本,后一种大概20多M,前一种70多M。 完全版下载 (android sdk 2.1 r01) 升级版下载 (建议使用这个,本例子就是使用这个这里面不包含具体版本,想要什么版本在Eclipse里面升级就行) 二软件安装 (1)安装jdk 6u19安装完成即可,无需配置环境变量 (2)解压eclipse eclipse无需安装,解压后,直接打开就行 (3)解压android sdk 这个也无需安装,解压后供后面使用 (4)最终有三个文件夹,如下图:

嵌入式交叉编译环境的搭建

实验二、嵌入式交叉编译环境的搭建 1、实验目的: 通过本实验使学生掌握交叉编译环境的建立,了解在S3C2440上交叉编译环境搭建的原理及步骤。 2、实验设备及说明 1、安装ubuntu10及vmware的计算机 2、天嵌2440的开发板 3、实验指导书 4、天嵌开发板的超级终端设置 5、天嵌开发板开发文档 6、TQ2440使用手册v2.3---20100125 3、实验内容和步骤 1、安装交叉编译器:EABI4.3.3 ●解压EABI 工具包 命令:tar zxvf /mnt/hgfs/(根据本机压缩包存储路径输入)/EABI 4.3.3.tar.gz –C / ##将压缩包解压到根目录下 ●添加路径至全局变量PATH中 命令:PATH=$PAHT:/opt/EmbedSky/4.3.3/bin (此路径应根据本机的具体情况输入) ●查看全局变量PATH 命令:echo PATH ###查看刚才的添加是否成功 ●查看交叉编译命令是否能够使用 命令:arm-linux-gcc –v ###如果刚才解压、添加变量成功,此时输入命令后,即可以显示命令的版本信息。

2、minicom

●在线安装minicom 命令:apt-get install minicom ●在命令行中键入“minicom”,这就启动了minicom软件。 ●Minicom在启动时默认会进行初始化配置minicom -s ?CTRL+A Z,来查看minicom的帮助 ?CTRL-A O配置minicom的串口参数,选择“Serial port setup”子项,上面列出的配置是minicom启动是的默认配置,用户可以通过键入每一项前的大写字母,分别对每一项进行更改.要对波特率、数据位和停止位进行配置,键入“E”,在该配置界面中,可以键入相应波特率、停止位等对应的字母,即可实现配置,配置完成后按回车键就退出了该配置界面。在确认配置正确后,可键入回车返回上级配置界面,并将其保存为默认配置。 ?

嵌入式操作系统实验一建立交叉编译环境

嵌入式操作系统实验一建 立交叉编译环境 Last updated on the afternoon of January 3, 2021

嵌入式操作系统实验报告 队友:张圣苗亚 实验内容 1、准备工作工作:安装virtualbox虚拟机工具,并安装系统、增强型工具,实现共享文件夹的自动挂载。 2、利用crosstool提供的脚本安装和相关资源编译面向的ARM的GCC工具。 详细内容1:安装虚拟机软件和虚拟机时要完成的主要步骤有:安装virtualbox,建立一台虚拟机,分配内存和硬盘,指定共享文件夹(主机和虚拟机可共同操作),指定操作系统镜像文件路径(相当于光盘,第一次启动时安装),安装虚拟操作系统,安装增强工具包,实现共享文件夹的自动挂载。有几点需要注意: 1、虚拟硬盘尽量分配大一些,之后再扩就比较麻烦。 2、共享文件夹不要有中文路径,不然挂载后看不到中文名称文件。 3、安装操作系统时,不能断网,需要下载各种资源,不然会异常。 详细内容2需要安装与脚本相关的工具,需要修改crosstool中的配置文件以指定编译的目标位arm-linux。需要修改需要的资源 实验步骤 实验准备: 在实验准备中,在安装完增强工具包()并重启之后,需要实现对共享文件夹的自动挂载,只需要修改etc目录中的配置文件,是很多linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务、程序等,都可以放在里面。 $sudomkdir/mnt/share $sudomount-tvboxsfembedded/mnt/shared 上面三句话实现了将共享文件夹embeded挂载到了share上。 gedit/etc/ 将第2句命令添加在exit之前,实现了自动挂载功能。 实验一 一、搭建编译环境 1、安装于脚本运行相关及其他的工具bison、flex、build-essential、patch、libncurses5-dev。

Windows驱动开发培训

Windows驱动开发培训 培训流程: 一、基础知识 在开始驱动开发之前,您应该知道操作系统原理以及驱动程序是如何在操作系统中进行工作的,了解这些基本原理将有助于您做出正确的设计决策并简化您的开发过程。 1、了解Windows操作系统构造\\ 可以链接进去 2、安装WDK,参考相关文档,熟悉WDK的内容\\ 可以链接进去 二、Windows驱动开发\\ 可以链接进去 一、基础知识 在开始驱动开发之前,您应该知道操作系统原理以及驱动程序是如何在操作系统中进行工作的,了解这些基本原理将有助于您做出正确的设计决策并简化您的开发过程。 1、了解Windows操作系统构造 (1)培训目标 深入了解Windows操作系统的系统结构以及工作原理 (2)培训内容 阅读书籍《深入解析Windows操作系统》的第3、4、6、7、9章,重点关注第九章“I/O系统” (3)培训任务 ①掌握Windows操作系统的系统结构 ②理解ISR、IRP、IRQL、DCP等概念的含义 ③了解注册表的用法,掌握注册表数据的查看和修改方法 ④了解进程和线程的内部机理以及线程的调度策略 ⑤了解I/O系统的内容,理解I/O请求以及I/O处理过程 注:以上相关内容,请在一周内完成。

2、安装WDK,参考相关文档,熟悉WDK的内容 (1)培训目标 了解WDK的安装过程,熟悉WDK的编译环境,掌握如何使用WDK的相关帮助文档;了解WDM驱动程序的基本结构 (2)培训内容 ①.阅读文档\\10.151.131.12\book\windows\MSWDM.chm,掌握WDM驱动程序的基本结构以及基本的编程技术。 ②.参考WDK的帮助文档:WDK documentation ,了解WDK的基本内容 (3)培训任务 ①理解分层驱动结构的含义,掌握设备和驱动程序的层次结构 ②理解“驱动对象”和“设备对象”的概念 ③理解2个基本例程:DriverEntry 和addDevice ④了解IRP的结构以及IRP处理的流程 ⑤初步了解I/O的控制操作 注:以上相关内容,请在一周内完成。 二、Windows驱动开发 学习如何基于WDK进行驱动程序的开发 1、培训目标 (1)学会根据WDK开发一个基本的Windows驱动程序和测试程序 (2)学会利用不同的IOCTL方式在内核模式和用户模式之间进行通讯 (3)学会如何在内核模式下和用户模式下访问注册表 (4)利用WinDbg跟踪程序,学会使用WinDbg进行调试 2、培训内容 (1)阅读\src\general\ioctl中的示例代码 (2)build并运行应用程序和驱动程序

驱动SYS开发总结 - stretch的专栏 - CSDNBlog

驱动SYS开发总结 1.驱动简介 1.1.驱动是什么 计算机的外部设备需要和计算机进行数据交换,生产外部设备的厂家如何使计算机和自己的设备交换数据呢,就是通过驱动程序,从设备中读入到计算机中,早期的Win3.1,Win9x设备驱动是vxd,Win NT是kdm, Win2k 统一发展成wdm模式。 1.2.sys文件 sys文件是驱动程序的可执行代码,其扩展名为.sys,驱动程序安装后保存在windows/system32/drivers目录中。 对于PnP设备,在设备插入后,sys文件会被windows装载到内存中,系统线程调用sys中的函数来和设备进行通信。 1.3.inf文件 inf文件是安装设备驱动程序时必须使用的文件,其扩展名为 .inf,驱动程序安装后保存在windows/inf目录中。 系统使用一个扩展名为INF的文本文件来控制与安装驱动程序相关的大部分活动。INF文件应该由驱动程序开发人员随驱动程序一起提供。通过INF文件可以告诉操作系统哪一个文件需要复制到用户硬盘上,应该增加或修改哪一个注册表项,如此等等。 inf中提供产品设备的产品id,以及对应的sys文件名,驱动class名, class guid, https://www.sodocs.net/doc/277249586.html,b-client driver HOST 与DEVICE, ENDPOINT与PIPE 我们进行的USB驱动开发大多数是usb-client driver,系统厂商大多数都已经把USB类驱动做好,我们则是在类驱动之上开发针对自己设备的驱动,习惯上称做usb-client driver,其在整个软件构架中地位如下:UHCD--USBD--USB CLIENT DRIVER--DLL OR APP usb-client driver仍然遵守WDM模型,是WDM驱动。因为要支持PnP,所以要很小心的处理自己的资源以及IRP, 随时准备处理拔出或者插入设备的情况; 电源处理不当也会使系统无法唤醒。 需要了解的知识:wdm,usbdi,our usedevice, wdm: 目标: a, 能提供接口函数, b, 能实现pnp,电源消息处理,wmi,i/o等处理, usbdi: urb,irp,等时,中断,控制,批传输的概念

android5.0初学者之开发环境搭建

1.JDK下载及安装 1.1进入下载首页,找到JDK,点击下载。 https://www.sodocs.net/doc/277249586.html,/technetwork/java/javase/downloads/index-jsp-138363.html Java Platform, Standard Edition之Java SE 8u25 includes: JDK (Java SE Development Kit); Server JRE (Server Java Runtime Environment); JRE (Java SE Runtime Environment); 点击“JDK下载”后进入下载页面: https://www.sodocs.net/doc/277249586.html,/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 勾选” A ccept License Agreement ” 后选择对应的JDK版本号,此处选择

1.2 下载完成后,双击安装。 默认安装路径为:C:\Program Files\Java\jdk1.8.0_25\和 C:\Program Files\Java\jre1.8.0_25\ 安装完成后按如下步骤添加环境变量:

步骤1:“开始”---> “计算机”---> “属性”打开如下窗口 “高级系统设置”---> “高级”---> “环境变量”打开环境变量配置窗口。 步骤2:在环境变量配置窗口中新建“系统变量”, 变量名:JAVA_HOME变量值:C:\Program Files\Java\jdk1.8.0_25 变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 编辑变量名为Path的环境变量的变量值,在原有基础上添加jdk1.8.0_25\bin路径和Android SDK的tools和platform-tools的文件夹路径。 ;C:\Program Files\Java\jdk1.8.0_25\bin;E:\Java\adt-bundle-windows-x86-20140702\sdk\tools;E:\Java\adt-bundle-windows-x86-20140702\sdk\platform-tools

ubuntu10.04全过程创建交叉编译环境

ubuntu10.04下建立交叉编译工具链(支持软浮点)全过程 参考了网上的不少的资料,花了五个小时终于完成了,记录下全过程供大家分享。 用到的源码包如下,建议新手全部放在/home/usr/downloads/ 目录下。以下操作在用户权限下进行。 ======================================================================= arm-linux-gcc-3.4.1.tar.gz glibc-2.3.3.tar.gz linux-2.6.8.tar.gz crosstool-0.43.tar.gz binutils-2.15.tar.gz glibc-linuxthreads-2.3.3.tar.gz binutils-2.18.tar.gz --安装用 编译一次至少要花半个小时,如果因为依赖软件没有安装中途会报错退出,只有从头再来,那样很浪费时间的。 sudo apt-get install bison flex build-essential patch libncurses5-dev 由于ubuntu10.04自带的ld ,as版本太高的原因,需要安装binutils的2.18版本,然后替换系统中的2.20版本。方法如下: $cd downloads $tar xzvf binutils-2.18.tar.gz $cd binutils-2.18 $./configure --prefix=/tmp/binutils --disable-nls (-prefix后面的是生成可执行文件存放的位置可以自己定义) $make all $make install 编译成功后在/tmp/binutils/bin/中就生成了ld和as程序的可执行文件 重新链接/usr/bin/ld 和/usr/bin/as文件 $sudo rm /usr/bin/ld /usr/bin/as //删除2.20的ld,as $sudo ln –s /tmp/binutils/bin/ld /usr/bin/ $sudo ln –s /tmp/binutils/bin/as /usr/bin/ 然后可运行ld –v 和as –v 查看版本是否为2.18。 安装2.18版本可解决出现的 ld as " version too old "问题。 2. ubuntu10.04下默认的GCC版本是4.4.3,但这个不是版本越高越好,版本太高,对语法什么的要求也高,编译不成功,降低版本吧: #sudo apt-get install gcc-4.1 //安装4.1的GCC,需要联网 #sudo rm /usr/bin/gcc //删除之前4.4.3的快捷方式,4.4.3的GCC并未删除#sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc //建立4.1的快捷方式 这是由于crosstool中定义了GCC的版本的上下线,最高也就到4.1,在其配置的时候会对这个版本信息进行检测,不在其规定范围就报错了。 3.修改sh版本 如果运行

Windows驱动开发入门

接触windows驱动开发有一个月了,感觉Windows驱动编程并不像传说中的那么神秘。为了更好地为以后的学习打下基础,记录下来这些学习心得,也为像跟我一样致力于驱动开发却苦于没有门路的菜鸟朋友们抛个砖,引个玉。 我的开发环境:Windows xp 主机+ VMW ARE虚拟机(windows 2003 server系统)。编译环境:WinDDK6001.18002。代码编辑工具:SourceInsight。IDE:VS2005/VC6.0。调试工具:WinDBG,DbgView.exe, SRVINSTW.EXE 上面所有工具均来自互联网。 对于初学者,DbgView.exe和SRVINSTW.EXE是非常简单有用的两个工具,一定要装上。前者用于查看日志信息,后者用于加载驱动。 下面从最简单的helloworld说起吧。Follow me。 驱动程序的入口函数叫做DriverEntry(PDRIVER_OBJECT pDriverObj,PUNICODE_STRING pRegisgryString)。两个参数,一个是驱动对象,代表该驱动程序;另一个跟注册表相关,是驱动程序在注册表中的服务名,暂时不用管它。DriverEntry 类似于C语言中的main函数。它跟main的差别就是,main完全按照顺序调用的方法执行,所有东西都按照程序员预先设定的顺序依次发生;而DriverEntry则有它自己的规则,程序员只需要填写各个子例程,至于何时调用,谁先调,由操作系统决定。我想这主要是因为驱动偏底层,而底层与硬件打交道,硬件很多都是通过中断来与操作系统通信,中断的话就比较随机了。但到了上层应用程序,我们是看不到中断的影子的。说到中断,驱动程序中可以人为添加软中断,__asm int 3或者Int_3();前者是32位操作系统用的,后者是64位用的。64位驱动不允许内嵌汇编。下面是我的一个helloworld的源码:

Android测试环境搭建

基本安装 一、Java JDK 1、Java JDK下载: 网页: https://www.sodocs.net/doc/277249586.html,/javase/downloads/index.jsp 选择 Download JDK 只下载JDK,无需下载jre.(因为按照JDK会自动按照jre) 2、JDK 运行 可以不安装在C盘(系统盘) 安装完成后 3、环境变量 如果只是运行eclipse不需要修改环境变量 如果要用到monkeyrunner需要设置环境变量(改系统环境变量),如下 新建系统环境变量JAVA_HOME ,设置为java安装地址"D:\Program Files\java\jdk1.6.0_33" PATH 增加 ";%JAVA_HOME%\bin" CLASSPATH = ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar",没有CLASSPATH需要新增

4、验证环境变量 java-version 如果装在C盘直接运行java-version 二、Eclipse 进入该网页: https://www.sodocs.net/doc/277249586.html,/downloads/下载解压缩后放在根目录,不要放在中文文件夹里面三、Android SDK

地址:https://www.sodocs.net/doc/277249586.html,/sdk/index.html 说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本,后一种大概20多M,前一种70多M。 解压android sdk 这个也无需安装,解压后供后面使用 Eclipse配置 一、安装android 开发插件 (1)打开Eclipse, 在菜单栏上选择 E:\eclipse-java-juno-win32-x86_64\eclipse下,可以创建桌面快捷方式help->Install New SoftWare 出现如下界面:

DDK驱动开发笔记

DDK驱动开发笔记 1、windows驱动分为NT式驱动和WDM式驱动,前者为非即插即用,后者为即插即用驱 动。需要头文件分别为NTDDK.h和WDM.h 2、驱动的入口函数均为extern "C" NTSTA TUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath),它由I/O管理器负责调用,前参数为传递进来的驱动对象,后参数为Unicode字符串,指向此驱动的注册表。 3、驱动程序向windows的I/O管理器注册一些回调函数,回调函数是由程序员定义的函数, 由操作系统负责调用,只要把地址告诉操作系统即可如:pDriverObject->DriverUnload=HelloDDKUnload; 4、使用CreateDevice函数创建驱动设备对象如:CreateDevice(pDriverObject);返回 NTSTA TUS类型 5、KdPrint是一个宏,用于打印输出信息,在Checked中会使用DbgPrint代替,在Free版 本中无效果,用法和TRACE一致。 6、Windows的设备管理是使用线性链表进行管理,每一个节点记录了设备对象的地址,每 次要对指定驱动进行操作,就必须先遍历设备对象链表。 7、设备对象函数NextDevice域记录下一个设备对象的地址,IoDeleteDevice用于删除设备 对象如:IoDeleteDevice(pDevExt->pDevice),IoDeleteSymbolicLink用于删除设备符号链接。 8、DDK环境编译驱动源程序,需要使用两个自己创建的脚本makefile和Sources,最好使 用二进制文本格式,makefile的内容固定为:!INCLUDE $(NTMAKEENV)\makefile.def。 sources文件记录了驱动的名称、驱动类型、编译输出目录、include目录、指定源文件。 编译好的文件会再工程目录的objchk_wxp_x86\i386文件夹里生成.sys文件。 9、对于使用其他编译环境,只能使用VS编译环境,vc6编译环境只能支持到win2000的 DDK。 10、配置VS+DDK+DDKWizard: 11、使用DriverMonitor安装驱动,对于NT驱动,在设备管理器中默认是隐藏的(可 更改),本软件用于测试驱动。 12、WDM中使用AddDevice回调函数创建设备对象并由PNP(即插即用plug and play) 管理器调用,然后设置对IRP_MJ_PNP的IRP(I/O Request Packages)的回调函数,对PNP的IRP处理是WDM和NT驱动的重大区别之一。在WDM程序中,大部分卸载工作放在对IRP_MN_REMOVE_DEVICE的IRP的处理函数中处理。 13、在WDM的驱动程序中,创建设备对象需要驱动程序向系统注册一个称作 AddDevice的例程,由PNP调用如:NTSTA TUS HelloAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject); 对象->AddDevice=HelloAddDevice; 14、WDM驱动的安装需要使用INF文件安装,其中编译的时候其Sources文件有所不 同。要安装WDM驱动,要先为驱动程序编写一个inf文件,该文件描述了驱动的操作硬件设备信息和驱动的一些信息,并存放在源文件的同一目录下。Inf的信息是提供给SDK使用的。 15、安装WDM驱动,由于该驱动是一个虚拟设备,因此需要使用添加硬件的方式使 用inf安装。快速安装的话可以使用DriverStudio的EzDriverInstaller工具直接安装。16、Windows系统的设计思想采用CS架构,内核到硬件之间使用HAL(硬件抽象层) 作为过渡。Native API穿越了用户层和内核层。为能将其他操作系统程序移植到windows

Android配置开发环境

1.下载需要用到的工具: (1)下载JAVA的IDE开发工具– Eclipse 到Eclipse官方网站下载Ecplise For Java EE的最新Windows版本 下载页面地址: https://www.sodocs.net/doc/277249586.html,/downloads/ 下载Ecplise (2)下载Java开发包— Java SE Development Kit (JDK) JDK 6 到Sun官方网站下载JDK6,选择JDK 6 Update 12 下载页面地址: https://www.sodocs.net/doc/277249586.html,/javase/downloads/index.jsp (https://www.sodocs.net/doc/277249586.html,/technetwork/java/javase/downloads/index.html)

下载JDK6 (3)下载Android开发包— Android SDK 到Google的官方网站下载Android的开发包For Windows的 下载地址:https://www.sodocs.net/doc/277249586.html,/android/android-sdk-windows-1.5_r2.zip 2.下载完需要的工具之后,开始安装 (1)安装Ecplise:下载回来的 Ecplise(eclipse-java-europa-winter-win32.zip)直接解压即可 (2)安装JDK6:运行下载回来的JSK安装包(jdk-6u12-windows-i586-p.exe)一路”下一步”即可(版本可能会有所不同) (3)安装Android开发包(SDK):下载回来的SDK包 (android-sdk-windows-1.5_r2.zip)直接解压即可 3.让Ecplise自动安装Android开发插件(ADT- plugin) (1)启动安装完(解压)后的Ecplise目录下的Ecplise.exe (2)点击菜单”Help”->”Software Updates”,在打开的窗口中切换到选项 页”Availabe Software”

从零开始搭建Linux驱动开发环境

参考: 韦东山视频第10课第一节内核启动流程分析之编译体验 第11课第三节构建根文件系统之busybox 第11课第四节构建根文件系统之构建根文件系统韦东山书籍《嵌入式linux应用开发完全手册》 其他《linux设备驱动程序》第三版 平台: JZ2440、mini2440或TQ2440 交叉网线和miniUSB PC机(windows系统和Vmware下的ubuntu12.04) 一、交叉编译环境的选型 具体的安装交叉编译工具,网上很多资料都有,我的那篇《arm-linux- gcc交叉环境相关知识》也有介绍,这里我只是想提示大家:构建跟文件系统中所用到的lib库一定要是本系统Ubuntu中的交叉编译环境arm-linux- gcc中的。即如果电脑ubuntu中的交叉编译环境为arm-linux-

二、主机、开发板和虚拟机要三者互通 w IP v2.0》一文中有详细的操作步骤,不再赘述。 linux 2.6.22.6_jz2440.patch组合而来,具体操作: 1. 解压缩内核和其补丁包 tar xjvf linux-2.6.22.6.tar.bz2 # 解压内核 tar xjvf linux-2.6.22.6_jz2440.tar.bz2 # 解压补丁

cd linux_2.6.22.6 patch –p1 < ../linux-2.6.22.6_jz2440.patch 3. 配置 在内核目录下执行make 2410_defconfig生成配置菜单,至于怎么配置,《嵌入式linux应用开发完全手册》有详细介绍。 4. 生成uImage make uImage 四、移植busybox 在我们的根文件系统中的/bin和/sbin目录下有各种命令的应用程序,而这些程序在嵌入式系统中都是通过busybox来构建的,每一个命令实际上都是一个指向bu sybox的链接,busybox通过传入的参数来决定进行何种命令操作。 1)配置busybox 解压busybox-1.7.0,然后进入该目录,使用make menuconfig进行配置。这里我们这配置两项 一是在编译选项选择动态库编译,当然你也可以选择静态,不过那样构建的根文件系统会比动态编译的的大。 ->Busybox Settings ->Build Options

Android4.0开发环境搭建

Android开发环境搭建 在网上找各种解决办法,无奈,都是互相转帖,要错大家一起错,而且都是老版本的安装方法,虽然没有太大差别,但小的差异还是搞得人很头痛,因为有时候就是一点不同就要找好长时间解决方法,我现在把我的安装历程发布出来,供大家分享,当然版本再更新的话我也不能保证就完全正确,只能保证现在的版本完全没问题。因为现在的android版本与原来的版本有一定的区别,所以我在2.2的基础上改了一下,现在可以安装到4.0 安装JDK 这个在上一篇中已经介绍过了,注意JDK的版本为1.5或者1.6都可以就行了,推荐使用1.6版本,因为它要比以前快得多。还有JAVA_HOME的设置。用set JAVA_HOME命令检查一下就行了。 SDK 4.0安装 今年Google离开大陆,导致登陆他们的网站会比较麻烦,一般情况下是登陆不上去的,需要翻墙,大家都懂的,我不多说,如果能登上 https://www.sodocs.net/doc/277249586.html,/sdk/index.html那是最好,如果登不上也没关系,能下的地方好多,上百度上搜有很多,而且下载都很快,我下载的是 android-sdk_r07-windows.zip,一下安装也是以它为例。 下载好后,随便解压到一个地方,目录结构如图所示:

此处SDK Manager.exe和以前版本略有区别,以前是SDK Setup.exe,功能都一样,双击它。(我们下载的也不是完整的SDK,只是一个安装SDK的工具) 双击之后我们会看到如下的界面: 左侧是我们要安装的SDK目录,如果你的网络够快而且空间不是特别少的话,选择Accept All,然后Install,开始漫长的在线安装:

交叉编译环境的搭建简介(精)

交叉编译环境的搭建简介 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture、操作系统(Operating System。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。 有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。 交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码编译(compile成计算机可以识别和执行的二进制代码。比如,我们在Windows平台上,可使用Visual C++开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC 平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,中文可理解为本机编译。然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和 运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。这种情况下,在ARM 平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain需要很大的存储空间,并需要很强的CPU 运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储控件足够的主机平台上(比如PC上编译出针对其他平台的可执行程序。

相关主题