《Linux设备驱动开发详解4.0》pdf下载在线阅读全文,求百度网盘云资源

《Linux设备驱动开发详解4.0》pdf下载在线阅读全文,求百度网盘云资源,第1张

《Linux设备驱动开发详解4.0》百度网盘pdf最新全集下载:

链接: https://pan.baidu.com/s/1wxaYK87l11FDur15aS6FTQ

?pwd=kn9d 提取码: kn9d

简介:Linux设备驱动开发详解介绍了Linux设备驱动开发理论、框架与实例,详细说明了自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论,以及字符设备、块设备、tty设备、I2c设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动架构中各个复杂数据结构和函数的关系,并讲解了Linux驱动开发的大量实例,使读者能够独立开发各类Linux设备驱动。  

需要一定的努力才可以学好:

Linux设备驱动是linux内核的一部分,是用来屏蔽硬件细节,为上层提供标准接口的一种技术手段。为了能够编写出质量比较高的驱动程序,要求工程师必须具备以下几个方面的知识:

1、 熟悉处理器的性能

如:处理器的体系结构、汇编语言、工作模式、异常处理等。对于初学者来说,在还不熟悉驱动编写方法的情况下,可以先不把重心放在这一项上,因为可能因为它的枯燥、抽象而影响到你对设备驱动的兴趣。随着你不断地熟悉驱动的编写,你会很自然的意识到此项的重要性。

2、掌握驱动目标的硬件工作原理及通讯协议

如:串口控制器、显卡控制器、硬件编解码、存储卡控制器、I2C通讯、SPI通讯、USB通讯、SDIO通讯、I2S通讯、PCI通讯等。编写设备驱动的前提就是需要了解设备的 *** 作方法,所以这些内容的重要程度不言而喻。但不是说要把所有设备的 *** 作方法都熟悉了以后才可以写驱动,你只需要了解你要驱动的硬件就可以了。

一、掌握硬件的控制方法

如:中断、轮询、DMA 等,通常一个硬件控制器会有多种控制方法,你需要根据系统性能的需要合理的选择 *** 作方法。初学阶段以实现功能为目的,掌握的顺序应该是,轮询->中断->DMA。随着学习的深入,需要综合考虑系统的性能需求,采取合适的方法。

二、良好的GNU C语言编程基础

如:C语言的指针、结构体、内存 *** 作、链表、队列、栈、C和汇编混合编程等。这些编程语法是编写设备驱动的基础,无论对于初学者还是有经验者都非常重要。

三、 良好的linux *** 作系统概念

如:多进程、多线程、进程调度、进程抢占、进程上下文、虚拟内存、原子 *** 作、阻塞、睡眠、同步等概念及它们之间的关系。这些概念及方法在设备驱动里的使用是linux设备驱动区别单片机编程的最大特点,只有理解了它们才会编写出高质量的驱动。

四、掌握linux内核中设备驱动的编写接口

如:字符设备的cdev、块设备的gendisk、网络设备的net_device,以及基于这些基本接口的framebuffer设备的fb_info、mtd设备的mtd_info、tty设备的tty_driver、usb设备的usb_driver、mmc设备的mmc_host等。

| 字符设备

字符设备是能够像字节流一样被访问的设备,当对字符设备发出读写请求,相应的IO *** 作立即发生。Linux系统中很多设备都是字符设备,如字符终端、串口、键盘、鼠标等。在嵌入式Linux开发中,接触最多的就是字符设备以及驱动。

| 块设备

块设备是Linux系统中进行TO *** 作时必须以块为单位进行访问的设备,块设备能够安装文件系统。块设备驱动会利用一块系统内存作为缓冲区,因此对块设备发出读写访问,并不一定立即产生硬件I/O *** 作。Linux系统中常见的块设备有如硬盘、软驱等等。

| 网络设备

网络设备既可以是网卡这样的硬件设备,也可以是一个纯软件设备如回环设备。网络设备由Linux的网络子系统驱动,负责数据包的发送和接收,而不是面向流设备,因此在Linux系统文件系统中网络设备没有节点。对网络设备的访问是通过socket调用产生,而不是普通的文件 *** 作如

open/closc和 read/write等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8557016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存