标签:
任何现代的操作系统主机中插入硬件时都会检测到该硬件。例如,将一个打印机通过 USB 口连接到 PC上,如果操作系统是 Windows , 会在右下角状态栏显示已发现新设备信息。这说明操作系统已经探测到有硬件已连接到 PC 上然后系统会尝试安装驱动.如果驱动 F注意 :未安装成功,就会弹出对话框要求用户指定驱动程序的路径. 在这一过程中,操作 系统虽然可以检测到硬件设备连接的信号,但此时并不能使用该硬件设备,这是因 为还需要安装与硬件交互的驱动程序. 从这一点可以看出,硬件被检查到只说明在 内核空间中建立了 I/0 内存(非 Linux 系统也采用了类似的方法管理硬件),要想用 ;户空间的程序访问硬件,还必须安装可与 。
LED 驱动是本书第一个真正和硬件打交道的 Linux 驱动。虽然 LED 驱动并不复杂,只是控制 了 4个 LED,"但 LED 驱动已经包括了 Linux 驱动所有必要的部分 e 一个完整的 Linux 驱动主要由 内部处理和与硬件交互降部分组成。其中内部处理主要是指 Linux 驱动的装载、卸载、与设备文件 相关的动作处理(读写设备文件、向设备文件发送 νo命令等动作〉以及业务逻辑等。与硬件交互 主要是指通过 i owrite32、 . ioread32 等函数与硬件中的寄存器进行数据交互。 -Linux 驱动在不同平台 的移植也是处理这两部分。如果在不同 Lin肌 肉核版本之间的移植,主要是移植第 1 部分( Linux 驱动的内部处理, γ般 Linux 内核版本相差较大时, Linu叉’内核的 APl 会有很大差别〉,如果在不 同硬件平台的移植,主要是移植第 2部分。当然, 在 一些情况不, Linux 驱动的移植基本上相当于重新编写一遍 Linux 驱动,在这种情况下,就要更好地理解 Linux 驱动的高级技术。
标签:
原文地址:http://www.cnblogs.com/li-xiaobin/p/5561594.html