Android平台下驱动的开发及测试框架概述(一)

本文主要概述了在Android平台上进行硬件驱动的开发和测试过程,涉及了devfs文件系统的查看、读写函数的分析,以及proc文件系统的探讨,并通过编写简单应用进行测试。
摘要由CSDN通过智能技术生成
        Android平台下驱动的开发及简单测试程序的编写

/****************************************************************************************************************
 *1:主要简述android平台下驱动的开发与测试步骤,涵盖安卓系统四层框架
 *2:主要参考老罗的博客《Android硬件抽象层(HAL)概要介绍和学习计划》系列文章
 *                                                       原博文地址
 *                    http://blog.csdn.net/luoshengyang/article/details/6567257
 *3: 其次参考老罗《Android系统源代码情景分析》一书,参考代码也来自此书

 ****************************************************************************************************************/

    
    
本章主要介绍Android系统的最底层--Linux设备驱动层,以及编写一个简单的测试程序检测驱动是否达到目的。在此之前,先了解下Android整个框架结构图:
                                      

  
   Android可分为四层,从上到下可分为应用层、应用架构层、系统运行库层以及Linux内核层。
     Linux内核层:Android的核心系统服务基于Linux内核,如安全性、内存管理、进程管理、网络协议栈、和驱动模型等都是依赖linux内核。
    系统运行库层:当使用Android应用框架的时,Android系统通过一些C/C++库来支持我们使用各种组件,使其能更好的为我们服务。
   应用程序框架层:这一层即是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的架构设计,但是必须遵守其框架的开发原则。
   Android应用程序层:所有的应用程序都是使用java语言编写的,通过调用应用程序框架层(Application Framework)所提供的API来完成。

   
    1: 开发Android硬件驱动程序
       为方便描述,我们将为一个虚拟的字符设备开发驱动程序。这个虚拟的字符硬件设备只有一个寄存器,它的大小的为四字节,可读可写。由于这个字符设备是虚拟的,且只有一个寄存器,因此我们称之为“Fake Register”,对应驱动名为freg.在Android系统中开发硬件驱动程序的方法与一般的Linux系统是一样的,所以这里不再详细叙述。

    1.1:  实现内核驱动模块
        我的开发环境为Ubuntu10.04,源代码为MTK 6589平台release源码包,android系统为4.2,linux3.4.5内核版本。驱动程序freg目录如下:
   ~/alps/kernel/drivers
     -----char
           ----freg.c
           ----makefile

 这里为了简化和平台考虑,只用了上面两个源文件。下面首先看下freg.c:
Freg.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/fs.h&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值