Android系统移植与驱动开发案例 第一章

概念

驱动程序作为系统内核的一部分,它工作在核心态,而应用程序工作在用户态。也就是说,程序不能直接通过指针,把用户空间的数据地址传递给内核Linux内核把驱动程序划分为3种类型:字符设备、块设备和网络设备。字符设备和块设备可以像文件一样被访问。它们的主要区别不在于能否seek,而是在于系统对于这两种类型设备的管理方式。应用程序对于字符设备的每一个I/O操作,都会直接传递给系统内核对应的驱动程序;而应用程序对于块设备的操作,要经过系统的缓冲区管理,间接传递给驱动程序处理。块设备的这种管理方式是为存储提供优化的;而字符设备的管理方式是为操作提供优化的。至于网络设备,它在Linux系统中是一类比较特殊的设备它不像字符设备或块设备那样通过对应的设备文件节点去访问,内核也不再通过read和write等调用去访问网络设备。Linux的网络系统主要是基于BSD UNIX的套接字机制,在系统和驱动程序之间有专门的数据结构进行数据传输,系统支持对数据发送和数据接收缓存,提供流量控制机制,提供更多的协议支持。

在linux系统中,驱动程序都做成模块的形式,也就是module。简单的说,一个模块提供一个功能,这些模块是可以按照需要随时装入内核空间和从内核空间卸载的。因此,内核模块是为了给内核动态增减功能而设计的,并不仅仅是限于驱动程序。

我通过本章学习了一些基本内容,感觉有了起步。

时间: 2024-08-26 02:30:37

Android系统移植与驱动开发案例 第一章的相关文章

Android系统移植与驱动开发概述 第一章

Android系统移植与驱动开发概述 1. Android的系统架构分为Linux内核.C/C++代码库.Android SDK API.应用程序四层. 2. Android移植可分为应用移植和系统移植.应用移植是指将应用程序移植到特定的硬件平台.系统移植指的是让Android操作系统在某一特定硬件平台上运行(首要条件是该操作系统支持硬件平台的CPU架构).系统移植的主要任务是移植Linux驱动和HAL(Hardware Abstraction Layer:硬件抽象层,位于应用程序与驱动之间).

Android系统移植与驱动开发案例 第二章

安装 1.Android开发环境 Android开发环境涉及的工具和开发包比较多,包括如下几个部分:   (1)JDK 点击这里下载JDK,JDK提供Java编译环境,新版本的JDK自动包含了JRE,所以不用单独下载JRE了,JRE提供Java运行环境.   (2)Eclipse 实际上,Andriod环境安装并不需要一一下载上面介绍的那些个工具包.Google也为我们打包了一个开发工具集合 ——ADT-BUNDLE集成包,里面包含了Eclipse.Android SDK.Android ADT

Android系统移植与驱动开发案例 第三章

3Git 是一款免费的.开源的.分布式的版本控制系统.旨在快速高效地处理无论规模大小的任何软件工程.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器.其最大特色就是“分支”及“合并”操作非常快速.简便.尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件.Git总结(文档更新于2013/

Android系统移植与驱动开发案例

源代码的下载,首先需要安装以下软件:curl 和 git-core 1.1安装curl: 在终端中执行:$sudo apt-get install curl 1.2安装git-core 1.2.1在用户目录下新建bin文件 在终端中执行:mkdir ~/bin 将~/bin添加环境变量,作用是:要将git软件下载安装在此目录,在别的目录运行可能会找不到此软件,所以要添加到环境变量中 在终端中执行:PATH=~/bin:$PATH 1.2.2安装git-core 在终端中执行:curl https

Android系统移植与驱动开发——第七章——LED驱动

LED驱动的实现原理 编写LED驱动: 测试LED驱动之前需要用USB数据线连接开发板,然后打开电源,成功启动之后,执行build.sh脚本文件编译和安装LED驱动,顺利则会自动连接 如果有多个设备文件将会在后来使用,则要通过指针变量cdev.list.prev和cdev.list.next指针变量连接,从而形成双向链接. 在创建设备文件时要注意: Device_count表示建立设备文件的个数 Alloc_chrdv_region函数的第2个参数表示分配的起始设备号. 卸载Linux驱动的设备

Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感

第三章 Git使用入门 使用Git的目的是减少各种版本的Linux的压缩大小,提供源代码在Linux上进行编译. 在这一个章节中,其实就是关键步骤的操作,虽然Git与我们学习的android没有很大的联系,但是在开发环境中也是必不可少的.通过学习这个章节,学习到了安装,查看,提取Git的方法.下面将详细讲述. 一.安装Git 可能大多数Linux上已经安装了Git,如果没有可以用下面的命令. Ubuntu10.04版本以下的有-core与原来的区分, 必须的:apt-get install gi

Android系统移植与驱动开发第四章读书笔记

1. 源码的下载 源代码的下载,首先需要安装以下工具软件:curl 和 git-core 1.1安装curl: 打开终端,可以使用按Ctrl+Alt +T的快捷方式打开终端 在终端中执行命令:sudo apt-get install curl 1.2安装git-core 1.2.1在用户目录下新建bin目录 在终端中执行:mkdir ~/bin 1.2.2安装git-core 在终端中执行:curl https://dl-ssl.google.com/dl/googlesource/git-re

《Android深度探索卷一》第一章Android系统移植与驱动开发概述。

<Android深度探索>第一章讲的是Android系统移植与驱动开发概述.这一章节将对Android以及Linux驱动做一个总体的介绍. Android是一个非常优秀的的嵌入式操作系统.经过几年的发展和演进,Android已经形成了非常完善的系统架构.Android的系统架构分为四层,如下图 Android移植可分为两部分:应用移植和系统移植. Android系统移植是指让Android操作系统在某一个特定硬件平台上运行.使一个操作系统在特定硬件平台上运行的一个首要条件就是该操作系统支持硬件

第一章 Android系统移植与驱动开发概述

本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Android系统可以识别设备中的蓝牙,WiFi等,这样就可以使用这些功能了.这些程序大多是支持各种硬件设备的Linux驱动程序. 这一章中介绍了许多在进行Android系统移植和驱动开发前要了解的概念以及要做的准备.接下来主要说的是在Android系统移植过程中的主要工作. Android移植分为两部分:应