嵌入式linux设备驱动开发,嵌入式Linux设备驱动开发简介.pdf

清远见——嵌入式培训专家 http ://

“黑色经典”系列之《嵌入式Linux 应用程序开发详解》

11 章 嵌入式Linux 设备驱动开发

本章目标

本书从 6 章到 10 章详细讲解了嵌入式Linux 应用程序的开

发 ,这些都是处于用户空间的内容。本章将进入到Linux 的内核空间,

初步介绍嵌入式Linux 设备驱动的开发。驱动的开发流程相对于应用

程序的开发是全新的 ,与读者以前的编程习惯完全不同,希望读者能

尽快地熟悉现在环境。经过本章的学习,读者将会掌握以下内容。

Linux 设备驱动的基本概念

Linux 设备驱动程序的基本功能

Linux 设备驱动的运作过程

常见设备驱动接口函数

掌握LCD 设备驱动程序编写步骤

掌握键盘 备驱动程序编写步骤

能够独立定制Linux 服务

清远见培训教材

清远见——嵌入式培训专家

11.1 设备驱动概述

11.1.1 设备驱动简介及驱动模块

操作系统是通过各种驱动程序来驾驭硬件设备的,它为用户屏蔽了各种各样的设备,驱

动硬件是操作系统最基本的功能,并且提供统一的操作方式。设备驱动程序是内核的一部分,

硬件驱动程序是操作系统最基本的组成部分,在Linux 内核源程序中也占有60% 以上。因此,

熟悉驱动的编写是很重要的。

在第2 章中已经提到过,Linux 内核中采用可加载的模块化设计 LKMs ,Loadable Kernel

Modules ),一般情况下编译的Linux 内核是支持可插入式模块的,也就是将最基本的核心代

码编译在内核中,其他的代码可以选择在内核中,或者编译为内核的模块文件。

常见的驱动程序也是作为内核模块动态加载的,比如声卡驱动和网卡驱动等,而 Linux

最基础的驱动,如CPU、PCI 总线、TCP/IP 协议、APM (高级电源管理)、VFS 等驱动程序

则直接编译在内核文件中。有时也把内核模块叫做驱动程序,只不过驱动的内容不一定是硬

件罢了,比如ext3 文件系统的驱动。因此,加载驱动时就是加载内核模块。

这里,首先列举一些模块相关命令。

lsmod 列出当前系统中加载的模块,其中左边第一列是模块名,第二列是该模块大小,

第三列则是该模块使用的数量。如下所示:

[root@www root]# lsmod

Module Size Used by

autofs 12068 0 (autoclean) (unused)

eepro100 18128 1

iptable_nat 19252 0 (autoclean) (unused)

ip_conntrack 18540 1 (autoclean) [iptable_nat]

iptable_mangle 2272 0 (autoclean) (unused)

iptable_filter 2272 0 (autoclean) (unus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值