zoukankan      html  css  js  c++  java
  • 第一章 android系统移植与驱动开发概述

    最近读了一本《android 深度探索 卷1》下面介绍一些读书时的体会:

    首先,通过阅读《HAL与驱动开发》了解了“移植”:为特定设备定制Android的过程,而在移植过程中开发最多的就是支持各种硬件设备的LINUX驱动程序,因此谈系统移植就必须谈驱动开发。

    其次,需注意:1>android系统架构如下图:总共分为四层(由底层到上层)依次为:linux内核(主要包括驱动程序以及管理内存、进程、电源等资源的程序)本书主要讲的、C/C++代码库(主要包括linux的.so文件以及Dalivk虚拟机的运行时)、Android SDK API(直接面向应用程序的java APK)、应用程序(直接面向最终用户的java用户程序APK程序)。

    2>android系统移植所包含的工作:其基本原则:尽可能的找到驱动和HAL源代码

           

    注意:移植linux驱动时只需考虑linux内核的版本。

    3>查看linux内核版本:

    主要维护3个版本:linux2.6(广泛应用) linux2.4(很少应用,因进程调度上存在一定的缺陷) linux3.x(最新的系统采用了这个,例如:android4.x)

    查看版本三个方法:1、查看当前系统所采用的linux内核:“设备”---->关于手机;2、查看其他系统的linux版本:1.在linux终端执行:uname -a;2.或者执行:cat /proc/version.两者的联系:uname就是从/proc/version文件中获取信息,-a代表获取更多的信息,否则只是系统名。结果如图:

     

    4>内核版本号的定义规则:

    主要组成:1.主版本号 2.次版本号 3.修订版本号 4.微调版本 5.为特定的linux系统特别调校的描述。例如:2.6.29.7-flykernel-12a中“2”主版本号,“6”次版本号(两者可以组成一个内核版本的系列),“29”修订版本号,“7”对2.6.29的微调版本号,后面的便是为flykernrl调校,调校字符可以是任意字符串,开发者自己定义。

    5>那么如何学习驱动开发呢?

       答:1>准备一个自己熟悉的操作系统,用于开发和测试linux驱动,例如red hat liunx;2>学习GUN C(对标准C的扩展及驱动开发的相关硬件知识)3>学习相关的硬件知识4>不断实践。

    6>了解linux设备驱动:

    1>作用:直接和硬件交互的一类程序负责对硬件进行描述

    2>分类以及特点:linux将存储器和外设主要分为三大类:字符设备(串行顺序、依次访问例如:触摸屏、鼠标、键盘等)、块设备(以块为单位、任意顺序访问)、网络设备(面向数据包的接受和发送)

      三者区别:字符设备不经过文件系统的缓冲,而块设备经过文件系统的快速缓冲,但是字符设备与块设备并没有明显的界限,如Flash。字符设备与块设备设计上存在很大的区别,但是对于用户而言,它们都是使用文件系统的操作接口open、close、read、write等函数进行访问。而网络设备并不对应文件系统节点。linux内核与网络设备通信与上述两种完全不同。

    7>以LED灯为例见证一下什么叫linux驱动。;:

        如果我们接触linux大学课程,会发现很多linux应用开发都会涉及led灯程序,其中的内核加载和内核卸载是最主要程序。装载:mobule_init,卸载:mobule_exit。

    总结:

     通过阅读第一章,以及上述的描述,我发现学习linux驱动开发一定要了解linux内核。不管用户使用的是哪个linux版本只要linux内核版本相同便可以使用驱动。而只有linux的五个组成全部相同,内核才相同。最重要的我了解到学习android驱动开发就相当于学习linux驱动开发。

  • 相关阅读:
    Windows 10 IoT Serials 3
    Guest Speaker on 2015 WinHEC Shenzhen 秋季大会
    Ignite China 2015 之行
    Windows 10 IoT Serials 2
    Build 2015 Beijing & Windows 10 China Geek Challenge
    Windows 10 IoT Serials 1
    WinHEC 2015 深圳之行
    Windows on Device 项目实践 5
    2015 MVP OpenDay 及 Community Camp 演讲PPT分享
    Windows on Device 项目实践 4
  • 原文地址:https://www.cnblogs.com/beatrice/p/5425526.html
Copyright © 2011-2022 走看看