第5章:搭建 S3C6.410 开发板的测试环境
开发板是开发和学习嵌入式技术的主要硬件设备, 尽管可以在 PC 上开发 Linux 驱动, 然后重 新编译成 ARM 架构的 Linux 驱动模块。但最终都是要在开发板上进行测试的。这主要是因为 ARM 架构的开发板可基于 X86 架构的 PC 在 CPU 指令以及二进制格式上都有所不同。 而且如果 Linux 驱动需要访问硬件(如 LCD、 Wi-町、蓝牙等〉,并且这些硬件很难在 PC 上进行模拟, 那么就要在 带有这些硬件的开发板上进行调试和测试。
本章还主要介绍了如何安装串口调试工具,烧写Android系统,配置有限网络的步骤。
本章只介绍了如何在 OK6410-A 开发板上安装 的droid . 当然,我们可以选择其他的开发板, 也可以直接在手机上测试 Linux 驱动程序。由子不同的开发板和手机安装 Andro id 的方法有一定的 差别, 所有元法介绍得面面俱到e 如果读者使用本书米介绍的硬件测试本书的例子,需要仔细阅读 相应的官方说明文挡以便了解如何使用这些设备。
第6章: 第一个Linux驱动程序: 统计单词个数
在这一章中主要介绍了一个Linux驱动程序,以实战的方式向我们介绍了一个Linux驱动程序的例子。
Linux驱动的工作和访问方式是Linux的亮点之一,同时受到了业界的广泛好评。 Linux系统 将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中。这种 设计理念使得与Linux驱动进行交互就像与普通文件进行交互一样容易。当然,也比访问LinuxAPI 更容易。 由于大多数Linux驱动都有与其对应的设备文件, 因此与Linux驱动交换数据就变成了与 设备文件交换数据。
编写Linux驱动程序的步骤:1.建立 Linu x 驱动骨架 (装载和卸载 Linu x 驱动)。2.:注册和注销设备文件。3. 指定与驱动相关的信息。4.指定回调函数。5.编写业务逻辑。6.编写 Makefile文件。7.编译 Linux 驱动程序。8. 安装和卸载 Linux 驱动。
这一章中还介绍了如何使用不同的方法测试 Linux 驱动。这些方法主 要以平台来区分。例如,可以直接使用 Ubuntu Linux 测试 Linux 驱动。有很多驱动只要再利用相 应的 Linux 内核编译一边,就可以直接安装在 Android、 Linux 等嵌入式系统中。 当然,也可以直 接在 Android模拟器、 开发板甚至手机上测试 Linux 驱动。 为了更快地开发 Linux 驱动,也可以 考虑采用 6.5 节介绍的 Eclipse 集成开发环境。
第7章:LED 将为我闪烁: 控制发光二级管
本章完成了一个真正意义上的 Linux 驱动。该 Linux 驱动用来控 制开发版上的 4个 LED 小灯。也就是说通过向 Linux 驱动发送数据可以控制 LED 小灯的开关。为 了方便称呼这个驱动,本书及后面的章节都将其称为 LED 驱动。
虽然 LED 驱动并不复杂,只是控制 了 4个 LED,"但 LED 驱动已经包括了 Linux 驱动所有必要的部分 一个完整的 Linux 驱动主要由 内部处理和与硬件交互降部分组成。其中内部处理主要是指 Linux 驱动的装载、卸载、与设备文件 相关的动作处理(读写设备文件、向设备文件发送 νo命令等动作〉以及业务逻辑等。与硬件交互 主要是指通过iowrite32、 . ioread32 等函数与硬件中的寄存器进行数据交互。 -Linux 驱动在不同平台 的移植也是处理这两部分。如果在不同 Lin肌 肉核版本之间的移植,主要是移植第 1 部分( Linux 驱动的内部处理,一般 Linux 内核版本相差较大时, Linu叉’内核的 APl 会有很大差别〉,如果在不同硬件平台的移植,主要是移植第 2部分。