zoukankan      html  css  js  c++  java
  • Linux驱动程序

    操作系统是通过各种驱动程序赖家与硬件设备的,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并且提供统一的操作方式。设备驱动程序是操作系统最基本的组成部分之一,在Linux内核源程序中也占有60%以上,因此熟悉驱动的编写很重要。

    Linux系统将每一个驱动都映射成一个文件。这些文件称为设备文件或驱动文件,都存在/dev目录中。这样,在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作,从而大大方便了对设备的处理。

    编写驱动程序的步骤:

    (1)建立Linux的驱动骨架(装载和卸载Linux驱动)任何类型的程序都有一个基本结构,linux驱动程序也不例外。Linux内核在使用驱动时首先需要装载驱动。在装载过程中也需要进行一些初始化的工作。

    (2)注册和注销设备文件

    任何一个linux驱动都需要一个设备文件,否则应用程序将无法与驱动程序交互。

    (3)指定与驱动相关的信息

    驱动程序是自描述的。

    (4)指定回调函数

    一个驱动程序并不一定要指定所有的回调函数。

    (5)编写业务逻辑

    (6)编写Makefile文件

    (7)编写Linux驱动程序

    (8)安装和卸载Linux驱动

    1.准备工作

    建立存放Linux驱动程序的目录

    建立驱动源代码文件

    编写一个makefile文件

    2. 编写linux驱动程序的骨架(初始化和退出驱动)

    安装linux驱动

    查看word_count是否成功安装

    卸载linux驱动

    查看由驱动输出的日志信息

    3. 指定与驱动相关的信息

    模块作者,模块描述,模块别称,开源协议

    4. 注册和注销设备文件

    5.指定回调函数

    6.实现统计单词数的算法

    7.编译、安装、卸载linux驱动程序

    测试linux驱动

    使用ubuntu linux测试

    在android模拟器上通过原声(native)C程序测试

    使用android NDK测试

    使用java代码直接操作设备文件测试

    使用S3C6410开发板测试

    将驱动编译进linux内核进行测试

    使用eclipse开发和测试linux驱动

    1.建立c工程

    2.建立c源代码文件连接

    3.设置include路径

    4.编译linux驱动

    在eclipse中测试linux驱动

    1.导入test_word_count.c文件

    2.设置include路径

    3.建立targe

    4.build工程

    5.运行测试程序

    需要注意的是,用户空间与内核空间完成同样或类似的功能的函数,宏等资源的名称并不一定相同,有的名称类似如:malloc和kmalloc ,有的不同如:atoi和simple_strol 等

  • 相关阅读:
    一个简单的knockout.js 和easyui的绑定
    knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
    Knockout自定义绑定my97datepicker
    去除小数后多余的0
    Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
    Azure ARM (1) UI初探
    Azure Redis Cache (3) 创建和使用P级别的Redis Cache
    Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
    Windows Azure Storage (23) 计算Azure VHD实际使用容量
    Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  • 原文地址:https://www.cnblogs.com/zhao-xiaohu/p/5563708.html
Copyright © 2011-2022 走看看