android 底层入门开发(二)
LED将为我闪烁:控制发光二极管
对于大多数Linux驱动来说,需要直接与硬件交互,本章主要介绍用Linux驱动来控制二极管的明暗,即通过Linux驱动发送数据控制开发板上LED灯的开关。
第一节介绍了LED驱动的实现原理。Linux驱动不是直接向硬件中的内存写数据,而是与本机的I/O内存交互,Linux内核提供了多个与I/O内存交互的函数,每个连接Linux的硬件在I/O内存中都会有映射首地址,开发板上的LED等也有其映射首地址。
第二节编写LED驱动,步骤如下:
(1)测试开发板,打开电源开关
(2)创建LED驱动设备文件
(3)卸载LED驱动的设备文件
(4)设置寄存器与初始化LED驱动
(5)控制LED
(6)设置LED驱动的模块参数
(7)给出了LED驱动的完整代码。
第三节介绍测试LED驱动
(1)编写测试I/O控制命令的通用程序
(2)使用NDK测试LED驱动
(3)使用Java测试LED驱动
第四节介绍了LED驱动的移植,最简单的移植是将其在不同Linux内核版本下进行编译,移植驱动时要注意再修改驱动的源代码时,尽量不修改驱动的接口。
本章是通过具体的控制发光二极管来实现驱动开发,通过实验明白Android驱动的实例,了解Android驱动的移植。驱动移植是Android的精髓,在学习的过程中一定要认真努力的掌握每个细节概念。
android 底层入门开发(二)的更多相关文章
- Android工程师入门(二)——不忙不累怎么睡。。
安卓开发迫在眉睫,这周入个门吧! Android工程师入门(二) 四.在界面中显示图片 ImageView 是显示图片的一个控件. --属性 src——内容图片: background——背景图片/背 ...
- Android Camera系列开发 (二)通过Intent录制视频
Android Camera系列开发 (二)通过Intent录制视频 作者:雨水 2013-8-18 CSDN博客:http://blog.csdn.net/gobitan/ 概述 使用Camera ...
- Android底层驱动开发(一)
1 Android为什么要增加硬件抽象层HAL A 统一硬件调用接口.所以利用HAL屏蔽linux驱动的复杂不统一的接口 B 解决GPL版权问题,因为linux内核基于GPL协议.这个G ...
- Android编译系统入门(二)
Android.mk的使用方法 在上一篇Android编译系统入门(一)中我们只要介绍了Android系统使用make命令默认编译的依赖树是droid,而droid是一个伪目标,它有两个先决条件dro ...
- Android 音视频开发(二):使用 AudioRecord 采集音频数据并保存到文件
版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7457321.html 一.AudioRecord API详解 AudioRecord是Android系统提 ...
- Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件
版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7457321.html 一.AudioRecord API详解 AudioRecord是Android系统提 ...
- Android 实践项目开发二
在地图开发中项目中,我这周主要完成的任务是和遇到的问题是以下几个方面. 1.在本次的项目中主要是利用百度地图的.jar包实现地图的定位与搜索功能,需要在百度地图开发中心网站取得 密钥,并下载相关.ja ...
- Android 音视频开发学习思路
Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...
- Android 音视频开发(一) : 通过三种方式绘制图片
版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7456956.html 在 Android 音视频开发学习思路 里面,我们写到了,想要逐步入门音视频开发,就 ...
随机推荐
- Python 面向对象[Day 06]
面向对象编程(Object-Oriented Programming) 概述 面向过程:根据业务逻辑从上至下写代码,实现所需功能. 函数式:将某些功能代码封装至函数中,在需要时调用函数,函数式代码 ...
- Add listitem with javascript 分类: Sharepoint 2015-07-16 20:23 4人阅读 评论(0) 收藏
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', createListItem);//makes sure sp.js is loaded and the ...
- ICEM相关
1,几何体建模不用讲(可以不学,因为通常是其他软件导入)在初始分块前,建立part,为建立边界条件使用(这是部分的定义最重要的作用,所以你可以按照不同的情况来定义,划分网格只是块的工作),所以对于三维 ...
- EF的增删改查
//获取分组信息 public List<UserGroupLogSys> GetUserGroupLogSyslist(int pageIndex, int pageSiz ...
- CSS中box-sizing属性的理解与部分用法
今天看了一些关于box-sizing的一些资料,在这里整理一下,希望也能对大家有所帮助. box-sizing是CSS的一个属性,很好的解决了盒模型的相关问题.CSS中的盒模型(Box model)分 ...
- 弹性盒子之wap端布局
发现移动端用弹性盒子布局起来更加的方便,box-flex:val;特别是图文展示的时候,如下面的 <!DOCTYPE html> <html> <head> < ...
- 一款公用的CSS+DIV弹窗
为了方便以后自己使用! <html> <head> <style> .winmainshow { background: #fff; padding: 10px 5 ...
- 1.6jdk + eclipse + pydev搭建Python开发环境
直接在1.6jdk的eclipse上用install new software的方法安装插件,会找不到安装好的插件.pydev官网还提供一种zip直接解压插件到eclipse文件夹下的dropins文 ...
- label标签
- Android系统启动过程
首先Android框架架构图: Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用. 启动的过程如下图所示:(图片来自网上,后面有地址) 下面将从And ...