驱动开发入门_linux驱动开发入门 - CSDN
精华内容
参与话题
  • Windows驱动开发入门 -- HelloWorld

    千次阅读 2019-03-13 09:48:38
    一、驱动开发环境搭建 在Download the Windows Driver Kit (WDK)页面中下载最新版本的Visual Studio和WDK进行安装。如果要下载老版本可以到Other WDK downloads下载。 本文演示环境为:Visual Studio 2017版本,WDK ...

    一、驱动开发环境搭建

    Download the Windows Driver Kit (WDK)页面中下载最新版本的Visual Studio和WDK进行安装。如果要下载老版本可以到Other WDK downloads下载。

    本文演示环境为:Visual Studio 2017版本,WDK for Windows 10 17740。其他版本亦可。

    二、Hello Word工程

    在Visual Studio中选择Visual C++ -> Windows Driver -> Empty WDM Driver模板,新建一个空的WDM驱动项目,如图:
    在这里插入图片描述
    由于是简单的HelloWorld驱动,故删除用于驱动安装的inf文件,即HelloWorld.inf。
    新建test.c文件,切记是.c文件,不是.cpp,内容如下:

    #include <ntddk.h>
    
    VOID Unload(PDRIVER_OBJECT DriverObject) {
        UNREFERENCED_PARAMETER(DriverObject);
        KdPrint(("Driver Unload\n"));
    }
    
    NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) {
        UNREFERENCED_PARAMETER(DriverObject);
        UNREFERENCED_PARAMETER(RegistryPath);
    
        KdPrint(("DriverEntry\n"));
    
        DriverObject->DriverUnload = Unload;
    
        return STATUS_SUCCESS;
    }
    

    DriverEntry是驱动的入口函数,Unload是注册的驱动卸载函数,在驱动被卸载时,会调用这个函数进行清理操作,这2个函数组成了一个最简单的驱动。
    KdPrint是日志输出函数,相当于应用层的OutputDebugString,输出内容同样可以使用DbgView查看。

    在Visual Studio中选择对应配置进行编译即可。需要注意的是如果需要编译Windows XP和Windows 7平台的驱动,需要在Driver Setting -> Target OS Version中选择Windows 7,如图:
    在这里插入图片描述

    三、驱动安装和测试

    Helloworld.sys拷贝到对应的操作系统(建议使用虚拟机进行测试,防止系统蓝屏导致数据丢失),要注意32位驱动只能用在32位系统,64位驱动只能用在64位系统。

    打开Dbgview,在“Capture”菜单中选中如下项,进行内核日志捕获:
    在这里插入图片描述
    启动KmdManager选择驱动文件,依次点击“Register”,“Run”,驱动便被安装,此时可以在Dbgbiew中看到KdPrint输出的相应日志。如果需要卸载驱动需要依次点击“Stop”,“Unregister”。

    如果KmdManager安装驱动时出现如下提示,需要检查驱动的位数和系统环境是否一致。
    在这里插入图片描述

    本文介绍的只是一个最简单的Helloworld驱动,所以演示的时候是使用KmdManager工具进行安装卸载。

    展开全文
  • Windows驱动开发如何入门

    千次阅读 2018-11-07 09:53:24
    搞Windows驱动开发是一件痛苦的事情,特别是初学Windows驱动开发。有的人觉得Windows驱动开发就是把开发包WDK下载下来,然后只要掌握了C/C++语言,接下来无非就是类库调来调去,像调用MFC、QT之类的库那样,看着书和...

    搞Windows驱动开发是一件痛苦的事情,特别是初学Windows驱动开发。有的人觉得Windows驱动开发就是把开发包WDK下载下来,然后只要掌握了C/C++语言,接下来无非就是类库调来调去,像调用MFC、QT之类的库那样,看着书和MSDN上的文档来就行了。等真正接触以后才发现根本不是那么一回事,痛苦源于以下几点:

    痛苦一:中文资料太少
    讲Windows驱动开发的,无论是中文书籍还是网上的中文资料,都很少,手把手从零到精通的更是不用说了。仅有的少量中文资料,有的还比较旧,讲的是DDK、NT式驱动,新手拿着WDK8.1、WDK10面对Win8、Win10系统很难跟着学习,而且现在的WDK,在WDM上又出现了了WDF,而WDF又分KMDF(内核模式驱动)和UMDF(用户模式驱动),对于UMDF(用户模式驱动)中文资料就更少了。而且驱动开发不像应用开发,需要先对操作系统原理有一定了解,不然遇到“I/O管理器”、“输入输出请求包”、“软件中断”、“符号链接”、”派遣函数“等名词和概念都不知所云,是寸步难行的。

    解决方法:
    ①其实MSDN上已经提供了大量的文档和示例程序,对KMDF、UMDF等进行了详细的讲解,甚至还提供了手把手教你来的视频教程,可惜它们都是英文的,对于我等英语不好的程序员来说真是坐车不买票——白搭。最近越来越觉得英语不好是阻碍一个程序员进步最大的绊脚石,我们不谈什么算法,不谈什么数学功底了,首先要成为一个合格的码农,需要熟练使用各种编程语言和对应的各种工具库,而大部分的库都只有英文文档,不能流畅阅读这些文档的话,寸步难行。在成为了合格的码农,能熟练使用各种现成的工具库搭积木般的开发出应用程序后,才能去谈各种算法,各种数学知识的代入,才能去谈如何从一个码农升级为软件工程师。显然,当前摆在我面前最迫切的问题是如何成为一个合格的码农,先养活自己,再去考虑如何为社会主义做贡献,如何推动人类科技进步。学习英语确实应该赶快提上日程并立即执行、坚持执行了。英语好的人真的是把WDK拿来就像用MFC那样轻松,看着文档和示例程序,那些个API调来调去,一个完整的驱动程序就出来了。这不是吹牛,我之前在一家公司工作的时候,公司有个项目的一个模块需要在Ring0上实现,需要编写Windows内核驱动,然而公司里没有一个人会,于是老大将这个模块交给了他的一个朋友去做。他的这个朋友是中国人,在美国微软总部工作,英语水平怎么样就不用说了,总之人家以前从来没搞过驱动开发,看了文档和示例代码后,利用3天的业余时间就完成了这个模块,拿到了15K RMB的报酬,着实让人佩服,让人羡慕。真的,学好英语,不说“听说写”,只要能流畅阅读各种英文技术资料,完全是另一个世界,学什么、做什么都得心应手。
    MSDN上的驱动开发资料入口:https://msdn.microsoft.com/zh-cn/windows/hardware
    MSDN上手把手教你来的视频教程:https://msdn.microsoft.com/zh-cn/windows/hardware/gg454522

    ②抓住仅有的几本中文书籍,细细研读。关于Windows驱动开发的中文书籍大概有那么几本:
    《Windows驱动开发技术详解》(强烈推荐先看这本)
    《WindowsWDM设备驱动程序开发指南》(比较老了,2000年出版的,以win98、win2000为目标系统)
    《Windows设备驱动程序WDF开发》(为数不多讲WDF的)
    《Windows 7设备驱动程序开发》(为数不多讲WDF的,且比较新,这本书的英文版是2010年出版的,中文译版是2012年出版的)
    《竹林蹊径:深入浅出windows驱动开发》
    《寒江独钓:Windows内核安全编程》
    《天书夜读:从汇编语言到Windows内核编程》
    《Windows内核安全与驱动开发》(是《天书夜读》和《寒江独钓》的合订本以及升级版)
    后面的这四本其实不太适合作为入门书籍,而适合作为进阶书籍,对一些基础的概念和原理的讲解没有《Windows驱动开发技术详解》那么多

    痛苦二:开发工具链不好用
    对于我等刚学编程时用的就是VisualStudio以及各种智能提示智能感知的插件,甚至还有代码生成器的辅助的程序员来说,习惯了VisualStudio傻瓜化的一切,代码可以自动生成,窗体应用程序可以拖控件,甚至连网页都能拖控件。很难接受只有文本编辑器和命令行工具的开发环境,很多时候连代码编辑器不能智能提示都无法忍受,更不说手动调用cl.exe link.exe,写起代码来就像有一万只蚂蚁在身上爬。
    在之前很长的一段时间里,VC6.0和VisualStudio里是没有创建驱动项目的选项的,更没有直接由IDE生成的HelloWorld,如果不想手动cl.exe link.exe,如果想在IDE中写代码,需要自己建一个空项目,然后手动配置编译器指令、链接器指令、包含目录、库目录等等,然后把书上的HelloWorld复制过来,然后可能还会遇到各种问题。生成好驱动程序文件后,还要手动拷贝到虚拟机中,借助工具或inf文件手动安装,然后要改系统配置,进入内核调试模式,然后要设置调试接口,比如使用COM串口调试的话要在虚拟机上设置,把COM串口映射到主机的命名管道,然后还不能在VC中调试,只能用Windbg来调试。总之每修改一下代码,需要手工进行很多步骤才能开始调试,非常麻烦。而且即便照着网上或书上的步骤来配置,在不同的环境下也会遇到各种奇怪的问题,搞起来颇为头疼。

    解决方法:
    ①有个名为VisualDDK的第三方软件,使得这个事情方便了很多。VisualDDK装好后会给VisualStudio安装一个插件,使得在VisualStudio中可以通过这个插件新建驱动项目,并且自带HelloWorld,然后把VisualDDK Monitor装到虚拟机中,两边配置一下,接下来只要在VisualStudio这边生成驱动文件,VisualDDK会自动传给虚拟机中的系统进行安装,并且可以直接在VisualStudio中下断点调试了。不过这个软件在安装和配置过程中,也需要不少步骤,有时候也会出现一些配置不对的问题,偶尔也略感头疼,且稳定性和兼容性不是非常好。此方式适用于VisualStudio2010及以下版本,WDK7.1及以下版本。对于更高的版本,不建议用VisualDDK,因为可以继续往下看,下面有更激动人心的办法。
    VisualDDK官网:http://visualddk.sysprogs.org/
    VS2010+VMWare8+VisualDDK1.5.6配置教程:http://techird.blog.163.com/blog/static/1215640362011112385241568/

    ②激动人心的就是,从VisualStudio2012开始,从WDK8.0开始,微软在里面整合了一套类似VisualDDK但比VisualDDK好用很多的工具。从那以后,开发Windows驱动程序就和开发Windows应用程序一样方便了,只需在虚拟机中安装一个EXE,然后在VisualStudio中输入它的IP、用户名、密码就OK了,接下来你只需新建一个WDK项目,点生成,VisualStudio会自动把驱动文件传给虚拟机中的系统并自动安装,然后点调试,就能在VisualStudio中单步调试了。是不是爽爆了,而且配置和设置都不复杂,MSDN上还有手把手教你配置的高清视频教程!
    具体可以看我写的另一篇文章:
    《Win8.1+VS2013+WDK8.1+VirtualBox or VMware驱动开发环境配置》:http://blog.csdn.net/charlessimonyi/article/details/50904956

    痛苦三:没有库可用
    假如有一天老板叫你开发一个软件,允许你使用你擅长的任意一门语言,C/C++/C#/JAVA/Python等。但是附加了一个条件:不能使用任何第三方库,不能使用标准库!你有什么感想。What!标准库都不能用?那还写个毛。是的,没错,开发Windows驱动程序,几乎什么库都用不了,包括标准库。因为我们平时常用的第三方库或标准库,它的实现其实都是调用系统API,在Windows上调用的是Window API,即uer32.dll、kernel32.dll、gdi32.dll等等提供的API函数。但是这些API函数属于应用层API,无法在驱动程序中使用,因为驱动程序跑在内核层。所以只要一个库的实现上调用了系统API,就无法在驱动程序中使用。少数库还是可以使用的,比如math.h中的各种数值计算函数。不过仅剩的可用的库太少了,很多时候你都需要从新发明轮子。甚至连C语言中的malloc、free,C++中的new、delete,你都需要自己去实现。

    解决方法:
    ①自己发明轮子就自己发明轮子,虽然没有现成库可用,但有内核层下的系统API可用,很多和应用层的API很相似,你想要的功能基本都可以通过这些API实现。

    ②咬咬牙,把苦水往肚子里咽。搞驱动开发的人很少,苦尽甘(qian)来


    本文由CharlesSimonyi发表于CSDN博客:http://blog.csdn.net/charlessimonyi/article/details/50904854转载请注明出处
    --------------------- 
    作者:charlessimonyi 
    来源:CSDN 
    原文:https://blog.csdn.net/CharlesSimonyi/article/details/50904854 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 驱动开发入门

    千次阅读 2007-05-20 20:26:00
    用户模式与内核模式从Intel80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较低级别的代码不能随意调用高级别的代码和...

    用户模式与内核模式

    从Intel80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有运行在ring0层的代码可以直接对物理硬件进行访问。由于WindowsNT是一个支持多平台的操作系统,为了与其他平台兼容,它只利用了CPU的两个运行级别。一个被称为内核模式,对应80x86的ring0层,是操作系统的核心部分,设备驱动程序就是运行在该模式下;另一个被称为用户模式,对应80x86的ring3层,操作系统的用户接口部分(就是我们通常所说的win32 API)以及所有的用户应用程序都运行在该级别。操作系统对运行在内核模式下的代码是不设防的,所以不管是建设还是破坏内核模式下的编程都是值得去研究的。

    图1-WIN2000系统的分层结构

    在物理硬件与系统核心之间有一个硬件抽象层(HardwareAbstractionLayer),它屏蔽了不同平台硬件的差异,向操作系统的上层提供了一套统一的接口。从图中我们还可以看到,设备驱动程序(DeviceDriver)是被I/O管理器(I/OManager)包围起来的,即驱动程序与操作系统上层的通信全部都要通过I/O管理器。这给驱动程序的编写带来了很大的便利,因为很多诸如接收用户的请求、与用户程序交换数据、内存映射、挂接中断、同步等等麻烦的工作都由I/O管理器代劳了。

    驱动程序的分类

    驱动程序并不像所有人想的那样一定要和硬件打交道,我粗略的把他分为两类:硬驱动和软驱动。硬驱动就是对硬件直接编程进行控制,这类驱动通常必须遵守硬件的通信协议,直接对硬件进行端口访问、中断响应、DMA传输。它包括:串、并行口,键盘,文件系统,SCSI,网络等驱动程序;另外一种软驱动呢?不需要直接对硬件就行操作。我认为他可以理解为它是在硬驱动之上的一层更为高级的驱动。我想学习的主要是软驱动。

    一般来说,设备驱动程序的任务主要有两个:第一,接受来自用户程序的读写请求,把用户的数据传送给设备,或把从设备接收到的数据传送给用户;第二,轮询设备或处理来自设备的中断请求,完成数据传输。

    驱动程序的结构

    在这里,我主要介绍WDM的结构。WDM(Windows driver module)是什么东西呢?在Windows98/95下面,也许你听得最多的是VXD,我只知道VXD是一种驱动程序,和WDM差不多的东西。只是因为Windows2000是WindowsNT那条线过来的东西,要加上两个主要的新功能:即插即用(Plug and Play)和电源管理(Power Menage),又不能用Windows98/95那一套,所以就搞出一个叫WDM这么个东西,来支持PNP和PM.。其实想想,现在的技术名词还不是一般的多啊!总之wdm大家都叫它windows驱动程序模型

    Windows2000里有叫即插即用管理器I/O(此I/O非彼I/O端口)管理器的两个东西。比如说我在机器上插了一张符合PCI规范的PCI卡。即插即用管理器会发现这张卡插在第N个插槽上,然后即插即用管理器会说它找到了这样一张卡,它就去找有没有现成的驱动程序,如果没有找到,它会告诉我们,我找到了这样一张卡,请你插入这张卡的驱动程序盘。好,我们就把驱动程序盘给它,即插即用管理器会去找驱动程序盘上的INF文件,找到后它会比较PCI卡上的标志和INF文件里的标志是否相同,如果相同,它就会依照INF文件里提供的路径去找驱动程序,找到之后就可以交给I/O管理器,I/O管理器会装载这个驱动程序。I/O管理器在做了一些接口的工作后,即插即用管理器会先分配好相关的资源给PCI卡,比如说I/O端口空间、内存空间和中断向量,然后告诉这张卡的驱动程序,我给你分配了这些资源,你看怎么的。如果你没有怎么的或不敢怎么的,那就赶快记下这些资源,以备后用。
        下面说I/O管理器这个东西。上面我们讲到I/O管理器装载这个驱动程序,驱动程序有一个大门,还有N多的小门。I/O管理器先从大门进去(因为I/O管理器只找得到大门,I/O管理器是不是很傻,NO,当然有它的道理,你别问我:I/O管理器怎么找到大门的?驱动程序无非就是一些文件,I/O管理器把这么些文件加载到系统中去),去找一样东西:进小门的地图。我们要在大门进去的房间里放这张地图(驱动程序都是我们造的,我们当然有驱动程序的地图啦)。I/O管理器找到了地图,就可以自由进出大小门了。———这些大小门说白了就是函数(不要问我函数是什么东东),小门的地图就是函数的地址。I/O管理器知道了这些函数的地址,当然就可以调用这些函数啦。还有一个叫IRP的东西,中文名叫I/O请求包。我们这样来理解它:在用户的应用程序这一端,要和驱动程序对话,它们之间不是简单的调用函数(至于为什么,我现在也不知道),应用程序和驱动程序之间有I/O管理器隔着,应用程序对驱动程序的操作,首先由I/O管理器处理成一个包,这个包里面有应用程序请求的操作内容、传送的数据等等一些东西,然后I/O管理器把这个包扔给驱动程序,驱动程序依照包里的请求,完成操作,把该回传的数据放进包里,再把包扔还给I/O管理器,I/O管理器再把数据返回给应用程序。——这里所说的包,就是IRP。
        这里说的只是WDM结构的一部分,但是有了这一部分知识,其它部分就不难懂了。通过上面的介绍你看见了什么。你可以想象得出驱动程序是什么样子的吗?我是这样想的。驱动程序好像就是一个函数库,只不过在大门的地方放了一张地图。而这个大门与地图我们见到过吗?好像有点像dll文件呢。在早些时候我学dll的时候,我就只会用dll来存放函数。 

    展开全文
  • Windows驱动开发入门系列教程

    千次阅读 2016-03-28 11:27:41
    从事驱动开发也有一段时间了,从最初的无头苍蝇到懵懵懂懂,到入门,直至今天,感觉一路走来,走了不少的弯路,只因为没有人引导。前几天,一个朋友问到我怎么学习Windows驱动开发,我就想到把我学习Windows驱动开发...

    从事驱动开发也有一段时间了,从最初的无头苍蝇到懵懵懂懂,到入门,直至今天,感觉一路走来,走了不少的弯路,只因为没有人引导。前几天,一个朋友问到我怎么学习Windows驱动开发,我就想到把我学习Windows驱动开发的过程分享一下,也算我的一点总结。

    我总结了一下,大概分为这么几部分内容:

    第一讲:开发环境与工具篇

    主要讲述驱动开发的工具、调试的工具,开发环境的配置等知识,通过本篇的学习,您能配置好Windows驱动开发、编译、调试的基本环境,为下一步的开发打下坚实的基础。

    第二讲:我的第一个驱动

    为了方便驱动开发的学习,我们通过一个简单的驱动程序来直观的了解一下驱动程序的开发。

    第三讲:Windows驱动的结构

    本篇主要讲解Windows驱动程序的结构,分别讲解NT驱动和WDM驱动程序的结构。然后呢讲解一下驱动程序中的一些重要的数据结构IRPDriverObject等。

    第四讲:基本编程技术

    在了解了Windows驱动程序的基本结构之后,我们就需要学习一下基本的编程技巧--内核函数的使用,主要包括字符串的操作、文件的操作、以及常用内核函数的命名特点

    第五讲:Windows内存管理

    在内核程序开发过程中,内存管理是一个比较重要的项目。本篇主要讲解Windows的内存管理机制,并且使得大家能够掌握如何在驱动中有效的使用内存。

    第六讲:同步

    同步主要包括两块,驱动程序的同步和IRP的同步

    第七讲:定时器

    在驱动程序编程中,经常会用到定时器,这一篇将详细的介绍一下定时器的使用和实现。

    第八讲:即插即用Pnp

    即插即用是WDM驱动的一个重要特性,这是Windows2000以及后续版本的一个重要功能,为此,我们在这一篇中介绍一下驱动程序中如何实现设备的即插即用。

    本篇属于开篇的话题,从下一篇起,我们将走近Windows驱动程序的开发。Step by step 学会Windows驱动的开发。



    此文章来自于【http://blog.csdn.net/caperingrabbit/article/details/5280043】

    展开全文
  • Linux驱动开发入门——基本知识简介

    千次阅读 2017-06-22 10:02:08
    Linux设备驱动的基本概念 设备驱动程序(Device Driver),简称驱动程序(Driver)。它是一个允许计算机软件与硬件交互的程序。这种程序建立了一个硬件与硬件,或硬件与软件沟通的界面。CPU经由主板上的总线(Bus...
  • Windows驱动开发入门篇(一)

    万次阅读 2016-05-17 19:18:53
    本文主要介绍“如何入门Windows驱动开发”和“新手需要掌握哪些知识和动手技能”,大部分是本人探索Windows驱动开发近一月时间的经验之谈。大致包括如下几个方面: 1,开发工具、调试工具和调试手段; 2,Windows...
  • 驱动开发入门总结

    千次阅读 2020-03-11 04:15:58
    初学Windows驱动开发的一些总结
  • Linux设备驱动开发入门

    万人学习 2018-10-22 21:38:04
    本课程讲解Linux驱动程序开发基本知识,程序架构,字符设备编程,杂项设备编程,具体硬件模块驱动开发
  • 如何学习Android驱动开发

    千次阅读 2017-04-05 14:53:20
    如何成为一名优秀的Android驱动程序员?参数如下要求: 一、Android驱动的基础知识 1.Android驱动是基于Linux驱动,强烈推荐阅读Linux Device Driver 3rd版,这本书讲了Linux下设备驱动的基础知识,要求反复细读。 2...
  • linux驱动编写(总结篇)

    万次阅读 多人点赞 2019-08-14 06:56:47
    01、linux驱动编写(入门) 02、linux驱动编写(虚拟字符设备编写) 03、linux驱动编写(字符设备编写框架) 04、linux驱动编写(Kconfig文件和Makefile文件) 05、linux驱动编写(块设备驱动代码) 06、linux...
  • 新手如何入门嵌入式软件开发

    万次阅读 多人点赞 2010-01-02 17:19:00
    新手如何入门嵌入式软件开发Sailor_forever sailing_9806@163.com 转载请注明http://blog.csdn.net/sailor_8318/archive/2008/04/24/2325483.aspx 【摘要】:ARM+Linux是目前比较吃香的嵌入式软件
  • 如何正确入门Windows系统下驱动开发领域?

    万次阅读 热门讨论 2013-06-10 16:27:59
    很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资料少有关系.大多学的驱动开发资料都以英文为主,这样让很多驱动初学者很头疼.本人从事驱动开发时间不长也不短,大概也就3~4年时间....
  • 【Arduino】开发入门教程

    千次阅读 多人点赞 2016-01-12 16:11:25
    【Arduino】开发入门教程【一】什么是Arduino ...【Arduino】开发入门教程【四】Arduino驱动安装 【Arduino】开发入门教程【五】Hello Arduino 【Arduino】开发入门教程【六】数据类型转换函数 【Arduino】
  • 对于很多linux开发初学者,手里没有开发板,但是又想练练linux驱动(入门级)的同学来说,在虚拟机ubuntu 下搭建一个简单的驱动开发环境不失为一个很好的选择。 linux驱动正常的开发环境搭建有以下几方面; 1、安装好...
  • 虽然基础驱动弱化了,但是作为Linux系统开发人员,这是必备技能,并且从驱动去理解内核是一个好方法。 在讲解这些驱动时,会把驱动的运行环境,比如内核调度,进程线程等概念也讲出来,这样就可以搭建一个知识体系。...
  • [Windows驱动开发](一)序言

    万次阅读 2012-07-29 19:05:05
    它们分别是《寒江独钓——内核安全编程》和《Windows驱动开发技术详解》。两本书分别从不同的角度介绍了驱动程序的制作方法。  在我理解,驱动程序可分为两类三种:  第一类:传统型驱动  传统型驱动的...
  • 一些经久不衰的linux 视频教程列表

    万次阅读 热门讨论 2011-11-17 00:50:29
    这15 张光盘最为值得推荐的是国嵌的视频教程,其中的一些wince资料以及中嵌的视频教程也比较适合初学者。 国嵌视频教程由嵌入式Linux专业培训机构成都国嵌公司免费提供的4个培训班完整最新视频。...
  • 本课程是linux驱动开发的第2个课程,从零开始带领大家逐渐熟悉内核模块,并且一步步写出一个字符设备驱动程序来控制LED等。本课程对驱动的学习非常重要,是驱动学习的入门阶段。
  • Linux学习指南与书籍推荐

    千次阅读 2011-04-11 20:54:00
    1: 首先熟悉linux平台 会使用vi/vim工具 熟练使用linux命令 了解meakefile文件的编写 shell文件的编写 相关文文档在“/linux资料/linux基础工具”目录下 推荐阅读该目录下的《GNU MAKE》或者《跟我一起学makefile...
  • linux2.6驱动开发系列教程

    万次阅读 热门讨论 2011-11-01 21:44:33
    这段时间一直在做android下的驱动,android驱动底层跟linux如出一辙,所以这里准备做一个专题,把linux驱动做一个总结,为android接下来的驱动开发打好基础,大致的思想如下: 一、linux驱动基础开发 0、linux驱动...
1 2 3 4 5 ... 20
收藏数 79,529
精华内容 31,811
关键字:

驱动开发入门