标签:
在前几章节中了解到了开发Linux驱动程序的步骤,并且给了一个示例来掩饰如何开发一个完整的Linux驱动。但是这个Linux驱动只简单地演示了实现Liunx驱动的步骤,而对于大多数Linux驱动来控制开发板上的4个LED小灯。Linux驱动虽然直接与硬件打交道,但并不是Liunx驱动直接向硬盘中的内存写数据,而是与本机中的I/O内存进行交互。对于创建LED驱动的设备文件,我们可以分为以下几个步骤:使用cdev_init函数初始化cdev;指定Linux文件的设备号;使用cdev_add函数将字符设备天剑到内核中的字符设备数组中;使用class_create宏穿件struct class;使用device_create函数创建设备文件。在实现过程中卸载LED驱动的设备文件,依次调用了device_destroy,class_destroy和unregister_chrdev_region方法。然后设置寄存器与初始化LED驱动,在控制LED亮灭之前我们必须了解如何设置寄存器。ARM处理器有多个寄存器,通过设置不同的寄存器的值。可以设置LED引脚的状态,打开或者禁止上拉电路以及控制LED的亮和灭。LED驱动可以使用两种方式来控制LED,同伙字符串控制LED和通过I/O命令控制LED。对于测试LED驱动我们可以通过编写测试I/O控制命令的通用程序,或者使用NDK测试LED驱动,也可以使用Java测试LED驱动。通过这一章的学习,了解到虽然LED驱动并不复杂,知识控制了4个LED,但是LED驱动已经包括了Linux驱动所有必要的部分。一个完整的Linux驱动主要由内部处理和硬件交互两部分组成。其中内部处理主要是指Linux驱动的装载,卸载,与设备文件相关的动作出路以及业务逻辑。
标签:
原文地址:http://www.cnblogs.com/kong1188/p/5560766.html