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 底层入门开发(二)的更多相关文章

  1. Android工程师入门(二)——不忙不累怎么睡。。

    安卓开发迫在眉睫,这周入个门吧! Android工程师入门(二) 四.在界面中显示图片 ImageView 是显示图片的一个控件. --属性 src——内容图片: background——背景图片/背 ...

  2. Android Camera系列开发 (二)通过Intent录制视频

    Android Camera系列开发 (二)通过Intent录制视频 作者:雨水  2013-8-18 CSDN博客:http://blog.csdn.net/gobitan/ 概述 使用Camera ...

  3. Android底层驱动开发(一)

    1   Android为什么要增加硬件抽象层HAL A    统一硬件调用接口.所以利用HAL屏蔽linux驱动的复杂不统一的接口 B   解决GPL版权问题,因为linux内核基于GPL协议.这个G ...

  4. Android编译系统入门(二)

    Android.mk的使用方法 在上一篇Android编译系统入门(一)中我们只要介绍了Android系统使用make命令默认编译的依赖树是droid,而droid是一个伪目标,它有两个先决条件dro ...

  5. Android 音视频开发(二):使用 AudioRecord 采集音频数据并保存到文件

    版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7457321.html 一.AudioRecord API详解 AudioRecord是Android系统提 ...

  6. Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件

    版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7457321.html 一.AudioRecord API详解 AudioRecord是Android系统提 ...

  7. Android 实践项目开发二

    在地图开发中项目中,我这周主要完成的任务是和遇到的问题是以下几个方面. 1.在本次的项目中主要是利用百度地图的.jar包实现地图的定位与搜索功能,需要在百度地图开发中心网站取得 密钥,并下载相关.ja ...

  8. Android 音视频开发学习思路

    Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...

  9. Android 音视频开发(一) : 通过三种方式绘制图片

    版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7456956.html 在 Android 音视频开发学习思路 里面,我们写到了,想要逐步入门音视频开发,就 ...

随机推荐

  1. Web——在淘宝搜索到看到商品

    [摘自]http://blog.renren.com/blog/254459622/799372165 浏览器首先查询DNS服务器,将www.taobao.com转换成ip地址.负载均衡的第一步,将你 ...

  2. java中equals和“==”补充

    在JDK1.5之后,Integer添加了自动装箱,其形式为Integer i = 5; 装箱过程在内存中是  i = new Integer(4);大家都很熟悉这个吧. 当使用这中形式的时候,equa ...

  3. Bootstrap 模态框在用户点击背景空白处时会自动关闭

    问题: Bootstrap 模态框在用户点击背景空白处时,会自动关闭. 解决方法: 在HTML页面中编写模态框时,在div初始化时添加属性 aria-hidden=”true” data-backdr ...

  4. MFC 对话框控件自动布局

    MFC 设计界面程序总是不够智能,没有这样,没有那样. 今天为了加强mfc功能,设计了一个自动布局的类,使用非常简单. 原理: 每个控件都有一个矩形区域,矩形区域就是控件在对话框中的显示位置和大小, ...

  5. spark应用程序常见问题整理

    1.executor lost /java oom 通常是由于单个task内存占用过多,可以观察是哪个阶段挂的,如果类似groupbykey,可以看看是否有数据倾斜现象 如果不是,可以repartit ...

  6. oracle 归档日志

    归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档 ...

  7. js拖拽效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. HTML DOM

    1.DOM方法 常用 getElementById()  返回带有指定 ID 的元素 getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组) ge ...

  9. php 读取网页源码 , 导出成txt文件, 读取xls,读取文件夹下的所有文件的文件名

    <?php // 读取网页源码$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLO ...

  10. :before :after

    CSS 有两个说不上常用的伪类 :before 和 :after,偶尔会被人用来添加些自定义格式什么的,但是它们的功用不仅于此.前几天发现了 Creative Link Effects 这个非常有意思 ...