zoukankan      html  css  js  c++  java
  • NUC972---Linux驱动开发

         驱动开发是嵌入式 Linux 产品开发的重要组成部分,驱动是将芯片底层与Linux应用连接起来的桥梁。驱动程序的好坏直接影响和决定着产品的稳定性,稳定的驱动程序是产品可靠性的基石。

    编写 Linux 驱动,首先要具备相关的电路基础知识,具有裸机开发和单片机开发能力,只有了解了硬件的基本工作原理才能编写出可靠的驱动程序。同时,必须对 Linux 驱动体系有清晰的认识,才能将设备在 Linux下驱动起来。

    1. 基础知识

    1.1驱动在 Linux中的地位

    驱动是 Linux 系统中设备和用户之间的桥梁,Linux 系统中,访问设备必须通过设备驱动进行操作,用户程序是不能直接操作设备的。Linux 系统中硬件、驱动和用户程序的关系如下图所示:

    驱动程序运行于内核空间,用户程序只能通过内核提供的系统调用,由经 VFS 以及驱动程序才能访问和操作硬件,硬件设备传递的数据也必须经过驱动、VFS 和系统调用才能被用户程序接收。所以说,设备驱动是应用程序访问系统设备以及进行数据传递的桥梁和通道。

    1.2驱动的基本要素

    Linux 设备驱动是具有入口和出口的一组方法的集合,各方法之间相互独立。驱动内部逻辑结构如下图所示:

    1.3 Linux内核模块

    Linux 内核具有很强的可裁剪性,很多功能或者外设驱动都可以编译成模块,在系统运行中动态插入或者卸载,在此过程中无需重启系统。模块化设计使得 Linux 系统很灵活,可以将一些很少用到或者暂时不用的功能编译为模块,在需要的时候再动态加载进内核,可以减小内核的体积,加快启动速度,这对嵌入式应用极为重要。

    我们前期开发驱动时,可以将驱动编译成模块,在开发板linux系统上动态加载,这样每次修改调试驱动时,只需要单独编译驱动模块就可以,不用编译整个内核。

  • 相关阅读:
    委托使用不当导致内存变大
    Reactive Extension
    WPF TextBox输入显示提示
    Reactive Extensions 初识
    WPF 验证
    SPOJ 1487. Query on a tree III
    HDU3966 Aragorn's Story
    SPOJ 2939. Query on a tree V
    SPOJ 913. Query on a tree II
    SPOJ2666. Query on a tree IV
  • 原文地址:https://www.cnblogs.com/zhugeanran/p/9477523.html
Copyright © 2011-2022 走看看